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

 
EVGENII SHELIPOV #:

Makar, puoi spiegare da quale punto del codice si fa riferimento alla funzione?

Se ci sono più di 1 ordine

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
   {
//---
   if(CountTrade()>1) TrailingGroupOrder();
   }
 
MakarFX #:

Scusa, ho scritto per 4...

Controllato in 5! Funziona.

Grazie. Molto strano che la mia versione non abbia funzionato. Mi sono rotto il cervello)))

 
Andrey Sokolov #:

Grazie. È molto strano che la mia opzione non abbia funzionato.

Non è strano...

non hai scritto i percorsi, ecco il tuo codice

   string src_path; 
   string dst_path; 
   StringConcatenate(src_path,"","//",name_file); 
   StringConcatenate(dst_path,name_folder,"//",name_file); 
   ResetLastError();
   if(FileMove(src_path,0,dst_path,0)){

e a cosa corrispondono "src_path" e "dst_path"?

 
MakarFX #:

Se ci sono più di 1 ordine

No Makar, non funziona

 
MakarFX #:

Non è strano...

non hai scritto i percorsi, ecco il tuo codice

e a cosa corrispondono "src_path" e "dst_path"?

sono scritte nelle prossime due righe, prese dall'aiutohttps://www.mql5.com/ru/docs/files/filemove

Non è questo il punto, questo codice ha funzionato in mt4, e ho spostato il primo screenshot in mt5.

 
EVGENII SHELIPOV #:

No Makar, non funziona

Non può essere... Dammi tutto il codice nel messaggio privato.
 
MakarFX #:
Niente da fare... Dammi tutto il codice nella tua casella di posta elettronica.

Vi ho mandato

 
EVGENII SHELIPOV #:

Vi ho mandato

Rispondi
 
MakarFX #:
ha risposto

Makar grazie continuerò a pensare

 
MakarFX #:
ha risposto

Buon giorno Makar !!!

Seguendo i vostri consigli, ho trovato un posto nella funzione void OnTick() dove posso attaccare la funzione TrailingGroupOrder() per inviare un comando per modificare una scia di ordini di gruppo, e oh mio Dio la scia di ordini di gruppo ha cominciato a funzionare. Tuttavia, la mia gioia non è durata a lungo. Guardando meglio, ho visto che solo l'ordine con un biglietto minimo è trillato.

//+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
void TrailingGroupOrder()
{
    for(int i = OrdersTotal()-1; i>=0; i--)
    {
     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
       {
       if(OrderType() == OP_BUY && Bid - GetAveragePrice() > TrailingStopGroupOrder*Point)
        {
        if(Bid - GetAveragePrice() > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
         {
         if(OrderStopLoss() < Bid - (TrailingStep + TrailingStopGroupOrder )*Point || OrderStopLoss() == 0)
          {
          if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid - TrailingStopGroupOrder*Point, Digits), tp, 0))
                    Print("Ошибка модификации групповых ордеров на покупку!");
          }
         }
        }
        if(OrderType() == OP_SELL && GetAveragePrice() - Ask > TrailingStopGroupOrder*Point)
         {
         if(GetAveragePrice() - Ask > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
           {
            if(OrderStopLoss() > Ask + (TrailingStep + TrailingStopGroupOrder)*Point || OrderStopLoss() == 0)
              {
              if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask + TrailingStopGroupOrder*Point, Digits), tp, 0))
                    Print("Ошибка модификации групповых ордеров на продажу!");
              }
           }
         }
      } 
    }
}

Posso supporre molto probabilmente che il problema è nella modifica del solo primo ordine (minimo) e non di tutti in una volta.

Makar consiglia come modificare tutti gli ordini nella griglia????

Motivazione: