Многие трейдеры зачастую не задумываются над тем, как быстро доходит их заявка до биржи, как долго она там исполняется и когда торговый терминал трейдера узнает о результате. В результате они не знают, что легко могут улучшить качество исполнения своих сделок за счет более быстрой реакции и скорости проведения транзакций. 12 сентября 2016 года...
2018.06.2214:05:24.901 SVA_03 pass 19 tested with error "task rejected by tester agent" in 0:00:00.0002018.06.2214:05:27.387 SVA_03 pass 19 tested with error "task rejected by tester agent" in 0:00:00.000
在我看来,当一个订单在交易服务器上,但在终端上的同步OrderSend之后,就没有任何迹象了,这是一个错误。
我决定检查一下,当订单出现在系统中,但不在终端中时,这种幻象订单会持续多久。
其结果是
一个订单出现在系统中,但在终端中却没有32毫秒的时间!试想一下,如果交易逻辑在这个区间内执行,后果会怎样......。
有趣的是,幽灵订单最常出现在TRADE_TRANSACTION_ORDER_DELETE 和TRADE_TRANSACTION_DEAL_ADD(更罕见)交易类型。
非常糟糕的平台细微差别。
ZZY 遗憾的是,5号的贸易交易速度值得怀疑。
我决定检查一下,当一个订单在系统中但不在终端中时,这种幻象订单的情况会持续多久。
其结果是
在32毫秒内,有一个订单,但它不在终端中!试想一下,如果交易逻辑在这个区间内执行,后果将不堪设想。
是的,这不好。 正如你所看到的,这些交易结果是在不同的数据包中发送的。 它们应该在一起。
正如你所看到的,这些交易结果是在不同的包中发送的,而它们应该是在一个包中。
事实证明,在OrderSend之后,订单可能会出现幻影,带有OnTradeTransaction 的并行专家顾问不能总是捕捉到这种状态。也就是说,OnTradeTransaction本身有时会变慢。
一般来说,MT5的架构在不同的地方有滞后性,很难消除。这些是蜱虫到达的滞后,现在是贸易交易的滞后。如果你寄希望于执行速度,你需要清楚地了解平台的能力。例如,刻度线进来时有适当的延迟,然后是交易......最终MT5或其他平台上的其他人可以超越,即使你自己就坐在交易所旁边。
贸易交易以优先包的形式进行,超过了其他交易。这严重降低了延迟。
脚本在OrderSend之后检测到了幻影订单的情况,但平行EA上的OnTradeTransaction 却没有检测到,这怎么可能呢(不一定,但会发生)?
贸易交易以优先包的形式出现,超过了其他交易。这严重降低了延迟。
问题是TRADE_TRANSACTION_ORDER_DELETE 和TRADE_TRANSACTION_HISTORY_ADD 交易是在不同的数据包中进行的,这就是为什么它们的优先级并不重要,反正网络延迟 也是如此。而这些交易必须同步执行,一个接一个,没有任何中间状态。 也就是说,这本质上是一个原子操作,因为把一个被删除的订单放入历史列表与交易所无关。
也就是说,这里有两个选择:要么这两个交易一起出现在一个包里,要么第一个交易在第二个交易到来之前不在终端执行。
也就是说,有两种选择:要么这两笔交易一起出现在一个包里,要么第一笔交易在第二笔交易到来之前不会在终端执行。
有些情况下,TRADE_TRANSACTION_DEAL_ADD在TRADE_TRANSACTION_ORDER_DELETE交易之前出现。在这种情况下,即使在TRADE_TRANSACTION_ORDER_DELETE之前,订单仍然是幻影。
远程代理已停止优化
我想这是因为新的编译器的缘故,如何更新它们才能使其发挥作用?
另外,由于这个错误,28个优化器中只有部分通过了13个。翻看Alglib包的代码。它充满了这些结构,使代码 更加难以阅读。
这样不是更简单吗?
在我看来,执行速度会更快。
他们为什么要把代码弄得这么复杂?或者只是从另一种语言移植过来,没有任何调整?但我还是想知道为什么在原作中会有这样的复杂情况?