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

 

实际上,这是我的问题。我使用MT5已经很长时间了,但由于某些原因我不得不使用MT4。但是mql4没有OnTrade()和OnTradeTransaction(),这是非常可悲的。

因此,我必须以较小的代价(在资源方面)来解决问题。

到目前为止,我想到的最好的办法莫过于翻阅未结的订单,并将当前状态与之前的状态进行比较。

也许有更合理的解决方案。

 
这正是最合理的解决方案。这对MT5来说也是最合理的,因为不能只依赖OnTrade()和OnTradeTransaction()。它们是不被保证的。
 
Aleksandr Volotko:

实际上,这是我的问题。我使用MT5已经很长时间了,但由于某些原因我不得不使用MT4。但是mql4没有OnTrade()和OnTradeTransaction(),这是非常可悲的。

因此,我必须以较小的代价(在资源方面)来解决问题。

到目前为止,我还没有想到比翻阅未结订单并将当前状态与之前的状态进行比较更好的办法。

也许有更合理的解决方案。

不是最简单的变体是阅读阿特姆-特里什金的文章。而且有31个或已经有32个。我检查过,并与他沟通过。所有的事件都是 "轰轰烈烈 "地抓住的。

当然,如果你不试图深入了解其代码内容的本质,应该会更容易。


ps; 哦...刚从这个线程回来,文章第32部分的讨论线程 立即引起了我的注意。文章 本身在这里

Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
  • 2020.01.24
  • www.mql5.com
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка орде...
 

Igor是对的,很难同时想出更聪明和更简单的办法,因为任何其他的解决方案都是基于对OrdersTotal() 的相同调用,根据口味过滤订单并进一步处理日期。

我就先说到这里吧,它可以解决我的问题。

 
Ihor Herasko:
这正是最合理的解决方案。 这对MT5来说也是最合理的,因为不能只依赖OnTrade()和OnTradeTransaction()。它们是不被保证的。

你对它感兴趣一定是很久以前的事了。很久以前,文件中就删除了交易可能丢失的概念。所以,对于mql5来说,没有什么比OnTradeTransaction()更好了。我检查了在OnTradeTransaction()和通过Artem的库获取挂单激活事件的速度。OnTradeTransaction()更快。我没有测量过它。我必须进行更多的测量才能做出公平的估计,但我不想在这上面花费时间。

 
公平地说,我在MT5上的OnTradeTransaction() 从未遇到过任何问题,一切都很顺利。没有损失。
 
Alexey Viktorov:

你可能很久没有研究过这个问题了。他们很久以前就删除了交易可能从文件中丢失的注意事项。所以,对于mql5来说,没有比OnTradeTransaction()更好的了。我检查了在OnTradeTransaction()和通过Artem的库获取挂单激活事件的速度。OnTradeTransaction()更快。我没有测量过它。我必须进行更多的测量才能做出公平的估计,但我不想在这上面花费时间。

这很自然--我有设定的环境扫描频率。因此,事件 本身在终端 的事实和环境变化的事实是相互跟随的。但抓住的是环境变化的事实,而不是事件的到来。这有它的优点。但你还是否认了他们;)因此,辩论是没有意义的。
 
Artyom Trishkin:
这很自然--我有一个固定的频率来扫描环境。因此,事件 本身在终端 的事实和环境变化的事实是相随的。但在我看来,被抓住的是环境变化的事实,而不是事件的到来。这有它的优点。但你还是否认了他们;)因此,辩论是没有意义的。

我在否认什么优点呢?我只有一个否认。我想了解事物的运作方式,如果只有用我自己以外的思想才能了解事物,那么我就不放心使用它们,任何我不放心的东西我都否认。我已经告诉过你,你写的信比我下半辈子都能读到的还要多。你不要把气撒在我身上...

 
Ihor Herasko:
这正是最合理的解决方案。对于MT5来说,这也是最聪明的做法,因为不能只依靠OnTrade()和OnTradeTransaction()它们是不被保证的

你已经无可救药地落后于时代了!

长久以来,这些活动一直得到保证!

 
在执行OrderSend(-Async)期间(之后)通信失败--失去OnTrade*。
 
prostotrader:

你已经无可救药地落后于时代了!

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

还有灯光和网络的供应?更不用说通常的网络数据包丢失。MetaQuotes已经变得多么酷了--他们保证了所有的事情!))