文章 "如何将MetaTrader 5中的交易复制到MetaTrader 4" - 页 2 123456789...17 新评论 [删除] 2010.10.30 19:34 #11 Urain:在反转或切入时都不会出现差异,差异仅出现在当前时刻的报价水平差异和执行滞后上。理想情况下,如果 MT 之间的报价相等,滞后期为 0,那么交易将带来相同的利润。并不适合所有交易策略(如上所述,我指的是如果您不将 MT4 交易方法调整到 MT5)。我说的不是 R2 和 MT5 的结果差异(但 Rumus 实在是没办法,我们就不考虑它了)。真正想用 MT5 管理 MT4 交易的人应该考虑反向过程。同时,在策略中更多地使用精确翻转和切割(在多货币条件下)。如果能按照 GMT 或终端的当地时间(如果它们位于同一时区)同步所有交易过程和余额信息,那就更好了。PS这与 "汇率 "无关,甚至与存款的负载也无关。这与您需要放弃什么以及如何改变策略有关。从这个意义上讲,唯一的方便之处在于所有 MT4 交易过程都可以调整为 netteng,并获得 100% 的结果。当然,重要的一点是,在大多数交易策略中,翻转和割肉等现象非常罕见。Urain:关于 dll,MQ 不可能挖掘每一个第三方代码检查其安全性,而且不是每个人都有 delphi 或 srp 编译器。您可以发布一个 "圣经 "的代码,然后用另一个编译文件代替。因此目前只能使用 ex5。不幸的是,MQL5 将不会很快提供至少一半的可能性,而这些可能性可以在 DLL 的帮助下获得。许多开发工具都可以使用 DLL,它可以让您跳出 "沙盒",而且体积不大。作为一种选择,您可以应用与 WinAPI 绑定的 MQL 库。 Andrey Khatimlianskii 2010.10.30 19:59 #12 Interesting:并非适用于所有交易策略(如上所述,我指的是如果您不将 MT4 交易方法调整到 MT5)。我说的不是 R2 和 MT5 的结果差异(但 Rumus 实在不在人世,我们就不考虑它了)。我已经是第 n 次读到这句话了,我想第 n 次请您举出至少一个订单/交易序列,当它从 MT5 转到 MT4(或相反)时,其财务结果会发生变化。历史订单/交易列表不会改变,当前未结头寸的显示也不会不同,但财务结果会改变。我认为,如果交易条件相同(报价/价差/隔夜利息/止损杠杆等),MT5 的结果将与 MT4相同或更好(由于隔夜利息,如果 MT4 上有 2 个反向头寸,结果会更好)。是的,在复制交易 时组织所有细微差别的核算是一项艰巨的任务。但这是另一项任务,与净额结算问题的理论部分无关。 Mykola Demko 2010.10.30 20:14 #13 komposter:事实上,OnTrade 是处理头寸列表变化的理想场所。您只需确保在启动时立即复制现有交易(而不是在下一个交易事件时)。过滤事件非常简单--检查头寸列表,只有当列表中发生变化时才继续处理。 我说的不是这种过滤,在 OnTrade 事件中,不仅会出现已执行的交易,还会出现已下单的交易,而这反过来不一定会被执行。 Andrey Khatimlianskii 2010.10.30 22:48 #14 Urain: 我说的不是这种过滤,在 OnTrade 中,事件不仅会出现在已执行的交易中,还会出现在已下单的交易中,反过来,它也不一定会被执行。 这就是我们所说的--您不需要对下单/取消/执行订单做出反应。为此,您需要检查仓位 是否发生了变化。 Vladislav Andruschenko 2010.10.30 23:48 #15 好主意。很久以前我就想这么做,但没有成功,在这里我看到了我的错误。向作者致敬。!!! Mykola Demko 2010.10.30 23:49 #16 komposter: 这就是我们所说的--您不必对下单/取消/执行订单做出反应。为此,您需要检查仓位 是否发生了变化。那么,复制 OnTimer 并将其重命名如下:void OnTimers() { //--- 获取位置 get_positions(); //--- 如果位置不相等,则保存新数据 if(compare_positions())saves_positions(); } //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void OnTrade() { //--- 获取位置 get_positions(); //--- 如果位置不相等,则保存新数据 if(compare_positions())saves_positions(); }//EventKillTimer(),然后在 OnDeinit 中注释掉定时器的销毁;和 OnInit 中的EventSetTimer(1); 删除。OnTimers();实际上,ZY 已经完成了整个修改工作,但我只能在周一进行检查。 Andrey Khatimlianskii 2010.10.31 01:20 #17 Urain:好吧,那就复制一个 OnTimer,然后像这样重命名:这就是我的意思,很简单;)Urain:并在 OnInit 中代替 EventSetTimer(1);; put这就是我想提醒你的--如果初始化 "失败"(例如,启动终端 时,数据无法及时加载),复制器将 "休眠",直到下一个交易事件发生。在这种情况下,我们应该提供一个无限循环或相同的定时器,它将一直工作到初始化成功为止。 Stanislav Korotky 2010.11.01 12:18 #18 Urain: 至于库,我并不反对使用 ex5 库,但我不想使用 dll,因为这会打击最终用户的积极性。 另外,额外安装 MT4 对最终用户来说也不太方便;-)。用户很可能已经安装 MT4 很长时间了,根本不需要 MT5 文件。也许我们应该推荐使用 subst 作为一种技巧? Andrey Sharov 2010.11.01 13:30 #19 marketeer: 对于最终用户来说,安装 MT4 的额外副本也不是很方便。)用户很可能已经安装 MT4 很长时间了,根本不需要 MT5 文件。也许您应该推荐使用 subst 作为一种技巧? 我也有过类似的想法。但 subst 有一些缺陷(至少在 XP 中是这样):访问物理磁盘(\\.PHYSICALDRIVEx)会停止工作。 Mykola Demko 2010.11.01 14:34 #20 marketeer: 对于最终用户来说,安装 MT4 的额外副本也不太方便。)用户很可能已经安装 MT4 很长时间了,根本不需要 MT5 文件。也许您应该推荐使用 subst 作为一种技巧?我并不想写一篇 关于信号传输通道的文章,我只是找到了最简单易懂的解决方案。我认为信号传输是另一篇文章的主题。关于在这里放置第二台 MT 不太方便的问题,我认为你错了,据我所知,许多用户都在机器上安装了多达十几台 MT,而且没有任何问题。此外,MT4 可以通过简单复制轻松转移。此外,我的代码没有魔力保护,因此不可能通过复制和手动同时使用账户。 123456789...17 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在反转或切入时都不会出现差异,差异仅出现在当前时刻的报价水平差异和执行滞后上。
理想情况下,如果 MT 之间的报价相等,滞后期为 0,那么交易将带来相同的利润。
并不适合所有交易策略(如上所述,我指的是如果您不将 MT4 交易方法调整到 MT5)。
我说的不是 R2 和 MT5 的结果差异(但 Rumus 实在是没办法,我们就不考虑它了)。
真正想用 MT5 管理 MT4 交易的人应该考虑反向过程。
同时,在策略中更多地使用精确翻转和切割(在多货币条件下)。
如果能按照 GMT 或终端的当地时间(如果它们位于同一时区)同步所有交易过程和余额信息,那就更好了。
PS
这与 "汇率 "无关,甚至与存款的负载也无关。这与您需要放弃什么以及如何改变策略有关。
从这个意义上讲,唯一的方便之处在于所有 MT4 交易过程都可以调整为 netteng,并获得 100% 的结果。
当然,重要的一点是,在大多数交易策略中,翻转和割肉等现象非常罕见。
Urain:
关于 dll,MQ 不可能挖掘每一个第三方代码检查其安全性,而且不是每个人都有 delphi 或 srp 编译器。您可以发布一个 "圣经 "的代码,然后用另一个编译文件代替。因此目前只能使用 ex5。
不幸的是,MQL5 将不会很快提供至少一半的可能性,而这些可能性可以在 DLL 的帮助下获得。
许多开发工具都可以使用 DLL,它可以让您跳出 "沙盒",而且体积不大。
作为一种选择,您可以应用与 WinAPI 绑定的 MQL 库。
并非适用于所有交易策略(如上所述,我指的是如果您不将 MT4 交易方法调整到 MT5)。
我说的不是 R2 和 MT5 的结果差异(但 Rumus 实在不在人世,我们就不考虑它了)。
我已经是第 n 次读到这句话了,我想第 n 次请您举出至少一个订单/交易序列,当它从 MT5 转到 MT4(或相反)时,其财务结果会发生变化。历史订单/交易列表不会改变,当前未结头寸的显示也不会不同,但财务结果会改变。
我认为,如果交易条件相同(报价/价差/隔夜利息/止损杠杆等),MT5 的结果将与 MT4相同或更好(由于隔夜利息,如果 MT4 上有 2 个反向头寸,结果会更好)。
是的,在复制交易 时组织所有细微差别的核算是一项艰巨的任务。但这是另一项任务,与净额结算问题的理论部分无关。
事实上,OnTrade 是处理头寸列表变化的理想场所。您只需确保在启动时立即复制现有交易(而不是在下一个交易事件时)。
过滤事件非常简单--检查头寸列表,只有当列表中发生变化时才继续处理。
我说的不是这种过滤,在 OnTrade 中,事件不仅会出现在已执行的交易中,还会出现在已下单的交易中,反过来,它也不一定会被执行。
好主意。很久以前我就想这么做,但没有成功,在这里我看到了我的错误。
向作者致敬。!!!
这就是我们所说的--您不必对下单/取消/执行订单做出反应。为此,您需要检查仓位 是否发生了变化。
那么,复制 OnTimer 并将其重命名如下:
//EventKillTimer(),然后在 OnDeinit 中注释掉定时器的销毁;
和 OnInit 中的EventSetTimer(1); 删除。
实际上,ZY 已经完成了整个修改工作,但我只能在周一进行检查。
好吧,那就复制一个 OnTimer,然后像这样重命名:
这就是我的意思,很简单;)
并在 OnInit 中代替 EventSetTimer(1);; put
这就是我想提醒你的--如果初始化 "失败"(例如,启动终端 时,数据无法及时加载),复制器将 "休眠",直到下一个交易事件发生。在这种情况下,我们应该提供一个无限循环或相同的定时器,它将一直工作到初始化成功为止。
至于库,我并不反对使用 ex5 库,但我不想使用 dll,因为这会打击最终用户的积极性。
对于最终用户来说,安装 MT4 的额外副本也不是很方便。)用户很可能已经安装 MT4 很长时间了,根本不需要 MT5 文件。也许您应该推荐使用 subst 作为一种技巧?
对于最终用户来说,安装 MT4 的额外副本也不太方便。)用户很可能已经安装 MT4 很长时间了,根本不需要 MT5 文件。也许您应该推荐使用 subst 作为一种技巧?
我并不想写一篇 关于信号传输通道的文章,我只是找到了最简单易懂的解决方案。
我认为信号传输是另一篇文章的主题。
关于在这里放置第二台 MT 不太方便的问题,我认为你错了,据我所知,许多用户都在机器上安装了多达十几台 MT,而且没有任何问题。此外,MT4 可以通过简单复制轻松转移。此外,我的代码没有魔力保护,因此不可能通过复制和手动同时使用账户。