EA不会在多对上运行,需要帮助 - 页 3 12345 新评论 Matt_Townsend 2016.12.12 20:14 #21 for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY) { if(fastma < slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing order ", GetLastError()); } } if(OrderType()==OP_SELL) { if(fastma > slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing Order : ", GetLastError()); } } } Sleep(300000); return(0);} 我的Ea不会停止开仓和平仓,它似乎忽略了我代码中的一些东西,我的平仓功能 有什么问题吗? EA will not run 2007年自动交易锦标赛:专家的常见错误 初学者的问题 MQL4 MT4 MetaTrader honest_knave 2016.12.12 20:28 #22 Matt_Townsend: 我的关闭订单功能 有什么问题吗?是的 - 在关闭订单时,您必须倒数。for(int i=OrdersTotal()-1; i>=0; i--) 你可以在这里 阅读一下原因 Matt_Townsend 2016.12.12 20:50 #23 honest_knave:是的--你在关闭订单时必须倒数。for(int i=OrdersTotal()-1; i>=0; i--) 你可以在这里 阅读为什么 它仍然只是打开并几乎立即关闭交易,代码还有什么问题吗? William Roeder 2016.12.12 20:56 #24 Matt_Townsend: 代码中还有什么问题吗? 打印出你的变量,并找出原因。 Keith Watford 2016.12.13 02:12 #25 if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;你为什么要继续?if(OrderMagicNumber()!= MagicNumber || OrderSymbol()!= Symbol()) continue; 会更有意义 Matt_Townsend 2016.12.13 02:27 #26 Keith Watford:if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;你为什么要继续?if(OrderMagicNumber()!= MagicNumber || OrderSymbol()!= Symbol()) continue; 会更有意义 如果代码中有||,它不会关闭订单,但如果有!"=",它确实能更好地工作。 Matt_Townsend 2016.12.13 02:37 #27 //+---------------------------------------------+//|System start |//+---------------------------------------------+int start(){ double fastma, slowma; int ticket, total; //---define Ma's fastma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0); slowma = iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,0); total = OrdersTotal(); //---Start operations if(total < 1) { if(fastma > slowma) { ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue); if(ticket > 0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Buy order opened : ", OrderOpenPrice()); } else Print("Error opening order : ", GetLastError()); return(0); } if(fastma < slowma) { ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",0,0,Red); if(ticket > 0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ", OrderOpenPrice()); } else Print("Error opening order : ", GetLastError()); return(0); } return(0); } for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY) { if(fastma < slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing order ", GetLastError()); } } if(OrderType()==OP_SELL) { if(fastma > slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing Order : ", GetLastError()); } } } Sleep(300000); return(0);} 这是我现在的代码,它可以在我设置的任何货币对上打开交易,但随机地有某些货币对上的交易未完成。我一直试图让代码在我设置的任何货币对上独立运行,但不幸的是,代码在所有其他交易关闭之前不会打开任何交易,然后不会在它设置的所有货币对上打开交易。是否有办法让程序做到这一点呢? EA will not run 請高手指教!!!關於修改程序!!! 請高手幫幫忙,急需中.... 看看这个怎么样!!!!!~~~ William Roeder 2016.12.13 13:46 #28 你的代码 for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY)简化 for(int i=OrdersTotal()-1;i>=0;i--) if( OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ){ //---Check Order Type if(OrderType()==OP_BUY) Matt_Townsend 2016.12.13 14:22 #29 whroeder1:你的编码 for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY)简化 for(int i=OrdersTotal()-1;i>=0;i--) if( OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ){ //---Check Order Type if(OrderType()==OP_BUY)每个图表仍然不能独立运行,我还能做什么吗?而这样的编码方式,它不再关闭交易。 Keith Watford 2016.12.14 02:43 #30 Keith Watford 2016.12.14 03:10|122.155.43.228ban #4EN total = OrdersTotal(); //---Start operations if(total <= 1) 循环查看未结订单,只计算具有EA的神奇数字和图表符号的交易。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
是的 - 在关闭订单时,您必须倒数。
是的--你在关闭订单时必须倒数。
你为什么要继续?
你为什么要继续?
//|System start |
//+---------------------------------------------+
int start()
{
double fastma, slowma;
int ticket, total;
//---define Ma's
fastma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);
slowma = iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,0);
total = OrdersTotal();
//---Start operations
if(total < 1)
{
if(fastma > slowma)
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Buy order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
if(fastma < slowma)
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",0,0,Red);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Sell order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
return(0);
}
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
每个图表仍然不能独立运行,我还能做什么吗?
而这样的编码方式,它不再关闭交易。
total = OrdersTotal();
//---Start operations
if(total <= 1)