程序库: OnTickMulti - 页 2 12345 新评论 lynxntech 2025.08.17 12:20 #11 fxsaber #: double OnTester() {return AccountInfoDouble(ACCOUNT_BALANCE); } 这一行是干什么用的? fxsaber 2025.08.17 14:05 #12 lynxntech #:这一行是干什么用的? 是为了返回所需余额的数值。 Rorschach 2025.09.29 16:43 #13 你们有没有检查过,在你们的解决方案中,这些 tick 的时间是否同步? 在常规测试中,如果请求不同字符的时标,它们之间会存在1个时标的延迟。为了验证这一点,我制作了每分钟更新一次时标的自定义代码。 fxsaber 2025.09.29 19:23 #14 Rorschach #:你们有没有检查过,在你们的解决方案中,这些定时器的时间是否同步? 一切运行正常。在标准测试工具中也正常。如果不正常,请展示一下。 Rorschach 2025.09.30 09:13 #15 fxsaber #: 在标准测试器中是正确的。如果不是,请展示一下。 我根据欧元和英镑的分钟K线创建了自定义 tick(为了方便) 欧元那边的显示是正确的,英镑那边则提前了一个点(请查看时间和价格) 附加的文件: 1.mq5 3 kb fxsaber 2025.09.30 09:24 #16 Rorschach #:创建了基于欧元和英镑分钟K线的自定义K线图(以便于查看) 欧元盘的 tick 显示正确,英镑盘的 tick 显示提前了一个(请查看时间和价格) 时间相同的报价并非同时到达,而是依次到达。如果时间较晚的EURUSD报价先到达,那么此时还不知道时间相同的GBPUSD报价(即第二个到达的报价)的具体情况。 因此,在第一个EURUSD报价到达时,第二个GBPUSD报价根本不存在,只有前一个GBPUSD报价的数据。 Rorschach 2025.09.30 09:29 #17 fxsaber #: 时间相同的报价不会同时到达。它们都是依次到达的。如果时间较早的欧元兑美元(EURUSD)报价先到达,那么此时对于时间相同、将随后到达的英镑兑美元(GBPUSD)报价,我们尚无任何信息。 因此,在第一个EURUSD报价到达时,第二个GBPUSD报价根本不存在,只有GBPUSD的上一条报价数据。 在模拟器中,这是个缺陷,因为套利交易需要数据同步。 而且不仅限于套利。如果系统基于交易品种之间的相关性,就会出现“预见未来”的情况 fxsaber 2025.09.30 13:46 #18 Rorschach #:在测试器中,这是个缺点,因为套利交易需要同步进行。 而且不仅限于套利交易。如果系统基于交易工具之间的相关性,就会出现预测未来的情况 针对此类情况,测试器中提供了可配置的执行延迟功能。 Rorschach 2025.09.30 16:04 #19 fxsaber #: 针对此类情况,测试器中提供了可配置的执行延迟。 我的实现比较复杂。我在Inite中使用自定义测试器读取输入并将其写入数组,然后在测试器的OnTick中读取这些输入,并进行同步 Stanislav Korotky 2025.09.30 16:05 #20 Rorschach #:在测试工具中,这算是一个缺点,因为套利交易需要同步进行。 而且不仅限于套利交易。如果系统基于交易工具之间的相关性,就会出现对未来的预测 并不存在“预见未来”的情况,因为如果时间点X存在多个符号的报价更新,那么当其中一个金融工具发生首个事件时,其余符号(其事件仍处于队列中)显示的将是前一个报价更新,而非下一个报价更新 (如示例中所示,00:04发生在00:05之前,而非之后)。 要实现同步,需要在代码中通过算法来保证,例如在 OnTick 处理程序中,在发起交易之前,先查询所有相关符号的 tick 时间。 但原则上,如果套利操作基于 tick(而非 K 线或分钟),那么很难想象能实现可靠的同步,因为某些标的的 tick 数据实际上可能缺失数秒之久。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
fxsaber #:
这一行是干什么用的?
这一行是干什么用的?
是为了返回所需余额的数值。
你们有没有检查过,在你们的解决方案中,这些 tick 的时间是否同步?
在常规测试中,如果请求不同字符的时标,它们之间会存在1个时标的延迟。为了验证这一点,我制作了每分钟更新一次时标的自定义代码。
你们有没有检查过,在你们的解决方案中,这些定时器的时间是否同步?
一切运行正常。在标准测试工具中也正常。如果不正常,请展示一下。
在标准测试器中是正确的。如果不是,请展示一下。
我根据欧元和英镑的分钟K线创建了自定义 tick(为了方便)
欧元那边的显示是正确的,英镑那边则提前了一个点(请查看时间和价格)
创建了基于欧元和英镑分钟K线的自定义K线图(以便于查看)
欧元盘的 tick 显示正确,英镑盘的 tick 显示提前了一个(请查看时间和价格)
时间相同的报价不会同时到达。它们都是依次到达的。如果时间较早的欧元兑美元(EURUSD)报价先到达,那么此时对于时间相同、将随后到达的英镑兑美元(GBPUSD)报价,我们尚无任何信息。 因此,在第一个EURUSD报价到达时,第二个GBPUSD报价根本不存在,只有GBPUSD的上一条报价数据。
在模拟器中,这是个缺陷,因为套利交易需要数据同步。
而且不仅限于套利。如果系统基于交易品种之间的相关性,就会出现“预见未来”的情况
在测试器中,这是个缺点,因为套利交易需要同步进行。
而且不仅限于套利交易。如果系统基于交易工具之间的相关性,就会出现预测未来的情况
针对此类情况,测试器中提供了可配置的执行延迟。
在测试工具中,这算是一个缺点,因为套利交易需要同步进行。
而且不仅限于套利交易。如果系统基于交易工具之间的相关性,就会出现对未来的预测
并不存在“预见未来”的情况,因为如果时间点X存在多个符号的报价更新,那么当其中一个金融工具发生首个事件时,其余符号(其事件仍处于队列中)显示的将是前一个报价更新,而非下一个报价更新 (如示例中所示,00:04发生在00:05之前,而非之后)。
要实现同步,需要在代码中通过算法来保证,例如在 OnTick 处理程序中,在发起交易之前,先查询所有相关符号的 tick 时间。 但原则上,如果套利操作基于 tick(而非 K 线或分钟),那么很难想象能实现可靠的同步,因为某些标的的 tick 数据实际上可能缺失数秒之久。