10个周期均线与20个周期均线的金叉
//+------------------------------------------------------------------+
//| jinchanTrade.mq4 |
//| **** |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "******"
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
input int period10=10;//10个 平均周期
input int period20=20;//20个 平均周期
input double buyCount=1; //手数
input double sl=200; //止损
input double tp=200;//止盈 0.00200
int trade_Bar=0;
int MAGICMA=8080;
int huaDian=3;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//--- 当前货币,当前周期, 简单平均数 典型价格
double imaPrice101=iMA(NULL,0, period10, 0, MODE_SMA, trade_Bar,trade_Bar);
double imaPrice102=iMA(NULL,0, period10, 0, MODE_SMA, PRICE_CLOSE,trade_Bar+1);
double imaPrice201=iMA(NULL,0, period20, 0, MODE_SMA, PRICE_CLOSE,trade_Bar);
double imaPrice202=iMA(NULL,0, period20, 0, MODE_SMA, PRICE_CLOSE,trade_Bar+1);
//判断金叉
if((imaPrice101>imaPrice201)&&(imaPrice102<=imaPrice202))
{
//刷新市场报价
if(ToalOrders(MAGICMA)==0)
{
OrderSend(Symbol(),OP_BUY,buyCount,NormalizeDouble(Ask,Digits),huaDian,NormalizeDouble(Bid,Digits)-sl*Point,NormalizeDouble(Bid,Digits)+tp*Point, "",MAGICMA,0,Blue);
}
}
else if(imaPrice101<imaPrice201&&imaPrice102>=imaPrice202)
{
//刷新市场报价
if(ToalOrders(MAGICMA)==0)
{
OrderSend(Symbol(),OP_SELL,buyCount,NormalizeDouble(Bid,Digits),huaDian,NormalizeDouble(Bid,Digits)+sl*Point,NormalizeDouble(Bid,Digits)-tp*Point, "",MAGICMA,0,Red);
}
}
}
int ToalOrders(int magic)
{
int rez=0;
//OrdersTotal 未平仓的单子总数量
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderMagicNumber()==magic)
{
rez++;
}
}
return rez;
}