Ordine controllato per la validità, ma non ancora accettato dal broker
STATO DELL'ORDINE PIAZZATO
Stato dell'ordine piazzato
Si invia una richiesta di compravendita (OrderSend) - la sua correttezza viene controllata e se è OK, il ritorno è true. Cioè, questa è una risposta sulla correttezza della richiesta commerciale. Il server non ha ancora ricevuto questa richiesta.
Inoltre, quando la richiesta viene accettata dal server, viene restituita la risposta: ORDER_STATE_PLACED - l'ordine è impostato.
Non posso esserne sicuro, ma è così che funziona logicamente. Non conosco nessuna insidia.
Ordine controllato per la validità, ma non ancora accettato dal broker
STATO DELL'ORDINE PIAZZATO
Stato dell'ordine piazzato
Invia la richiesta di compravendita (OrderSend) - viene controllata la sua correttezza e se è OK, il ritorno è true. Cioè è una risposta che la richiesta di scambio è corretta. Il server non ha ancora ricevuto questa richiesta.
Inoltre, quando la richiesta viene accettata dal server, viene restituita la risposta: ORDER_STATE_PLACED - l'ordine è impostato.
Non posso esserne sicuro, ma è così che funziona logicamente. Non so cosa evitare.
Hai descritto la logica di lavoro con OrderSendAsync, non OrderSend. Dopo l'attuale OrderSend, vorrai cancellare l'ordine, ed è molto probabile che non potrai farlo, dato che gli ordini Started non vengono cancellati.
Artyom Trishkin: Si invia una richiesta di compravendita (OrderSend) - la sua correttezza viene controllata e, se OK, restituisce true. Cioè, questa è una risposta che la richiesta di scambio è corretta. Il server non ha ancora ricevuto questa richiesta.
Allora come è diverso OrderSend da OrderSendAsync (a parte il nome)?
Artyom Trishkin: Ho scritto sopra - solo la mia idea di logica. Ho lavorato in 4 per molto tempo. Pertanto, è improbabile che io risponda a questa domanda ;)
MQL5: cambiato il comportamento della funzione OrderSend quando si inseriscono, modificano e ritirano gli ordini. Il comportamento è cambiato solo quando si piazzano ordini a sistemi di trading esterni. In precedenza, il controllo della funzione OrderSend veniva restituito dopo l'avvenuto piazzamento (elaborazione) di un ordine sul server del broker. Ora il controllo viene restituito solo dopo che il server del broker riceve una notifica dal sistema di trading esterno che l'ordine è stato piazzato con successo.
Qui sotto c'è una rappresentazione schematica del comportamento precedente (freccia rossa) e attuale della funzione:
Poiché anche con Before (nello schema) OrderSend avrebbe dovuto essere restituito solo quando Placed. Soprattutto perché i casi si verificano su diversi server demo dove non c'è un sistema esterno.
Affinché il mio EA lavori in un blocco di recupero, ho bisogno di sapere quante commissioni, swap e spese sono state fatte nell'ultimo periodo. Come posso ottenere queste informazioni programmaticamente?
E quando un ordine è già stato fatto, qualcosa viene restituito?
STATO_ORDINE_POSTO.
Identificatore
Descrizione
STATO DELL'ORDINE INIZIATO
Ordine controllato per la validità, ma non ancora accettato dal broker
STATO DELL'ORDINE PIAZZATO
Stato dell'ordine piazzato
Si invia una richiesta di compravendita (OrderSend) - la sua correttezza viene controllata e se è OK, il ritorno è true. Cioè, questa è una risposta sulla correttezza della richiesta commerciale. Il server non ha ancora ricevuto questa richiesta.
Inoltre, quando la richiesta viene accettata dal server, viene restituita la risposta: ORDER_STATE_PLACED - l'ordine è impostato.
Non posso esserne sicuro, ma è così che funziona logicamente. Non conosco nessuna insidia.
Beh, è già descritto:
Identificatore
Descrizione
STATO DELL'ORDINE INIZIATO
Ordine controllato per la validità, ma non ancora accettato dal broker
STATO DELL'ORDINE PIAZZATO
Stato dell'ordine piazzato
Invia la richiesta di compravendita (OrderSend) - viene controllata la sua correttezza e se è OK, il ritorno è true. Cioè è una risposta che la richiesta di scambio è corretta. Il server non ha ancora ricevuto questa richiesta.
Inoltre, quando la richiesta viene accettata dal server, viene restituita la risposta: ORDER_STATE_PLACED - l'ordine è impostato.
Non posso esserne sicuro, ma è così che funziona logicamente. Non so cosa evitare.
Si invia una richiesta di compravendita (OrderSend) - la sua correttezza viene controllata e, se OK, restituisce true. Cioè, questa è una risposta che la richiesta di scambio è corretta. Il server non ha ancora ricevuto questa richiesta.
Allora come è diverso OrderSend da OrderSendAsync (a parte il nome)?
Ho scritto sopra - solo la mia idea di logica. Ho lavorato in 4 per molto tempo. Pertanto, è improbabile che io risponda a questa domanda ;)
Guarda il paragrafo 7 qui https://www.mql5.com/ru/forum/23/page19#comment_2632240
Guarda qui https://www.mql5.com/ru/forum/23/page19#comment_2632240
La spiegazione del caso descritto può essere che il server sulla vecchia build
Forum sul trading, sistemi di trading automatico e test di strategia
Cambiamenti nelle build del terminale client di MetaTrader 5
MetaQuotes Software Corp., 2016.07.14 15:30
Qui sotto c'è una rappresentazione schematica del comportamento precedente (freccia rossa) e attuale della funzione:
La vecchia costruzione non ha niente a che fare con questo.
Buon pomeriggio a tutti!
Affinché il mio EA lavori in un blocco di recupero, ho bisogno di sapere quante commissioni, swap e spese sono state fatte nell'ultimo periodo. Come posso ottenere queste informazioni programmaticamente?