FORTS: Códigos de retorno OnTradeTransaction() - página 11

 
Dmitry Fedoseev:
Não está claro exatamente em que estado a ordem estava.

Para RETIRAR uma ordem, é importante que ela exista e não esteja em um estado "intermediário".

Olhe com atenção (com todas as explicações):

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

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

Para RETIRAR uma ordem, é importante que ela exista e não esteja em um estado "intermediário".

Olhe com atenção (com todas as explicações):

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

Ainda interessante, e pode ser útil, como um argumento claro para servir.
 
Dmitry Fedoseev:
Ainda interessante, e pode ser útil, como um argumento claro para o servicedesk.

Então você acha que a função CheckOrderState() não está escrita corretamente?

P/S SD, silencioso como sempre....

 
Михаил:

Então você acha que a função CheckOrderState() não está escrita corretamente?

P/S SD, silencioso como sempre....

Eu não sei. Se foi ORDER_STATE_PLACED, provavelmente é o mesmo bug.

E se foi ORDER_STATE_PARTIAL, não sei. Alexander não nos falou sobre este caso e talvez haja algumas sutilezas.

Em qualquer caso, a função pode ser melhorada para saber exatamente qual era o estado do pedido.

 
Dmitry Fedoseev:

Eu não sei. Se foi ORDER_STATE_PLACED, provavelmente é o mesmo bug.

E se foi ORDER_STATE_PARTIAL, não sei. Alexander não nos falou sobre este caso, talvez haja algumas sutilezas.

Em qualquer caso, a função pode ser melhorada para saber exatamente qual era o estado do pedido.

Talvez possa ser melhorado, mas (na minha opinião) o seguinte é importante:

1. Quando a ordem está em um estado intermediário, a saber

ORDEM_ESTADUAL_INICIADA

PEDIDO_DE_ORDEM_ESTADO_ADD

ORDER_STATE_REQUEST_MODIFY

PEDIDO_ESTADO_DE_PEDIDO_CÉLULA

então nada pode ser feito com ele, então ORD_BUSY

(não vejo o objetivo destes estados de modo algum)

2. Se a ordem não está na história, ela existe, e pode levar APENAS

dois estados:

ORDER_STATE_PARTIAL = ORD_EXIST_PARTIAL

ORDER_STATE_PLACED = ORD_EXIST

3. Todas estas conclusões não são tiradas "do teto", mas da documentação da MQL5,

e se os desenvolvedores têm alguma "peculiaridade", eles DEVEM

descreva-os no manual!

4. Eu, por exemplo, não sou clarividente e não posso saber o que os desenvolvedores queriam dizer com

quando eles escreveram esta ou aquela função.

Qualquer que seja a explicação que eles lhe deram, esse é o resultado!

P/S É claro, você pode entender mal alguma coisa, mas não neste caso.

 

Por que não há código de retorno quando a ordem é "chutada de volta" pelo corretor (troca)?

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:

Por que não há código de retorno quando a ordem é "chutada de volta" pelo corretor (troca)?

Nem sempre há este código quando se dá a execução a uma parte.

Verificaremos os portões e consideraremos o preenchimento deste código de retorno se encontrarmos as respostas exatas.

 
Renat Fatkhullin:

Este código nem sempre está presente quando se dá a execução a uma parte.

Vamos verificar os portões e considerar o preenchimento deste código de retorno.

Obrigado.
 

Houve algum tipo de falha no servidor MT5 hoje Os pedidos foram reinseridos e nenhuma razão (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  Ордер отклонён.