请教问题:为何我的EA会连续同一时间不断交易
如题:我这个ea是仿照原来的macd simple 来写的
if(Total<1)
if((macd1>0 && macd2<macd1 && force<=0 && High>High)||(macd1<=0 && macd2<macd1 && force<=0 && High>High))
{
MyBuyTicket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,888,"macd sample",16384,0,Green);
if(MyBuyTicket>0)
{
if(OrderSelect(MyBuyTicket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError()); return(0);
}
if((macd1>0 && macd2>macd1 && force>0 && Low<Low) ||(macd1<=0 && macd2>macd1 && force>0 && Low<Low))
{
MySellTicket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"macd sample",16384,0,Red);
if(MySellTicket>0)
{
if(OrderSelect(MySellTicket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError()); return(0);
//当含有定单时 kkmacd 的值表示出来的时候是否永远为正数,导致判断macd为负时候出错。
for(n=0;n<Total;n++)
{
OrderSelect(0, SELECT_BY_POS, MODE_TRADES); //这里用0是因为目前我只打算只做1笔交易,后期如果涉及到分部止盈止损的时候需要用到f o r 循环来选取。
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
if(Low<Low)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return(0);
}
}
else
{
if(High>High)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
return(0);
}
}
}
}
}
订单管理没有做好
按你现有的条件执行EA,是每tick都会执行一次,符合条件时,自然就是每个tick都会下单 利用 Bars 來管理,開倉時加入 myBars != Bars
開完倉後寫一條 myBars = Bars;
希望论坛多些这样的无私奉献的人 路过。。看下先。 EA真的能赚钱么? 围观中~~~ 赚钱,赚积分。顶.... 看看怎么样
页:
[1]