在mql4中用什么来代替OnTradeTransaction()? - 页 2

 
Ihor Herasko:

还有灯光和网络的可用性?更不用说通常的网络数据包丢失。凉爽的MetaQuotes已经成为--他们都保证了一切!))

伊戈尔,这一切的解决方案很简单,或者说非常简单。如果经常停电,就租一个VPS。如果在VPS上也出现这种问题,请更换服务提供商。这同样适用于用户的互联网损失。只可能增加一个切换互联网供应商的选项。如果问题发生在直流电的一侧...你知道如何和在哪里发送他们...
 
Ihor Herasko:

还有灯光和网络的可用性?更不用说通常的网络数据包丢失。凉爽的MetaQuotes已经成为--他们都保证了一切!))

也许你也没有电脑?

 
Alexey Viktorov:
伊戈尔,这一切的解决方案很简单,或者说非常简单。如果经常停电,就租一个VPS。如果这种问题也发生在VPS上,请更换服务提供商。这同样适用于用户的互联网损失。只可能增加一个切换互联网供应商的选项。如果问题发生在直流电的一侧...你知道如何和在哪里发送他们...

并把这一切告诉与专家合作的普通用户?用户不应该关心这样的事情,否则这样的软件就毫无价值。

 
prostotrader:

也许你也没有电脑?

是的,在互联网上我有心灵感应 ))

 
Ihor Herasko:

是的,在互联网上我有心灵感应 ))

我明白了,但随后不要做可能误导的模糊陈述。

本论坛的成员感到困惑。

 
prostotrader:

我明白了,但随后不要做可能误导的模糊陈述。

论坛参与者陷入混乱。

这种说法是错误的

关于交易、自动交易系统和策略测试的论坛

如何在mql4中替换OnTradeTransaction()?

prostotrader, 2020.01.26 14:59

你是无可救药地与世隔绝了!

这些活动已经保证了 很长时间了!


在交易时,如果在VPS上没有悬念,就是一种额外的金融风险。

 
prostotrader:

我明白了,但随后不要做可能误导的模糊陈述。

本论坛的成员感到困惑。

没有任何误解。如果你正在开发软件,对它的第一要求是正确和可靠的操作。如果你的专家顾问只使用OnTrade和OnTradeTransaction 来支持它的头寸和订单,从它们那里接收信息的最轻微的故障将扭曲整个画面(我们不确定是否从服务器丢失了一个数据包)。收集这些信息的唯一或多或少的可靠方法是循环浏览职位/订单的列表。即使如此,如果真的发生丢包,也不可能是永久性的。最终(经过两次或三次查询),数据将被检索出来,整体情况将与现实完全一致。

说到这里,我并不是说使用OnTrade()和OnTradeTransaction()是毫无意义的。它们可以被用作获取数据的替代渠道。如果信息是通过这个渠道来的,我们就不需要过多地检查名单。

 

我正在编写可移植的代码。MT4/MT5 - 感谢fxsaber先生的MT4Orders.mqh。还有测试员/战斗员--感谢有条件的编译。

对于策略测试器,我使用OnTradeTransaction 和环境状态存储在变量中,这大大加快了优化速度。对于真正的--服务器轮询,速度在这里并不重要。

 
Edgar Akhmadeev:

我使用OnTradeTransaction 和环境状态存储在测试器的变量中,这加快了优化速度

如果你能提供一些可重复的例子(不询问交易历史),我将非常感激。

 

如果我们需要一个快速的解决方案,那么我会把所有的票据放到CArrayInt 中,然后用CArrayInt比较未结订单的票据;Search()方法就在那里;如果没有票据,我们就停止比较CArrayInt。用未结订单的计数器,重置CArrayInt,并将所有的票据再次写入CArrayInt,并设置全局描述的标志MyOnTradeTransaction--订单列表已经改变的标志--代码将相当紧凑。