Con cosa sostituire OnTradeTransaction() in mql4?

 

In realtà, questa è la mia domanda. Sto usando MT5 da molto tempo, ma devo usare MT4 per qualche motivo. Ma mql4 non ha OnTrade() e OnTradeTransaction() che è molto triste.

Quindi, devo risolvere il problema con un piccolo costo (in termini di risorse).

Finora, non ho pensato a niente di meglio che passare attraverso gli ordini aperti e confrontare lo stato attuale con quello precedente.

Forse ci sono soluzioni più ragionevoli.

 
Questa è esattamente la soluzione più ragionevole. Ed è la più ragionevole anche per MT5, perché non si può fare affidamento solo su OnTrade() e OnTradeTransaction(). Non sono garantiti.
 
Aleksandr Volotko:

In realtà, questa è la mia domanda. Sto usando MT5 da molto tempo, ma devo usare MT4 per qualche motivo. Ma mql4 non ha OnTrade() e OnTradeTransaction() che è molto triste.

Quindi, devo risolvere il problema con un piccolo costo (in termini di risorse).

Finora, non mi è venuto in mente niente di meglio che guardare gli ordini aperti e confrontare lo stato attuale con quello precedente.

Forse ci sono soluzioni più ragionevoli.

Non è la variante più facile, per familiarizzare con gli articoli di Artem Trishkin. E ce ne sono 31 in totale o 32 già. Ho controllato e comunicato con lui a questo proposito. Tutti gli eventi sono presi "con un botto".

Naturalmente, se non si cerca di entrare nell'essenza del contenuto dei suoi codici, dovrebbe essere più facile.


ps; Oh... sono appena tornato da questo thread e la discussione sulla 32esima parte dell'articolo ha catturato immediatamente la mia attenzione. L'articolo stesso è qui.

Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
  • 2020.01.24
  • www.mql5.com
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка орде...
 

Igor ha ragione, è difficile trovare qualcosa di più intelligente e più semplice allo stesso tempo, perché qualsiasi altra soluzione sarà basata sulla stessa chiamata a OrdersTotal() con il filtraggio degli ordini secondo i gusti e l'ulteriore elaborazione delle date.

Per ora mi fermo qui, per il mio problema va bene così.

 
Ihor Herasko:
Questa è esattamente la soluzione più ragionevole. Ed è la più ragionevole anche per MT5, perché non si può fare affidamento solo su OnTrade() e OnTradeTransaction(). Non sono garantiti.

Deve essere passato molto tempo da quando ti sei interessato. La nozione che una transazione può essere persa è stata rimossa dalla documentazione molto tempo fa. Quindi, per mql5 non c'è niente di meglio di OnTradeTransaction(). Ho controllato la velocità di ottenere l'evento di attivazione dell'ordine pendente in OnTradeTransaction() e tramite la libreria di Artem. OnTradeTransaction() è più veloce. Non l'ho misurato. Devo fare altre misurazioni per fare una stima corretta, ma non volevo perdere tempo.

 
Ad essere onesti, non ho mai avuto problemi con OnTradeTransaction() su MT5, tutto è sempre andato liscio. Nessuna perdita.
 
Alexey Viktorov:

Probabilmente non si è mai occupata di questo da molto tempo. Hanno rimosso l'avvertimento che la transazione può perdersi dalla documentazione molto tempo fa. Quindi, non c'è niente di meglio di OnTradeTransaction() per mql5. Ho controllato la velocità di ottenere l'evento di attivazione dell'ordine pendente in OnTradeTransaction() e tramite la libreria di Artem. OnTradeTransaction() è più veloce. Non l'ho misurato. Devo fare altre misurazioni per fare una stima corretta, ma non volevo perdere tempo.

È naturale - ho impostato la frequenza della scansione dell'ambiente. Pertanto, il fatto dell'evento stesso nel terminale e il fatto del cambiamento dell'ambiente si susseguono. Ma si coglie il fatto del cambiamento dell'ambiente, non l'arrivo dell'evento. Questo ha i suoi meriti. Ma tu li neghi comunque ;) Quindi è inutile discutere.
 
Artyom Trishkin:
È naturale - ho una frequenza impostata per la scansione dell'ambiente. Pertanto, il fatto dell'evento stesso nel terminale e il fatto del cambiamento dell'ambiente si susseguono. Ma nel mio caso è il fatto del cambiamento dell'ambiente che viene colto, non l'arrivo dell'evento. Questo ha i suoi meriti. Ma tu li neghi comunque ;) Quindi è inutile discutere.

Su quali vantaggi sono negato? Ho solo una negazione. Voglio capire come funzionano le cose, e se è possibile capire le cose solo non con la mia mente, allora non sono a mio agio nell'usarle, e tutto ciò con cui non sono a mio agio lo nego. Ti ho già detto che scrivi più lettere di quante ne possa leggere per il resto della mia vita. Non prendertela con me...

 
Ihor Herasko:
Questa è esattamente la soluzione più ragionevole. Ed è il più intelligente anche per MT5, perché non si può fare affidamento solo su OnTrade() e OnTradeTransaction(). Non sono garantiti.

Sei irrimediabilmente indietro con i tempi!

Per molto tempo questi eventi sono stati garantiti!

 
Errore di comunicazione durante (dopo) l'esecuzione di OrderSend (-Async) - perdita di OnTrade*.
 
prostotrader:

Sei irrimediabilmente indietro con i tempi!

Questi eventi sono garantiti da molto tempo!

E la disponibilità di luci e internet? Per non parlare della solita perdita di pacchetti di rete. Come sono diventati fighi i MetaQuotes - garantiscono tutto! ))