FORTS: codici di ritorno di OnTradeTransaction() - pagina 11

 
Dmitry Fedoseev:
Non è chiaro esattamente in quale stato fosse l'ordine.

Per RIMUOVERE un ordine, è importante che esista e che non si trovi in uno stato "intermedio".

Guarda attentamente (con tutte le spiegazioni):

https://www.mql5.com/ru/forum/58012/page9#comment_2074928

ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 9 - Категория: биржевой трейдинг
 
Михаил:

Per RIMUOVERE un ordine, è importante che esista e che non si trovi in uno stato "intermedio".

Guarda attentamente (con tutte le spiegazioni):

https://www.mql5.com/ru/forum/58012/page9#comment_2074928

Ancora interessante, e potrebbe essere utile, come un argomento chiaro per servicedesk.
 
Dmitry Fedoseev:
Ancora interessante, e potrebbe essere utile, come un argomento chiaro per il servicedesk.

Quindi pensi che la funzione CheckOrderState() non sia scritta correttamente?

P/S SD, silenzioso come sempre....

 
Михаил:

Quindi pensi che la funzione CheckOrderState() non sia scritta correttamente?

P/S SD, silenzioso come sempre....

Non lo so. Se era ORDER_STATE_PLACED, probabilmente è lo stesso bug.

E se fosse ORDER_STATE_PARTIAL, non lo so, Alexander non ci ha parlato di questo caso e forse ci sono delle sottigliezze.

In ogni caso, la funzione può essere migliorata per sapere esattamente quale stato aveva l'ordine.

 
Dmitry Fedoseev:

Non lo so. Se era ORDER_STATE_PLACED, probabilmente è lo stesso bug.

E se fosse ORDER_STATE_PARTIAL, non lo so. Alexander non ci ha parlato di questo caso, forse ci sono delle sottigliezze.

In ogni caso, la funzione può essere migliorata per sapere quale era esattamente lo stato dell'ordine.

Forse si può migliorare, ma (secondo me) è importante quanto segue:

1. Quando l'ordine è in uno stato intermedio, cioè

STATO DELL'ORDINE INIZIATO

ORDINE_STATO_RICHIESTA_AGGIUNTA

RICHIESTA DI MODIFICA DELLO STATO DELL'ORDINE

ORDINE_STATO_RICHIESTA_ANNULLAMENTO

allora non ci si può fare nulla, quindi ORD_BUSY

(Non vedo proprio il senso di questi stati)

2. Se l'ordine non è nella storia, esiste, e può prendere solo

due stati:

ORDER_STATE_PARTIAL = ORD_EXIST_PARTIAL

ORDINE_STATO_POSTO = ORDINE_ESISTENTE

3. Tutte queste conclusioni non sono prese "dal soffitto", ma dalla documentazione di MQL5,

e se gli sviluppatori hanno qualche "particolarità" DEVONO

delinearli nel manuale!

4. Io, per esempio, non sono chiaroveggente e non posso sapere cosa intendevano gli sviluppatori con

quando hanno scritto questa o quella funzione.

Qualsiasi spiegazione ti abbiano dato, questo è il risultato!

P/S Naturalmente, si può fraintendere qualcosa, ma non in questo caso.

 

Perché non c'è un codice di ritorno quando l'ordine viene "cacciato indietro" dal broker (scambio)?

case ORDER_NONE_REJECTED:
              Print( __FUNCTION__, ": Main ордер отклонён брокером(биржей). Билет = ", trans.order, " Причина: ", result.retcode, " ", result.retcode_external );
            break

2016.09.02 16:11:05.687 trader (GAZR-12.16,H1)    OnTradeTransaction: Main ордер отклонён брокером(биржей). Билет = 43595612 Причина: 0 0
2016.09.02 16:11:05.687 Trades  'xxxxx': exchange buy 9.00 GAZR-12.16 at market
2016.09.02 16:11:05.687 Trades  'xxxxx': accepted exchange buy 9.00 GAZR-12.16 at market
2016.09.02 16:11:05.687 Trades  'xxxxx': exchange buy 9.00 GAZR-12.16 at market placed for execution in 11.344 ms
2016.09.02 16:18:45.902 Trades  'xxxxx': buy limit 9.00 GAZR-3.17 at 14165
2016.09.02 16:18:45.908 Trades  'xxxxx': accepted buy limit 9.00 GAZR-3.17 at 14165
2016.09.02 16:18:45.909 Trades  'xxxxx': buy limit 9.00 GAZR-3.17 at 14165 placed for execution
 
prostotrader:

Perché non c'è un codice di ritorno quando l'ordine viene "cacciato indietro" dal broker (scambio)?

Non c'è sempre questo codice quando si dà l'esecuzione a un partito.

Controlleremo i gateway e prenderemo in considerazione l'inserimento di questo codice di ritorno se troviamo le risposte esatte.

 
Renat Fatkhullin:

Questo codice non è sempre presente quando si dà l'esecuzione a un partito.

Controlleremo i gateway e prenderemo in considerazione l'inserimento di questo codice di ritorno.

Grazie.
 

C'è stato una specie di guasto sul server MT5 oggi Gli ordini sono stati ricongiunti e senza motivo (0 0).....

Print( __FUNCTION__, ": Buy ордер отклонён брокером(биржей). Билет = ", trans.order,
                                   " Причина: ", result.retcode, " ", result.retcode_external );

2016.10.20 20:31:08.793 trader (PLT-12.16,H1)     OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614026 Причина: 0 0
2016.10.20 20:31:08.797 trader (TATN-12.16,H1)    StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614027  Ордер отклонён.
2016.10.20 20:31:08.797 trader (TATN-12.16,H1)    OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614027 Причина: 0 0
2016.10.20 20:31:08.801 trader (BR-12.16,M1)      StopTrading: Время сервера = 20:31:08; Статус ордера = SELL_ORDER; Билет = 46614028  Ордер отклонён.
2016.10.20 20:31:08.801 trader (BR-12.16,M1)      OnTradeTransaction: Sell ордер отклонён брокером(биржей). Билет = 46614028 Причина: 0 0
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1)    StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614029  Ордер отклонён.
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1)    OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614029 Причина: 0 0
2016.10.20 20:31:08.806 trader (MXI-12.16,M1)     StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614030  Ордер отклонён.