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

 
MakarFX #:

不是很关键,但每件事都有一个解释......

你有这样的解释

 
MakarFX #:

不是关键,但有一个解释...

或假设

 
EVGENII SHELIPOV #:

或假设

需要整个代码在测试器中查看。
 
MakarFX #:
需要整个代码在测试器中查看。

请看

附加的文件:
111.mq4  48 kb
 
EVGENII SHELIPOV #:

BAC有这样的解释

在修改一个订单之前,你应该检查正在设置的值是否与订单中已有的值相同。
,如果所有的值都相同,就没有必要进行修改。

 
Taras Slobodyanik #:

在修改一个订单之前,你应该检查所设置的值是否与订单中已有的值相同。
,如果所有的值都相同,就没有必要进行修改。


//+----------------------------------------------------------------------------+
//| Модификация групповых ордеров                                              |
//+----------------------------------------------------------------------------+
void ModifyOrders(int otype)
{
    double avg_price, order_lots = 0;
    price = 0;


    for(int i = OrdersTotal()-1; i>=0; i--)
    {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
       {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
         {
            price += OrderOpenPrice() * OrderLots();
            order_lots += OrderLots() ;
         }
       }
    }
    avg_price = NormalizeDouble(price / order_lots, Digits);
     {
     ObjectDelete(0, "AveragePriceLine");
     ObjectCreate(0,"AveragePriceLine" ,OBJ_HLINE, 0, 0, avg_price);
     ObjectSet("AveragePriceLine",OBJPROP_COLOR, Magenta);
     }
    if (otype == OP_BUY) tp = NormalizeDouble (avg_price + TakeProfitGroupOrder*Point, Digits);
    if (otype == OP_SELL) tp = NormalizeDouble (avg_price - TakeProfitGroupOrder*Point, Digits);
    if ((otype == OP_BUY || otype == OP_SELL) && (Drawdown > DrawdownClosingTakeprofitZero)) 
    tp = NormalizeDouble (avg_price, Digits);
    for(int i = OrdersTotal()-1; i>=0; i--) 
    {
       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
       {
           if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
           {
               if(OrderModify(OrderTicket(), OrderOpenPrice(), 0, tp, 0))
                  Print("Ордера успешно модифицированы!");
                else Print("Ошибка модификации ордеров!");
           }
       }
    }
}

这就是你所说的支票吗?

 
EVGENII SHELIPOV #:

这就是你所说的支票吗?

你需要检查订单中已经设置的值是否与要设置的值相符。

  • tp==OrderTakeProfit()
  • 另外,如果sl==OrderStopLoss()是需要的
  • 如果需要的话,价格==OrderOpenPrice()

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype && tp!=OrderTakeProfit() )
 
Taras Slobodyanik #:

应检查订单中已经设置的值是否与要设置的值相一致。

  • tp==OrderTakeProfit()
  • 另外,如果sl==OrderStopLoss()是需要的
  • 如果需要的话,价格==OrderOpenPrice()

塔拉斯,你能解释一下,如果我修改了一个最小和最大订单的网格,并分别需要计算一个新的平均价格和修改新的获利,我需要它做什么?

 
EVGENII SHELIPOV #:

塔拉斯,你能解释一下为什么我需要这个吗?如果我修改了一个网格的订单,其中最小和最大的订单都减少了,我需要计算一个新的平均价格并修改新的止盈。


...和它的解释。

 
MakarFX #:
它不在那里。