Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 477

 
#include <Trade/Trade.mqh>

void DeletePendingOrders(const string sSymbol, const ulong nMagic)
{
   CTrade oTrade;

   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong nOrderTicket = OrderGetTicket(i);
      
      if(nOrderTicket > 0)
      {
         if(OrderGetString(ORDER_SYMBOL) == sSymbol && OrderGetInteger(ORDER_MAGIC) == nMagic)
         {
            // удаляем только отложенники
            ENUM_ORDER_TYPE eType = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
            
            if(eType == ORDER_TYPE_BUY_STOP  || eType == ORDER_TYPE_SELL_STOP ||
               eType == ORDER_TYPE_BUY_LIMIT || eType == ORDER_TYPE_SELL_LIMIT ||
               eType == ORDER_TYPE_BUY_STOP_LIMIT || eType == ORDER_TYPE_SELL_STOP_LIMIT)
            {
               oTrade.OrderDelete(nOrderTicket);
            }
         }
      }
   }
}

Lo script per MT4 non funzionerà su Five, ha funzioni di trading molto diverse.

 
Sergei Vladimirov:

Lo script per MT4 non funzionerà su Five, ha funzioni di trading molto diverse.

Grazie, stavo giusto per occuparmi di trade.mqh.
 
Potresti dirmi qualcosa, per favore? Come posso scoprire programmaticamente, non logicamente, come è stato chiuso un ordine a mercato - per TP, SL o per mercato?
 
-Aleks-:
Potresti dirmi qualcosa, per favore? Come posso sapere programmaticamente, non logicamente, come è stato chiuso un ordine a mercato - per TP, SL o per mercato?
Confronta il prezzo di chiusura con il TP, SL. Se quasi coincidono - la risposta è lì. Se non coincidono, la risposta è anche lì
 
Victor Nikolaev:
Confronta il prezzo di chiusura con TP, SL. Se corrispondono quasi - la risposta è lì. Se non coincidono, allora la risposta è anche lì.

È quello che ho chiesto, come non per confronto? Nel terminale gli ordini sono colorati, significa che hanno una bandiera su come sono stati chiusi.

Non mi è del tutto chiaro come sistemare il "quasi" - lo slittamento può essere troppo grande da confrontare.

 
-Aleks-:

È quello che ho chiesto, come non per confronto? Nel terminale gli ordini sono colorati, quindi hanno una bandiera su come sono stati chiusi.

Non mi è molto chiaro come organizzare il "quasi" - lo slittamento può essere troppo per un confronto.

Con "quasi" si decide individualmente caso per caso. In un mercato lento è una cosa, in un mercato veloce è un'altra
 
-Aleks-:
Potresti dirmi qualcosa, per favore? Come posso sapere programmaticamente, non logicamente, come è stato chiuso un ordine a mercato - per TP, SL o per mercato?
Il commento dell'ordine chiuso da stoploss è attribuito [sl], chiuso da takeprofit è attribuito [tp].
 
Artyom Trishkin:
Nel commento di un chiuso su stoploss, attribuito a [sl], chiuso su takeprofit, attribuito a [tp].
Sei sveglio?
 
Victor Nikolaev:
Sei sveglio?
Stavo scrivendo sul mio cellulare... nel sonno... russare... sniffling... fare le fusa...
 
Victor Nikolaev:
Con "quasi" si risolve individualmente in ogni caso a modo suo. Questo è una cosa in un mercato lento e un'altra cosa in uno veloce.

Sì, è per questo che sto cercando una soluzione universale - se l'informazione è necessaria sulla prossima barra dopo che l'ordine è stato chiuso, allora non è così difficile valutare la volatilità, ma se è dopo un giorno, allora devo contare il numero di barre che sono passate e la volatilità che c'era.

Artyom Trishkin:
Nel commento di un chiuso da stoploss attribuiamo [sl], di un chiuso da takeprofit attribuiamo [tp].

Grazie - ora cercherò di leggerlo!

E non c'è nessun commento del genere nel tester, giusto?