新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 373

 
STARIJ:
你有一个总结

谢谢你!运转了一下,就修好了!现在它起作用了。

 
Artyom Trishkin:
顺序是按票选择的,然后,在一公里的代码后,你试图修改它。但那时候可能已经关闭了。

如果订单被关闭,那么OrdersTotal()==0;;分别,OrderModify()根本不会发生。

 
ijonhson:

如果订单被关闭,那么OrdersTotal()==0;,分别,OrderModify()根本不会发生。

首先,你检查数量,然后检查大量的代码,在这些代码中,头寸 可能已经关闭(但你已经在处理大于0的数量条件),然后你选择并修改关闭的那一个。
 

例如,如果订单的手数为0.59,那么订单可以一次关闭0.01手。一个问题出现了。是否可以将两个订单合并为一个?例如,一个手数为0.01的订单,你想开一个手数为0.02的订单。它们能否与0.03手结合起来,以避免订单的堆积,如果可以,怎么做?

 
安装MT5网罩
 
Taras Slobodyanik:
安装MT5网罩

在MT4中没有这样的东西?

 

大家又见面了。


恕我直言,纯洁的矩形。


我不明白--为什么它高兴地修改卖出订单,却忽略了对买入订单的修改,甚至在使用香烛和其他非理性的优化工具时也是如此。


如果(ticket>0)

{

//为买入订单设置止损和止盈//。

如果(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))

{

双层滑动,Tp。

如果(type==OP_BUY)

{

sl=OrderOpenPrice()-(StopLoss*_Point)。

sl=NormalizeDouble (sl,_Digits);

tp=OrderOpenPrice()+(TakeProfit*_Point)。

tp=NormalizeDouble (tp,_Digits)。

}

如果(类型==OP_SELL),则

{

sl=OrderOpenPrice()+(StopLoss*_Point)。

sl=NormalizeDouble (sl,_Digits);

tp=OrderOpenPrice()-(TakeProfit*_Point)。

tp=NormalizeDouble (tp,_Digits)。

}

bool mod = false。

int count=0。

while (!mod)

{

mod=OrderModify (ticket, OrderOpenPrice (), sl, tp, 0, clrYellow) 。

count++。

如果(count>=100)

{

mod=true。

突破。

 

想通了!!!!!

 

请帮助我,我只是在学习,如果从一个缓冲区调用ZZ,从两个缓冲区调用ZZ,我应该如何正确书写?

// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка

我写得不对,应该怎么写?谢谢你

 

没有捕捉到顶部的那块,那样更有意义。请告诉我这个错误。

原因: