FORTS: OnTradeTransaction() 返回代码 - 页 11

 
Dmitry Fedoseev:
目前还不清楚该命令的具体状态。

要删除一个订单,重要的是它确实存在,而不是处于 "中间 "状态。

仔细看(有所有解释)。

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

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

要删除一个订单,重要的是它确实存在,而不是处于 "中间 "状态。

仔细看(有所有解释)。

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

仍然很有趣,而且可能是有用的,作为对服务化的明确论证。
 
Dmitry Fedoseev:
仍然很有趣,而且可能是有用的,是对仆人式的明确论证。

所以你认为CheckOrderState()函数写得不对?

P/S SD,一如既往地沉默不语....

 
Михаил:

所以你认为CheckOrderState()函数写得不对?

P/S SD,一如既往地沉默不语....

我不知道。如果是ORDER_STATE_PLACED,可能是同一个错误。

而如果是ORDER_STATE_PARTIAL,我不知道。 Alexander没有告诉我们这个案例,也许有一些微妙的地方。

在任何情况下,该功能都可以被改进,以准确知道订单的状态。

 
Dmitry Fedoseev:

我不知道。如果是ORDER_STATE_PLACED,可能是同一个错误。

而如果是ORDER_STATE_PARTIAL,我不知道。 Alexander没有告诉我们这个案例,也许有一些微妙的地方。

在任何情况下,该功能都可以被改进,以了解订单的具体状态。

也许可以改进,但(在我看来)以下内容很重要。

1.当订单处于中间状态时,即。

订单_状态_开始

订单_状态_请求_添加

订单_状态_请求_修改

订单_状态_请求_取消

那么就不能用它来做什么,所以ORD_BUSY

(我完全不明白这些州的意义)

2.如果该命令不在历史中,它确实存在,并且可以只采取

两个州。

Order_state_partial = ord_exist_partial

订单_状态_放置 = ord_exist

3.所有这些结论都不是 "从天花板上 "得来的,而是从MQL5的文档中得到的。

如果开发商有任何 "特殊性",他们必须

在手册中列出它们的轮廓!

4.例如,我不是千里眼,不可能知道开发者的意思是什么

当他们写这个或那个函数时。

不管他们给你的解释是什么,这就是结果!

P/S 当然,你可能会误解一些东西,但在这种情况下不会。

 

当订单被经纪人(交易所)"踢回 "时,为什么没有返回代码?

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:

当订单被经纪人(交易所)"踢回 "时,为什么没有返回代码?

当你把执行权交给一方的时候,不一定有这个代码。

我们将检查网关,如果找到确切的答案,将考虑填入这个返回代码。

 
Renat Fatkhullin:

当你把执行力交给一方时,这个代码并不总是存在。

我们将检查网关并考虑填入这个返回代码。

谢谢你。
 

今天MT5服务器上出现了某种故障 订单被重新加入,没有任何理由(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  Ордер отклонён.