Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1627

 
MakarFX #:

Non critico, ma c'è una spiegazione per tutto...

VOI avete questa spiegazione

 
MakarFX #:

Non critico, ma c'è una spiegazione...

O supposizioni

 
EVGENII SHELIPOV #:

O supposizioni

Ho bisogno di tutto il codice da guardare nel tester.
 
MakarFX #:
Ho bisogno di tutto il codice da guardare nel tester.

Si prega di vedere

File:
111.mq4  48 kb
 
EVGENII SHELIPOV #:

BAC ha questa spiegazione

Prima di modificare un ordine, dovresti controllare se i valori da impostare sono gli stessi di quelli già presenti nell'ordine.
E se tutti i valori sono gli stessi, non c'è bisogno di fare la modifica.

 
Taras Slobodyanik #:

Prima di modificare un ordine, dovresti controllare se i valori impostati sono gli stessi di quelli già presenti nell'ordine.
E se tutti i valori sono gli stessi, non c'è bisogno di fare la modifica.


//+----------------------------------------------------------------------------+
//| Модификация групповых ордеров                                              |
//+----------------------------------------------------------------------------+
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("Ошибка модификации ордеров!");
           }
       }
    }
}

È questo l'assegno di cui parla?

 
EVGENII SHELIPOV #:

È questo l'assegno di cui parla?

È necessario controllare se il valore già impostato nell'ordine corrisponde a quello da impostare.

  • tp==OrderTakeProfit()
  • Inoltre, se sl==OrderStopLoss() è richiesto
  • anche se necessario price==OrderOpenPrice()

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

Il valore già impostato nell'ordine deve essere controllato per vedere se coincide con quello da impostare.

  • tp==OrderTakeProfit()
  • Inoltre, se sl==OrderStopLoss() è richiesto
  • anche se necessario price==OrderOpenPrice()

Taras, potresti spiegarmi a cosa mi serve se modifico una griglia di ordini con ordini minimi e massimi diminuiti e rispettivamente devo calcolare un nuovo prezzo medio e modificare il nuovo take profit

 
EVGENII SHELIPOV #:

Taras, puoi spiegare perché ho bisogno di questo se modifico una griglia di ordini in cui gli ordini min e max sono ridotti, rispettivamente devo calcolare un nuovo prezzo medio e modificare il nuovo take profit

er, non hai chiesto dell'errore di modifica e della sua criticità?
...e la sua spiegazione

 
MakarFX #:
Non c'è.