Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Purtroppo, solo attraverso una stampella - una variabile globale del terminale.
E attraverso stampelle aggiuntive per garantire che la variabile principale sia cancellata in caso di crash, per esempio.
Quindi la mia variante con l'attesa di una transazione nella storia è più affidabile e più semplice. Ma è comunque una stampella.
Non ho controllato, ma forse dopo OrderSend TUTTI gli EA ricevono l'evento corrispondente perOnTradeTransaction.
Allora tutto è risolto senza stampelle e per più EAs sullo stesso simbolo.
Vuoi che ti aiuti ad aggirare questi inconvenienti (per esperienza personale di trading con i robot MT5 su un conto reale)?
Aggiunto
Totalmente gratuito :)
La gente non vuole pensare da sola, vuole che gli altri lo facciano per loro... Purtroppo, questo è vero.
Le persone non solo pensano, ma condividono anche le loro soluzioni. Gli sviluppatori tacciono su questo, purtroppo.
Non un solo esempio nella documentazione su questo argomento. E questo con la funzione principale.
Io sostengo. Se fosse scritto da qualche parte che OrderSend() aspetta una risposta dal server e cosa succede dopo, non ci sarebbe bisogno di inventarsi dei workaround per controllare.
C'è un eccellente articolo sugli ordini, le offerte e le posizioni e il lavoro con loro e la loro cache che dettaglia tutto. Tuttavia, evita completamente i processi che avvengono quando si inviano gli ordini stessi.
Il mio suggerimento
Usalo.
E cosa succede se l'evento OnTrade() viene attivato prima che l'elaborazione OnTick() sia finita. A volte il tempo è fondamentale. Aspettare che si verifichi l'evento OnTrade() può essere problematico. Inoltre, la funzione OrderSend() stessa è progettata in modo che io possa ottenere informazioni sui suoi risultati direttamente sul posto. O non lo è?
OrderSend() è una funzione assolutamente sincrona - se viene ricevuto un biglietto, tutto viene eseguito.
Qui sotto c'è un esempio
Aggiunto, ed ecco i registri
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
Non eseguito, ma inviato al server MT5.
No. Per lo scambio - è andato allo scambio (potrebbe non aver adempiuto :) ), per il FOREX non so
Aggiunto
Cioè (per lo scambio), se si ottiene un biglietto nella funzione OrderSend((), significa che l'ordine è accettato dallo scambio
Aggiunto
Vedere l'immagine (ci sono stati cambiamenti nel 1375)
Questo è un caso speciale di invio di un ordine limite a uno scambio. E un ordine di mercato nel forex?
Non una volta in questo thread. Solo sulla sincronia di MT5 e OrderSend.
Quindi la risposta non si adatta.
No. Per Exchange - è andato a Exchange (forse non si è realizzato :) ), per FOREX non so
Aggiunto
Cioè (per lo scambio), se si ottiene un biglietto nellafunzione OrderSend((), significa che l'ordine è accettato dallo scambio
Aggiunto
Vedere l'immagine (ci sono stati cambiamenti nel 1375)