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.
- 2020.01.24
- www.mql5.com
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ì.
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.
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 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...
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!
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! ))
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
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.