程序库: MT4Orders - 页 27 1...202122232425262728293031323334...95 新评论 Ilya Malev 2018.12.12 09:40 #261 你好!:)正在尝试使用您的库。MT5 模式 Hedge build 1959,测试模式。OrderSelect(... , SELECT_BY_TICKET) 调用历史记录中的订单返回 false,尽管该订单在测试人员日志中明确存在。您能解释一下这是怎么回事吗? fxsaber 2018.12.12 10:40 #262 Ilya Malev:你好!:)正在尝试使用您的库。MT5 模式 Hedge build 1959,测试模式。OrderSelect(... , SELECT_BY_TICKET) 调用历史记录中的订单返回 false,尽管该订单在测试人员日志中明确存在。您能猜到这是怎么回事吗?您应该阅读本主题,以免我再次重复。 简而言之,MT4 平仓单等于 MT5 平仓单。这有很多完全合理的理由。特别是,请阅读库标题中的相关内容。当然,最好还是阅读有关此主题的主题。 为了更好地理解,请在 MT5 中手动进行各种复杂的交易,然后运行以下脚本 交易、自动交易系统和交易策略测试论坛库:报告fxsaber, 2018.12.11 12:28 pm. 厌倦了MT5报告的单次通过。因此,将这三行添加到任何 MT5 顾问的末尾#define REPORT_TESTER // 测试仪将自动记录报告 #define REPORT_BROWSER // 在浏览器启动时创建报告 - 需要 DLL 许可。 #include <Report.mqh> //https://www.mql5.com/zh/code/18801将在单程结束时打开正常的 Hedge-Tester 报告,该报告将以正常形式显示仓位甚至滑点。试着这样做,例如,Experts/Examples/Moving Average/Moving Average.mq5。要立即了解报告的外观,只需在您的账户上运行以下脚本#define REPORT_BROWSER // 在浏览器启动时创建报告 - 需要 DLL 许可。 #include <Report.mqh> //https://www.mql5.com/zh/code/18801 void OnStart() { REPORT::ToFile(); // 在浏览器中创建并打开报告。 }所有内容也适用于 MT4。 或者,如上文所述,在任何 MT5 Expert Advisor 中添加相应的行,看看 MT4Orders 在历史记录方面是怎么做的。 Ilya Malev 2018.12.12 10:43 #263 fxsaber:你应该读读这个主题,这样我就不用再重复一次了。简而言之,MT4 平仓单等于 MT5 平仓单。这有很多完全合理的理由。特别是,请阅读库标题中的相关内容。当然,最好还是阅读有关此主题的主题。为了更好地理解,请在 MT5 中手动进行各种复杂的交易操作,然后运行以下脚本或者,如上文所述,在任何 MT5 Expert Advisor 中添加相应的行,看看 MT4Orders 在历史记录方面的表现。这么说来,要实现 MT4 -> MT5 的完全兼容还是不可能的?好的,谢谢您的建议,我会研究一下的。 fxsaber 2018.12.12 10:45 #264 Ilya Malev:原来 MT4 -> MT5 仍然无法实现完全兼容?好的,谢谢您的建议,我会研究一下的。是的,错误的 MT4 代码不一定能在 MT5 中使用。 Ilya Malev 2018.12.12 11:09 #265 fxsaber:是的,错误的 MT4 代码在 MT5 中并不总是有效。曲线是一种计算方法,即发送挂单的OrderSend 结果 在变成市价订单后将保持在相同的数字之下,我的理解对吗?)在不修改原始代码逻辑的情况下,有什么最简单的方法可以解决这个问题?如果我自己不能更快地想到的话 ) 一般来说,这种行为不能称为 MT4 订单系统。因为在 MT4 系统中激活订单时保存订单是其基本功能之一。 fxsaber 2018.12.12 11:35 #266 Ilya Malev:这条曲线是计算发送挂单的 OrderSend 结果在成为适销订单后将保持相同数字的曲线,我的理解对吗?) 订单执行后,MT5 中的仓单将保持不变。但平仓时不会。 曲线就是使用 SELECT_BY_TICKET。尤其是在以这种方式跟踪 "我的仓位是否已平仓 "事件时。一般来说,这种行为不能再称为 MT4 订单系统。因为在 MT4 系统中激活订单时保存订单是其基本原理之一一切都会被保存。您只需尝试一下。 Ilya Malev 2018.12.12 11:39 #267 fxsaber:执行订单时,头寸单在 MT5 中保持不变。但在平仓时则不会。曲线就是使用 SELECT_BY_TICKET。尤其是在以这种方式跟踪 "我的头寸是否已平仓 "事件时。一切都会保存。您只需尝试一下。我确实试过。当然,我说的是平仓后的票据编号。也就是说,整个订单编号是浮动的。我打开订单号 59(OrderSend 的结果),激活并关闭它,然后用您的 OrderPrint 从历史记录中打印数字,得到历史记录中从 1 到 13 的数字。 不幸的是,这不能称为 MT4 系统。MT4 文档中没有任何内容说明 SELECT_BY_TICKET 不能用于跟踪 "我的仓位是否已平仓 "事件,您已经发明了它。在 MT4 中,这是很正常的(虽然我不认为这不是最好的编程风格,但我们并不是为一个完美的世界编写库,或者说 =))。 此外,这与闭包检查无关,遗憾的是,闭包检查很容易解决。事实上,许多系统都会根据某些属性将订单分组,然后分析其结果以做出进一步决策。如果添加所有其他系统,这些系统只是通过 SELECT_BY_TICKET 来 "监控我的仓位是否已平仓",那么就会出现大量异常。 fxsaber 2018.12.12 11:54 #268 Ilya Malev:我就是这么试的。当然,我说的是关闭后的票据编号。也就是说,订单的整个编号是浮动的。我打开订单号 59(OrderSend 的结果),激活并关闭它,然后用您的 OrderPrint 从历史记录中打印数字,得到历史记录中从 1 到 13 的数字。 不幸的是,这不能称为 MT4 系统。MT4 文档中没有任何内容说明 SELECT_BY_TICKET 不能用于跟踪 "我的头寸是否已平仓 "事件,您已经发明了它。在 MT4 中,这是很正常的(虽然我不认为这不是最好的编程风格,但我们不是在为一个完美的世界编写库,还是什么 =))。懒得读线程是很常见的。 要编写一个库,使平仓 时的票据与平仓时的票据相匹配,基本上是不可能的。这是 MT5 的架构限制。这是一个非常好的限制,因为它迫使人们停止编写错误的 MT4-advisors 的愚蠢做法。有一个简单的规则。如果您在 MT4 智能交易系统中看到 SELECT_BY_TICKET,那么 95% 的代码都是错误的。任何形式的票据存储几乎都是错误的逻辑,经不起任何实战应用的考验。 Ilya Malev 2018.12.12 12:02 #269 fxsaber:懒得看主题是很熟悉的。原则上,不可能编写一个库,使平仓 的票据与平仓时的票据一致。这是 MT5 的架构限制。这是一个非常好的限制,因为它迫使人们停止编写错误的 MT4-advisors 的愚蠢做法。有一个简单的规则。如果您在 MT4 智能交易系统中看到 SELECT_BY_TICKET,那么 95% 的代码都是错误的。任何形式的票据存储几乎都是错误的逻辑,经不起任何实战应用的考验。我都想明白了,还看什么? 想象一下,一个 EA 同时构建多个订单网格,每个网格都有自己的逻辑,取决于该系列中过去订单的结果。对您来说,将它们的订单存储在数组中比实现任何其他逻辑要容易得多。同时,这种逻辑经不起 "实战应用 "的唯一情况就是瞬间断电,而这恰恰是 Expert Advisor 应该将下一个交易操作的结果写入其数据文件的时刻。在 VPS(或 UPS)上进行交易时,这实际上是不可能的。 fxsaber 2018.12.12 12:08 #270 Ilya Malev:为什么要看这个主题,我已经有点想明白了。想象一下,一个 EA 同时建立多个订单网格,每个网格都有自己的逻辑,取决于该系列中过去订单的结果。对您来说,将它们的订单存储在数组中比实现任何其他逻辑要容易得多。同时,这种逻辑唯一经不起 "实战应用 "的情况是....。经不起 "战斗应用 "的情况比比皆是。每个网格指令都会产生几十个仓位,而每个仓位通过相同的 TP 平仓,又会产生几十个平仓仓位。 该库是为那些知道如何在 MT4 上编写实战型 EA 的人创建的,而不是演示玩具。战斗每次都要从头开始。 我没有任何论据,论坛上都有。你肯定会不同意我的观点。但这并不像歪歪扭扭的 MT4 顾问那么糟糕。 也许有人会介入这场对话,用链接或声音指出这个世界为何如此真实。 1...202122232425262728293031323334...95 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好!:)
正在尝试使用您的库。MT5 模式 Hedge build 1959,测试模式。
OrderSelect(... , SELECT_BY_TICKET) 调用历史记录中的订单返回 false,尽管该订单在测试人员日志中明确存在。您能解释一下这是怎么回事吗?
你好!:)
正在尝试使用您的库。MT5 模式 Hedge build 1959,测试模式。
OrderSelect(... , SELECT_BY_TICKET) 调用历史记录中的订单返回 false,尽管该订单在测试人员日志中明确存在。您能猜到这是怎么回事吗?
您应该阅读本主题,以免我再次重复。
简而言之,MT4 平仓单等于 MT5 平仓单。这有很多完全合理的理由。特别是,请阅读库标题中的相关内容。当然,最好还是阅读有关此主题的主题。
为了更好地理解,请在 MT5 中手动进行各种复杂的交易,然后运行以下脚本
交易、自动交易系统和交易策略测试论坛
库:报告
fxsaber, 2018.12.11 12:28 pm.
厌倦了MT5报告的单次通过。因此,将这三行添加到任何 MT5 顾问的末尾将在单程结束时打开正常的 Hedge-Tester 报告,该报告将以正常形式显示仓位甚至滑点。
试着这样做,例如,Experts/Examples/Moving Average/Moving Average.mq5。
要立即了解报告的外观,只需在您的账户上运行以下脚本
所有内容也适用于 MT4。
你应该读读这个主题,这样我就不用再重复一次了。
简而言之,MT4 平仓单等于 MT5 平仓单。这有很多完全合理的理由。特别是,请阅读库标题中的相关内容。当然,最好还是阅读有关此主题的主题。
为了更好地理解,请在 MT5 中手动进行各种复杂的交易操作,然后运行以下脚本
这么说来,要实现 MT4 -> MT5 的完全兼容还是不可能的?好的,谢谢您的建议,我会研究一下的。
原来 MT4 -> MT5 仍然无法实现完全兼容?好的,谢谢您的建议,我会研究一下的。
是的,错误的 MT4 代码不一定能在 MT5 中使用。
是的,错误的 MT4 代码在 MT5 中并不总是有效。
曲线是一种计算方法,即发送挂单的OrderSend 结果 在变成市价订单后将保持在相同的数字之下,我的理解对吗?)
在不修改原始代码逻辑的情况下,有什么最简单的方法可以解决这个问题?如果我自己不能更快地想到的话 )
一般来说,这种行为不能称为 MT4 订单系统。因为在 MT4 系统中激活订单时保存订单是其基本功能之一。
这条曲线是计算发送挂单的 OrderSend 结果在成为适销订单后将保持相同数字的曲线,我的理解对吗?)
订单执行后,MT5 中的仓单将保持不变。但平仓时不会。
曲线就是使用 SELECT_BY_TICKET。尤其是在以这种方式跟踪 "我的仓位是否已平仓 "事件时。
一般来说,这种行为不能再称为 MT4 订单系统。因为在 MT4 系统中激活订单时保存订单是其基本原理之一
一切都会被保存。您只需尝试一下。
执行订单时,头寸单在 MT5 中保持不变。但在平仓时则不会。
曲线就是使用 SELECT_BY_TICKET。尤其是在以这种方式跟踪 "我的头寸是否已平仓 "事件时。
一切都会保存。您只需尝试一下。
我确实试过。当然,我说的是平仓后的票据编号。也就是说,整个订单编号是浮动的。我打开订单号 59(OrderSend 的结果),激活并关闭它,然后用您的 OrderPrint 从历史记录中打印数字,得到历史记录中从 1 到 13 的数字。 不幸的是,这不能称为 MT4 系统。MT4 文档中没有任何内容说明 SELECT_BY_TICKET 不能用于跟踪 "我的仓位是否已平仓 "事件,您已经发明了它。在 MT4 中,这是很正常的(虽然我不认为这不是最好的编程风格,但我们并不是为一个完美的世界编写库,或者说 =))。
此外,这与闭包检查无关,遗憾的是,闭包检查很容易解决。事实上,许多系统都会根据某些属性将订单分组,然后分析其结果以做出进一步决策。如果添加所有其他系统,这些系统只是通过 SELECT_BY_TICKET 来 "监控我的仓位是否已平仓",那么就会出现大量异常。我就是这么试的。当然,我说的是关闭后的票据编号。也就是说,订单的整个编号是浮动的。我打开订单号 59(OrderSend 的结果),激活并关闭它,然后用您的 OrderPrint 从历史记录中打印数字,得到历史记录中从 1 到 13 的数字。 不幸的是,这不能称为 MT4 系统。MT4 文档中没有任何内容说明 SELECT_BY_TICKET 不能用于跟踪 "我的头寸是否已平仓 "事件,您已经发明了它。在 MT4 中,这是很正常的(虽然我不认为这不是最好的编程风格,但我们不是在为一个完美的世界编写库,还是什么 =))。
懒得读线程是很常见的。
懒得看主题是很熟悉的。
我都想明白了,还看什么?
想象一下,一个 EA 同时构建多个订单网格,每个网格都有自己的逻辑,取决于该系列中过去订单的结果。对您来说,将它们的订单存储在数组中比实现任何其他逻辑要容易得多。同时,这种逻辑经不起 "实战应用 "的唯一情况就是瞬间断电,而这恰恰是 Expert Advisor 应该将下一个交易操作的结果写入其数据文件的时刻。在 VPS(或 UPS)上进行交易时,这实际上是不可能的。
为什么要看这个主题,我已经有点想明白了。
想象一下,一个 EA 同时建立多个订单网格,每个网格都有自己的逻辑,取决于该系列中过去订单的结果。对您来说,将它们的订单存储在数组中比实现任何其他逻辑要容易得多。同时,这种逻辑唯一经不起 "实战应用 "的情况是....。
经不起 "战斗应用 "的情况比比皆是。每个网格指令都会产生几十个仓位,而每个仓位通过相同的 TP 平仓,又会产生几十个平仓仓位。
该库是为那些知道如何在 MT4 上编写实战型 EA 的人创建的,而不是演示玩具。战斗每次都要从头开始。
我没有任何论据,论坛上都有。你肯定会不同意我的观点。但这并不像歪歪扭扭的 MT4 顾问那么糟糕。
也许有人会介入这场对话,用链接或声音指出这个世界为何如此真实。