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

 
Dmitry Fedoseev:
No está claro en qué estado se encontraba la orden.

Para REMOVER una orden, es importante que esta exista y no se encuentre en un estado "intermedio".

Mira con atención (con todas las explicaciones):

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

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

Para REMOVER una orden, es importante que esta exista y no se encuentre en un estado "intermedio".

Mira con atención (con todas las explicaciones):

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

Sigue siendo interesante, y podría ser útil, como argumento claro para servicedesk.
 
Dmitry Fedoseev:
Sigue siendo interesante, y podría ser útil, como un argumento claro para el servicedesk.

¿Cree que la función CheckOrderState() no está escrita correctamente?

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

 
Михаил:

¿Cree que la función CheckOrderState() no está escrita correctamente?

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

No lo sé. Si era ORDER_STATE_PLACED, probablemente sea el mismo error.

Y si era ORDER_STATE_PARTIAL, no lo sé. Alexander no nos habló de este caso y quizás haya algunas sutilezas.

En cualquier caso, la función se puede mejorar para saber exactamente qué estado tenía el pedido.

 
Dmitry Fedoseev:

No lo sé. Si era ORDER_STATE_PLACED, probablemente sea el mismo error.

Y si era ORDER_STATE_PARTIAL, no lo sé. Alexander no nos habló de este caso, quizá haya alguna sutileza.

En cualquier caso, la función se puede mejorar para saber cuál era exactamente el estado del pedido.

Tal vez se pueda mejorar, pero (en mi opinión) lo siguiente es importante:

1. Cuando la orden se encuentra en un estado intermedio, es decir

ESTADO_DE_PEDIDO_INICIADO

ESTADO_DE_PEDIDO_DE_AGREGACIÓN

SOLICITUD_DE_ESTADO_DE_PEDIDO_DE_MODIFICACIÓN

ESTADO_DE_PEDIDO_DE_CANCELACIÓN

entonces no se puede hacer nada con él, así que ORD_BUSY

(No veo el sentido de estos estados en absoluto)

2. Si la orden no está en el historial, SÍ existe, y puede tomar SOLO

dos estados:

ORDER_STATE_PARTIAL = ORD_EXIST_PARTIAL

ESTADO_DE_PEDIDO_COLOCADO = ORD_EXIST

3. Todas estas conclusiones no están sacadas "del techo", sino de la documentación de MQL5,

y si los desarrolladores tienen alguna "peculiaridad" DEBEN

¡resérvalos en el manual!

4. Yo, por ejemplo, no soy clarividente y no puedo saber qué quisieron decir los desarrolladores con

cuando escribieron tal o cual función.

Sea cual sea la explicación, ¡éste es el resultado!

P/S Por supuesto, puede que se malinterprete algo, pero no en este caso.

 

¿Por qué no hay código de devolución cuando la orden es "devuelta" por el corredor (bolsa)?

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 qué no hay código de devolución cuando la orden es "devuelta" por el corredor (bolsa)?

No siempre existe este código cuando se da la ejecución a un partido.

Comprobaremos las pasarelas y consideraremos la posibilidad de rellenar este código de retorno si encontramos las respuestas exactas.

 
Renat Fatkhullin:

Este código no siempre está presente cuando se da la ejecución a un partido.

Comprobaremos las pasarelas y consideraremos la posibilidad de rellenar este código de devolución.

Gracias.
 

Hoy ha habido algún tipo de fallo en el servidor de MT5 Se han vuelto a unir órdenes y no hay razón (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  Ордер отклонён.