下载MetaTrader 5
要添加评论,请登录注册
MQL5.community允许用户存储源代码在MQL5 存储。试一下吧!
dlt916
6
dlt916 2012.04.17 01:51 

所写ea如下

这个ea是要实现按照macd线弯来开仓 实现多空互换 平多开空 平空开多 无间断交易

请大家帮看看 谢谢

//+------------------------------------------------------------------+
//| MACD Sample.mq4 |
//| Copyright ?2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
//定义变量
extern double Lots = 0.01;
double Init_Balance;
int TicketNo;
double Macd_0,Macd_1,Signal_0,Signal_1;

int init()
{
Init_Balance=AccountBalance();
}


//
int start()
{
//提取市场信息
string mktSignal=ReturnMarketInformation();


if(OrdersTotal()==0)
{
Open_New_Order(Lots);
}
if(OrdersTotal()>0)
{
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if(OrderType()==0&&mktSignal=="Sell")
{
for(int G_Count=OrdersTotal();G_Count>=0;G_Count--)

{
if(OrderSelect(G_Count,SELECT_BY_POS)==false) continue;
else OrderClose(TicketNo,Lots,Bid,0);
}
}
if( OrderType()==0&&mktSignal=="Buy")
{
for( G_Count=OrdersTotal();G_Count>=0;G_Count--)
{
if(OrderSelect(G_Count,SELECT_BY_POS)==false) continue;
else OrderClose(TicketNo,Lots,Ask,0);
}
}
}
return(0);
}

void Open_New_Order(double Lots)
{
if(ReturnMarketInformation()=="Buy")
TicketNo=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0);
if( ReturnMarketInformation()=="Sell")
TicketNo=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,0,0);
}


string ReturnMarketInformation()
{
string MktInfo="N/A";
Macd_0=iMACD(NULL,0,15,55,9,PRICE_CLOSE,MODE_MAIN,0);
Macd_1=iMACD(NULL,0,15,55,9,PRICE_CLOSE,MODE_MAIN,1);
Signal_0=iMACD(NULL,0,15,55,9,PRICE_CLOSE,MODE_SIGNAL,0);
Signal_1=iMACD(NULL,0,15,55,9,PRICE_CLOSE,MODE_SIGNAL,1);
if(Macd_0>Macd_1&&Signal_0>Signal_1)
{
MktInfo="Buy";
}
if(Macd_0<Macd_1&&Signal_0<Signal_1)
{
MktInfo="Sell";
}
return(MktInfo);
}

附加的文件:
/
要添加评论,请登录注册