支持MG4脚本和顾问的测试人员 - 页 11 1...4567891011 新评论 Vasiliy Sokolov 2014.11.18 14:19 #101 Renat:CopyXXX的速度 与iClose/iOpen/iXXXX功能相同。只有iXXX一次返回一个元素,而CopyXXX返回许多元素,因此效率更高,速度更快。也许,您没有考虑到,在每个tick处理程序启动之前, MT4会将 本地图表的所有历史记录强行复制到 本地(缓存)EA的市场环境中。而这是非常昂贵的,尽管我们有一种方法可以经济地更新这些信息。MQL4中的特殊函数RefreshRates 会导致强制刷新本地图表的缓存和历史。调用CopyXXX的效率要高得多,它有一个非常精确和准确的机制来缓存以前请求的数据。例如,你不需要在每次勾选时重新请求深层历史,而是将其存储/写入本地,并尽可能快地访问它。如果我们比较一下 "直接"(实际上不是直接访问)访问Open/High/Low/Close的老方法和使用本地数组double local[xxxx]的工作,后者要快很多倍。因此,最好是复制到自己本地,然后在本地快速访问重复查询的数据。 什么是 "勾选程序"--像OnTick这样的自定义函数?为什么要复制整个历史,而不是只复制出现的数据? [删除] 2014.11.18 14:41 #102 Vinin: 这不是一个指标。 我在这里 给了一个OOP指标的链接。 Renat Fatkhullin 2014.11.18 15:52 #103 C-4: 什么是 "勾选程序"--像OnTick这样的自定义函数?为什么要复制整个历史,而不是只复制出现的数据?是的,OnTick/OnStart。我认为这对很多人来说是一个启示,在MT4中直接访问本地图表并不是真正的直接。有双倍的内存消耗和同步损失。幸运的是,高速缓存的刷新是经济的,但它仍然会造成系统成本。在MT5中,我们完全摆脱了本地缓存,在调用OnTick/OnStart前的系统开销较少。 Vasiliy Sokolov 2014.11.18 16:28 #104 Renat:是的,OnTick/OnStart。我认为这对很多人来说是一个启示,在MT4中直接访问本地图表并不是真正的直接。有双倍的内存消耗和同步损失。幸运的是,我们有一个稀缺的缓存更新,但它仍然给出了系统成本。在MT5中,我们完全摆脱了本地缓存,OnTick/OnStart调用前的系统开销较少。一年前,我们正在讨论MT4/MT5测试器的性能 问题。在类似的测试条件下,MT4的标准EA "MovingAverage "在1分钟内完成了一次运行,而在MT5中,它在2:34就完成了。为什么在时间尺度上有差异?首先想到的是MT5的 "模块化 "和MT5在运行过程中要拉动的大量交易环境。 Renat Fatkhullin 2014.11.18 16:36 #105 C-4:一年前,我们讨论了MT4/MT5测试器的性能。在类似的测试条件下,MT4的标准EA "MovingAverage "在1分钟内完成了一次运行,而在MT5中则需要2:34。为什么在时间尺度上有差异?首先想到的是MT5的 "模块化 "和MT5在运行过程中要拉动的大量交易环境。模块化、外部流程和更好的环境建模,为多货币执行量身定做。 1...4567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
CopyXXX的速度 与iClose/iOpen/iXXXX功能相同。只有iXXX一次返回一个元素,而CopyXXX返回许多元素,因此效率更高,速度更快。
也许,您没有考虑到,在每个tick处理程序启动之前, MT4会将 本地图表的所有历史记录强行复制到 本地(缓存)EA的市场环境中。而这是非常昂贵的,尽管我们有一种方法可以经济地更新这些信息。MQL4中的特殊函数RefreshRates 会导致强制刷新本地图表的缓存和历史。
调用CopyXXX的效率要高得多,它有一个非常精确和准确的机制来缓存以前请求的数据。例如,你不需要在每次勾选时重新请求深层历史,而是将其存储/写入本地,并尽可能快地访问它。
如果我们比较一下 "直接"(实际上不是直接访问)访问Open/High/Low/Close的老方法和使用本地数组double local[xxxx]的工作,后者要快很多倍。因此,最好是复制到自己本地,然后在本地快速访问重复查询的数据。
这不是一个指标。
什么是 "勾选程序"--像OnTick这样的自定义函数?为什么要复制整个历史,而不是只复制出现的数据?
是的,OnTick/OnStart。
我认为这对很多人来说是一个启示,在MT4中直接访问本地图表并不是真正的直接。有双倍的内存消耗和同步损失。
幸运的是,高速缓存的刷新是经济的,但它仍然会造成系统成本。在MT5中,我们完全摆脱了本地缓存,在调用OnTick/OnStart前的系统开销较少。
是的,OnTick/OnStart。
我认为这对很多人来说是一个启示,在MT4中直接访问本地图表并不是真正的直接。有双倍的内存消耗和同步损失。
幸运的是,我们有一个稀缺的缓存更新,但它仍然给出了系统成本。在MT5中,我们完全摆脱了本地缓存,OnTick/OnStart调用前的系统开销较少。
一年前,我们讨论了MT4/MT5测试器的性能。在类似的测试条件下,MT4的标准EA "MovingAverage "在1分钟内完成了一次运行,而在MT5中则需要2:34。为什么在时间尺度上有差异?首先想到的是MT5的 "模块化 "和MT5在运行过程中要拉动的大量交易环境。
模块化、外部流程和更好的环境建模,为多货币执行量身定做。