[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 295

 
Rustbunch:
下面是脚本本身...
使用MT4
 
Rustbunch:
下面是脚本本身...
我想说的是,给穿着太空服的病人做手术是很难的。你在这里发布了一个编译的文件,而不是开源代码(*.mq4)。我有一种感觉,你在某个地方拿了一个现成的脚本(你检查过它的自然形式的性能吗?),改变了代码中的一些东西,它就不再做你需要的事情了。如果原来的代码表现正常,那么看看你在什么地方改了什么,并检查每次修改后是否能正常工作。
 
如何分别修改买入和卖出指令?
 
paladin80:
我倾向于认为,错误在于代码本身。对剧本本身进行手术干预是必要的。

也许更换密封垫会有帮助
 
GarKain:
我如何分别修改买入和卖出订单?
OrderSelect(2563,SELECT_BY_TICKET);
if (OrderType()==OP_BUY && Open[0]>Low[stepploss] && OrderStopLoss()<trailstopbuy){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopbuy,OrderTakeProfit(),0,Blue) ;
return(0);
}
如果(OrderType()==OP_SELL &&Open[0]<High[stepploss] &&OrderStopLoss()>trailstopsell){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopsell,OrderTakeProfit(),0,Blue);
return(0);
}

又如何?
 
GarKain:
如何分别修改买入和卖出指令?

if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if (OrderType()==OP_BUY) // или OP_SELL
         OrderModify(OrderTicket(), ...);
}  }  }
 
为什么关闭订单没有效果?


如果(OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()==2563 && OrderType()==OP_BUY){
if (Open[0]<=Low[stiposs]){
OrderClose(g,1,Bid,3,Red);
return(0);
}
如果(GradusEDBuy==true){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
if (OrderMagicNumber()==2563 &&OrderType()==OP_SELL){
if (Open[0]>=High[Steploss]){
OrderClose(g,1,Ask,3,Red);
return(0);
}
如果(GradusEDSell==true){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
 
请您告诉我如何处理这种情况下的EA循环和性能损失问题?我仍然在使用重启,这非常不方便。我正在使用重启,这很不方便。 先谢谢你。
 
yosuf:
能否请您告诉我如何处理EA循环和这样做的性能损失问题?
去掉循环,然后捶打一下那个编剧 :)
 
TheXpert:
拿出环形物,并捶打编码者的手 :)
这一点在代码中写在哪里,怎么写的?究竟什么应该被删除?