谁能帮帮我!! - 页 4

 

我想知道一个像这样的专家顾问......它打开2个不同的挂单,并在其中一个触发时关闭其余的订单......

以前有一个代码库双待2叫...现在没有了...

 
Techno:
他的意思是,他把所有订单上的所有操作都混在一个循环中,其中一个迭代对另一个迭代的结果有很大影响,他不明白为什么所有的操作都不成功。

所以我们必须先把肉片和苍蝇分开...我没有想到会出现这样的混乱局面 :-)
 
sllawa3:

我想知道一个像这样的专家顾问......它打开2个不同的挂单,并在其中一个触发时关闭其余的订单......

有一个待定的2的代码被称为......现在不是了......


按OrderType()循环浏览未结订单,并设置计数器。

int count=0。

如果(OrderType()<2) count++;

如果(count==0)

{ 这里有一个选择器--只要你遇到OrderType()>1--删除它:OrderDelete(.....);如果删除成功(见文档),设置激活:OrderSend(...); }初级的,华生!

我把你弄错了:如果(OrdersTotal()==0){放置2个挂单},然后用订单类型 选择器检查 一旦你发现一个<2,寻找第二个>2并删除它。

 

这里有一个循环来检查订单的状态,之后做检查、关闭和修改,在每个动作后返回操作者,使循环更新订单的状态。

for(int i=0;i<OrdersTotal();i++)
        {
          if(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MAGA)
          switch(OrderType())
          {
          case 0:DB=1;break;
          case 1:DS=1;break;
          case 4:ZB=1;break;
          case 5:ZS=1;break;
          }
        }
 
好吧......我明白你帮不了我......反正在我看到之前给建议是没有用的......我会找一个类似的(这个检查周期也不行......一切都一样......甚至每个操作有几个循环...)
 
任何没有启动的循环都会显示变量的最后值...如果没有订单,它就不会启动。
 
sllawa3:
好吧......我想你不会有什么帮助......反正在我看到之前给建议是没有用的......我会找一个类似的(它在这个检查循环中也不起作用......都是一样的......)。甚至每次操作都有几个循环......)

你变懒了......写一个函数(或两个,如果你不知道怎么写),返回市场(历史)中指定参数的订单数量:符号、魔术师、订单类型,也就是说,在任何组合中......

然后在每一个tick(或EA开始的其他时间框架),你定义市场上的订单量和挂单量,并使用它们的组合来执行所需的行动......

市场==0,挂单==0

市场==0,挂单==2,什么都不做

市场==1,挂单==1 删除一个挂单

市场==1,停顿==0的诱饵

我不相信这是很难做到的 ...


对不起。现在是时候忘记程序化编程了--使用函数...

一个变量保存最后一个值,这很可笑......

 

历史上没有问题,但我怎么知道它是否打开了?如果选择器保持最后一个值,直到它被重新启动...

它是奶油味的。

 
sllawa3:
历史上没有问题,但我怎么知道它是否打开了?如果选择器保持最后一个值,直到它被重新启动...
已经有3个人告诉你5次如何做了,如果你不明白,可以找一个现成的,或者找人帮你写。
 
不仅仅是这个平台有问题,任何平台都有问题...。直到选择器被重新启动(直到订单出现),它将有最后一个值停留在里面。