首页学院交易策略EA智能交易文章详细

MQL4实例EA教程:连拉3个阴柱或阳柱后做交易

外汇网2021-06-17 09:41:39 73
汇外网 - 全球专业的黄金外汇门户导航行情资讯网站

代码如下:

int MAGIC=35207814;

extern double lots=1;

//+------------------------------------------------------------------+

//| 下面定义start函数,函数会在价格每次波动的时机运行。

//+------------------------------------------------------------------+

int start()

{

if(CalculateCurrentOrders(Symbol())==0) //目前帐户订单为0时,继续下面的代码,也就是说,假使已经成交了,即便显现信号也不会又一次成交。

{

double StopLoss;

double TakeProft;

if(Signal()==-1)//出售信号显现

{

StopLoss=Open[3];//设定止损第三根k线的开盘价

TakeProft=2*(Open[1]-Close[1]+Open[2]-Close[2]+Open[3]-Close[3])/Point;//设定止盈为前面三根k线总和的2倍

if(OrderSend(Symbol(),OP_SELL,lots,Bid,3,StopLoss,Bid-TakeProft*Point,0,MAGIC,0,Blue)<0)//假使出售失利

Alert("auto sell is failed!---"+GetLastError());

//弹窗报警而且表明失利代码

else return(0);

//交易成功就返回不实施下面的代码。

}

if(Signal()==1)//购入信号显现

{

StopLoss=Open[3];//设定止损第三根k线的开盘价

TakeProft=2*(Close[1]-Open[1]+Close[2]-Open[2]+Close[3]-Open[3])/Point;//设定止盈为前面三根k线总和的2倍

if(OrderSend(Symbol(),OP_BUY,lots,Ask,3,StopLoss,Ask+TakeProft*Point,0,MAGIC,0,Red)<0)//假使购入失利

Alert("auto buy is failed!---"+GetLastError());

//弹窗报警而且表明失利代码

else return(0);

//交易成功就返回不实施下面的代码。

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

int CalculateCurrentOrders(string symbol) //本函数用来返回本ea下单而且没有平仓的订单数目

{

int ors=0;

for(int i=0;i

i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)

{

if(OrderType()==OP_BUY) ors++;

if(OrderType()==OP_SELL) ors++;

}

}

return(ors);

}

//*************交易信号,返回值是1便是购入,-1就是出售,0是没有信号

int Signal()

{

int res;

if(Close[1]>Open[1] && Close[2]>Open[2] && Close[3]>Open[3]) //购入信号:接连三根k线为阳线

res=1;

if(Close[1]

res=-1;

return(res);

}

标签:

随机快审展示
加入快审,优先展示

加入VIP