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

 
Vitaly Muzichenko:

没有,但也许我们在谈论不同的事情。

这将永远有效。

还是让我打开终端,检查...下面是同一脚本的三次运行和三个结果。

剧本中只有一句话。

  Print("OrdersHistoryTotal ", OrdersHistoryTotal());
2020.01.27 18:28:51.063 Script 00 EURGBP,H4: removed
2020.01.27 18:28:51.063 00 EURGBP,H4: uninit reason 0
2020.01.27 18:28:51.063 00 EURGBP,H4: OrdersHistoryTotal 48
2020.01.27 18:28:51.063 00 EURGBP,H4: initialized
2020.01.27 18:28:51.043 Script Test\00 EURGBP,H4: loaded successfully
2020.01.27 18:28:38.203 Script 00 EURGBP,H4: removed
2020.01.27 18:28:38.193 00 EURGBP,H4: uninit reason 0
2020.01.27 18:28:38.193 00 EURGBP,H4: OrdersHistoryTotal 47
2020.01.27 18:28:38.193 00 EURGBP,H4: initialized
2020.01.27 18:28:38.183 Script Test\00 EURGBP,H4: loaded successfully
2020.01.27 18:28:16.443 Script 00 EURGBP,H4: removed
2020.01.27 18:28:16.443 00 EURGBP,H4: uninit reason 0
2020.01.27 18:28:16.443 00 EURGBP,H4: OrdersHistoryTotal 4
2020.01.27 18:28:16.443 00 EURGBP,H4: initialized
2020.01.27 18:28:16.423 Script Test\00 EURGBP,H4: loaded successfully

我的意思是,如果一个EA正在工作,而一个用户决定用他顽皮的手改变历史显示的范围,那么EA将在第二次切换时发疯。现在它将变得更小,现在它将变得更大,现在它将与记忆中的那个不同。而且,即使该行

  if(HT!=__TotalHist)

把">"代替"!=",情况不会改变。如果在设置为 "今天 "时,EA正在运行,并切换到 "所有历史"...会发生什么?

 
Aleksandr Volotko:

我做梦也不会去碰OrderHistoryTotal(),我为什么要碰呢?

以防万一:))))

[删除]  
Alexey Viktorov:

以防万一:))))

:))OrdersTotal() 对我来说足够好了。

一个是100毫秒内比较一次OrdersTotal()的值,另一个是一分钟内(或更少)循环一次的安全值--没有鼠标可以错过,如果20多个交易中的一个在一分钟后关闭/打开100500次--我当然不会死,我想存款也是。

 
Aleksandr Volotko:

:)) OrdersTotal()对我来说已经足够了。

也许我应该做两个计时器,其中一个在100毫秒内比较OrdersTotal()的值,第二个--每分钟一次(或更少的频率)通过循环--没有一个鼠标可以通过那里,如果20多个订单中的一个在一分钟后关闭/打开,超过100500次--我肯定不会死,我想我的存款也会。

那么算法提供的是多少个同时开仓的订单呢?

 
Alexey Viktorov:

还是让我打开终端,检查...下面是同一脚本的三次运行和三个结果。

脚本中只有一句话

我的意思是,如果EA工作,而一个用户决定用他的淘气的手改变历史显示的范围,EA将在第二次切换时变得疯狂。现在它将变得更小,现在它将变得更大,现在它将与记忆中的那个不同。而且,即使该行

如果我们用">"代替"!=",情况不会改变。如果在设置为 "今天 "的时刻运行专家顾问,并切换到 "所有历史"...会发生什么?

在任何情况下,它都不会是平等的,而代码将进一步发展。但如果我们设置如果(HT>__TotalHist),那么我们将面临问题。

[删除]  
Alexey Viktorov:

那么该算法总共规定了多少个未结订单?

最多两三打。

 
Vitaly Muzichenko:

在任何情况下,它都不会是平等的,代码将继续前进。但如果 (HT>__TotalHist),就 有问题了

维塔利,在任何情况下都会有问题。无论你怎么看,如果EA要对历史上订单量 的变化做出反应,那么无论订单量如何变化,它都会做出反应。事实上,历史上的订单量只能增加,这就是为什么我建议减少危险,但这并不能解决问题。即使你只为自己写,也不能排除手动切换的可能性。你永远不知道会有什么样的短信出现在你的脑海中))))。

 
Aleksandr Volotko:

最多2-3打

对于这样一个数字,创建一个票据数组,甚至是一个具有订单属性的结构数组,并在每个tick上检查类型和收盘时间的变化会更容易。这将使我们能够追踪挂单 的激活或头寸的关闭。并在发送OrderSend()后立即打开,增加数组的大小,把你需要的东西都放进去。

[删除]  
这就是问题所在,你可以每天摇动订单86400次,但你并不想这样。
 
Aleksandr Volotko:
这就是问题所在,你可以每天摇动订单86400次,但你并不想这样。

在这种情况下,没有阿特姆的图书馆就很难生活。