// Возвращает время Обзора рынка в миллисекундах.long TimeCurrentMsc()
{
long Res = 0;
MqlTick Tick;
for (int i = SymbolsTotal(true); i >= 0; i--)
{
conststring Symb = SymbolName(i, true);
if (SymbolInfoTick(Symb, Tick) && (Tick.time_msc > Res))
Res = Tick.time_msc;
}
return(Res);
}
关于交易、自动交易系统和交易策略测试的论坛
新版本的MetaTrader 5 build 2650:图表的背景加载和MQL5代码分析器的改进
fxsaber, 2020.11.04 16:50
不幸的是,他们并没有增加最小化图表、终端、市场观察等窗口的功能。早前有证据表明,最小化这些窗口可以减少CPU的负荷。当终端窗口不可见时,停止在市场观察窗口和其他窗口显示数据。例如,当当前的应用程序(如浏览器)处于活动状态并被最大化时。
胡子的需求是确定当前选择的是哪个图表。人们被迫使用硬壳的WinAPI解决方案。
是的,MetaTrader VPS与主机供应商 的普通VPS相比,具有数量级更低的延迟(延迟的排放)和多倍的所有资源。
这已经解释过很多次了,为什么。
保证执行线程的零延迟不可能存在于当前(所有)的处理器架构中。关于" 实时系统操作系统"的传说仍然是神话,你不需要提到它们。
我明白单次弹射是怎么回事了,谢谢你的详细解释。不过,在这一点上,我们讨论的不是SymbolInfoTick,而是不同性质的滞后,它几乎在每一个tick 上都很急。
只有在一条评论中清楚、全面地描述了情景,没有 "实际上是指其他评论",没有滚动到单指令计量的 情况下,才能考虑其他问题。
只有在单一评论中明确和充分地描述了情景,没有 "实际上是指其他评论",并且没有滚动到单一指令计量的 情况下,才能考虑其他问题。
这里的链接是细节,包括源代码中的评论。
关于交易、自动交易系统和交易策略测试的论坛
MT5和速度在行动
fxsaber, 2020.11.05 07:42
谁在使用MQ的VPS,请在那里分享以下程序的结果。
有一个叫deltix的平台(不是在做广告)。当我与开发人员交谈时(我想在一段时间前连接它进行套利),他们对单次延迟的解释是一样的,这是正常的,你需要看一下平均数。
顺便说一下,这是在没有任何石头的情况下,对任何人的破坏。
由于单一的异常值不可避免地会出现,因此,有规律的函数返回整个市场观察的数组和所有当前头寸/订单 的数组是合乎逻辑的。与MarketBookGet相似。
现在必须要运行周期。这是很昂贵的。
关于交易、自动交易系统和交易策略测试的论坛
MT5和速度在行动
fxsaber, 2020.10.07 12:41
实际的需要使你这样写。
我从来没有尝试把EA放到MQL5中,也没有尝试把它添加到MQL5中。
将不会有加速。提出你的计算结果,至少要有粗略的数字,证明多个加速器。
争夺资源?不受控制地创造新的流?无所事事的冲突?
你想要不明原因的减速吗?
在基于事件的模型中,所有的事件总是以编队的方式进行,一次一个。嚼碎了 - 嚼碎了。
加 速处理用户程序,特别是其处理程序。这就是我所说的。
我理解你正试图尽量减少螺纹的使用。但其中一个选择是在一个单独的线程中运行每个处理程序。
没有不受控制地创建线程。在一个用户程序中,只有几个处理程序,每个处理程序都应该在程序开始时在自己的线程中启动。
你用互斥或其他方式在处理程序之间同步事件。
但是,如果线程对你来说是一种痛苦,正如你所提到的,有一个事件模型可以让你在一个单线程中工作。事件处理,在一个有任务运行的事件循环中。
该事件循环虽然是按顺序运行的,但该循环中的任务是平行处理的!
这就是我的意思,程序中的所有处理程序都在这个事件循环中运行,那么所有的事件都将是异步的,同时实时到达。
也就是说,OnTrade和OnBook中的相同事件将被匹配。
,请问事件循环在其他语言中如何运作。
如果事件循环 在终端已经存在,只需将其应用于程序中的处理程序。这就是全部。
每个处理程序应该在一个单独的线程中运行。
这个问题没有得到任何解决。如果不同的线程对内部变量进行读写,例如,MQL程序将变得更加复杂。
这个问题没有得到任何解决。如果从不同的线程对内部变量进行读/写访问,例如,MQL-程序将变得更加复杂,是一个数量级。
MQL-程序不会变得更复杂,这只是一个让开发者头痛的同步问题。当然,他们并不愿意解决这个问题。
或者是项目的初始架构陷入僵局,没有为这种模式设计。
当然,也没有人会为了一个新的模型而重写项目。
事件循环模型 更适合于处理程序。这就是我想说的。
而这种模式很可能已经 在终端中存在了一段时间,只是没有被应用到处理程序中。
MQL程序将不会变得更复杂...
我建议这就是理论研究的结束,它永远不会与这里的实践相交。