文章 "连续前行优化 (第八部分): 程序改进和修复" - 页 2 123 新评论 Good Beer 2020.09.01 21:37 #11 Andrey Azatskiy:关于 "没有数据可创建 "的错误,您确定 EA 中包含了自动上传和报告生成功能吗?这里有两种选择,一种是您没有在 EA 代码中包含自动卸载和生成报告的功能,另一种是 EA 的交易结果没有通过您设置的优化过滤器。根据我的理解,我已经连接了卸载功能,并在智能交易系统中添加了行:#include<Trade\Trade.mqh> #define CUSTOM_ON_TICK // 告诉上传系统我们自己实现了 OnTick 回调 #include <History manager/AutoUpLoader2.mqh> // 包括 CAutoUploader #define TESTER_ONLY 一切都按照参数运行。优化结果在测试仪中可视化,智能交易系统将结果写入文件。但只是历史记录。前向传递没有记录。优化结果窗口中也没有任何记录。 Andrey Azatskiy 2020.09.04 06:35 #12 Good Beer:根据我的理解,我连接了卸载,在 EA 中添加了字符串: 一切都按照参数运行。优化在测试仪中可视化,EA 将结果写入文件。但只是历史记录。前向传递没有记录。优化结果窗口中什么都没有。 如果使用了 "CUSTOM_ON_TICK",则需要在 OnTick 方法中(最开始)添加以下代码: CAutoUploader2::OnTick(); // 如果定义了 CUSTOM_ON_TICK 将 OnTick 重命名为 MyOnTick 或其他名称,并在 OnInit 中写入连接 : CAutoUploader2::SetCallback(MyOnTick, ENUM_CALLBACK_TYPE::CB_ON_TICK); Andrey Azatskiy 2020.09.04 06:44 #13 Good Beer:你搞错了。你的优化时间是 12:00 到 12:00。我还没找到可以更改的地方。正因为如此,我们失去了历史第一天的 12 个小时,而优化了远期的 12 个小时。正因为如此,远期被提前了一天,因为这一天被历史记录占用了。 由于一周有 7 天,因此优化期必须分为 7 天。历史进程在周一 0:00 结束,而远期在周一 0:00 开始。事实证明,我们在周一并不进行测试,而是进行前瞻。没有时间机器时间以外国格式(MM.DD.YYYY HH:MM)显示,但以我们的格式(DD.MM.YYYY)设置。 时间不是 12:00 pm = 00:00。由于我们指定的时间波等于 DD.MM.YYYY.00:00:00,如果我们指定相同的时间,测试仪将无法理解我们需要从下一个日期开始测试,相反,它将从同一日期开始测试,我们将得到相同的时间机器。这就是我们回溯一天的原因。不过,你可以重写设置时间的逻辑,只需修改位于类 "AutoFrame "中的方法"public void Calculate(DateTime From,DateTime Till,uint history,uint forward) "即可。该方法位于类 "AutoFillInDateBordersM"中。该类的描述文件路径为 "MetaTrader-Auto-Optimiser/Metatrader Auto Optimiser/Model/AutoFillInDateBordersM.cs"。 在当前版本中是这样实现的: public void Calculate(DateTime From, DateTime Till, uint history, uint forward) { if (From >= Till) throw new ArgumentException("Date From must be less then date Till"); List<KeyValuePair<OptimisationType, DateTime[]>> data = new List<KeyValuePair<OptimisationType, DateTime[]>>(); OptimisationType type = OptimisationType.History; DateTime _history = From; DateTime _forward = From.AddDays(history + 1); DateTime CalcEndDate() { return type == OptimisationType.History ? _history.AddDays(history) : _forward.AddDays(forward); } while (CalcEndDate() <= Till) { DateTime from = type == OptimisationType.History ? _history : _forward; data.Add(new KeyValuePair<OptimisationType, DateTime[]>(type, new DateTime[2] { from, CalcEndDate() })); if (type == OptimisationType.History) _history = _history.AddDays(forward + 1); else _forward = _forward.AddDays(forward + 1); type = type == OptimisationType.History ? OptimisationType.Forward : OptimisationType.History; } if (data.Count == 0) throw new ArgumentException("Can`t create any date borders with setted In sample (History) step"); DateBorders?.Invoke(data); } Discussion of article "Continuous 连续前行优化 (第八部分): 程序改进和修复 连续前行优化 (第四部分): 优化管理器(自动优化器) Andrey Azatskiy 2020.09.04 06:48 #14 Nguyen Tien Duong:您好,您的系列文章 对 我很有帮助,我不擅长 c#,所以我正试着从您的课程中学习。我下载了第 4 至第 7 部分的附件,但我无法创建 "Metatrade Auto Optimiser "项目:这是我第一次看到你的 程序界面,当优化模式被禁用时,它能成功启动 mt5,而当我打开它时,却 出现了 如图所示的 错误 。 请帮我解决这个问题,谢谢 您需要在专家中添加上传选项。要做到这一点,请使用文件"/Data/MQL5/Experts/Test Expert/New uploading variant/SimpleMA.mq5 "作为示例,或编译它并用于测试。 Good Beer 2020.09.04 12:22 #15 Andrey Azatskiy:如果您使用了 "CUSTOM_ON_TICK",则需要在 OnTick 方法中(最开始)添加以下代码 : 很抱歉我的愚钝;您能不能不要使用标准的 "OnTick()"? Good Beer 2020.09.04 12:26 #16 Andrey Azatskiy:时间以国外格式显示 当然,我会尝试重写。不是时间格式的问题,而是向前的句号偏右了。也许是我的终端设置为 24 小时格式,导致了错误。 Andrey Azatskiy 2020.09.05 00:18 #17 Good Beer:请原谅我的愚钝;是否可以使用标准的 "OnTick()"? 一切都可以自定义。研究一下文件 "History manager/AutoUpLoader2.mqh"(历史记录管理器/AutoUpLoader2.mqh)和一个使用新数据上传格式的示例,一切都会变得更加清晰。 如果在您的信息中描述了"CUSTOM_ON_TICK"--这意味着您说的 OnTick 是标准的,但也意味着您必须注意 OnTick 开头的代码字符串 CAutoUploader2::SetCallback(MyOnTick, ENUM_CALLBACK_TYPE::CB_ON_TICK); 在 OnTick 方法的开头。 Mario Augusto Ribeiro Jacomini 2020.10.11 19:39 #18 您好、 非常感谢你的这个项目。我相信它会非常有用。 我刚刚开始使用它,但在 "Metatrader Auto Optmiser .exe "上选择货币时遇到了问题。是否可以使用另一种货币来代替默认货币? 除了现有的选项(卢布、美元、欧元、瑞士法郎)之外,没有写入新货币的选项。 谢谢。 Andrey Azatskiy 2020.10.11 23:01 #19 Marinho10:你好非常感谢你的这个项目。我相信它会非常有用。我刚刚开始使用它,在 "Metatrader Auto Optmiser .exe "上选择货币时遇到了一个问题。是否可以使用另一种货币来代替默认货币?除了可用的选项(卢布、美元、欧元、瑞士法郎)之外,没有写入新货币的选项。谢谢。您好。您必须编辑自动优化程序的代码并重新编译。 1. 在Visual Studio 中打开程序。 2. 打开文件 "AutoOptimiserVM.cs" 3. 在第 41 行 - 以下代码负责收集货币。编辑它: new OptimiserSetting( " Currency", new []{ " RUR", " USD", " EUR", "GBP", " CHF"}), 4. 重新编译程序,您就会看到 "AutoOptimiserVM.cs"文件。重新编译程序,您将在组合框中看到您的货币。 Discussion of article "Continuous Easiest Currency Pair to Reversal Magic trading system fxsaber 2020.10.12 04:50 #20 我要求作者录制一段视频,展示该项目的 不同用途。 123 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
关于 "没有数据可创建 "的错误,您确定 EA 中包含了自动上传和报告生成功能吗?这里有两种选择,一种是您没有在 EA 代码中包含自动卸载和生成报告的功能,另一种是 EA 的交易结果没有通过您设置的优化过滤器。
根据我的理解,我已经连接了卸载功能,并在智能交易系统中添加了行:
一切都按照参数运行。优化结果在测试仪中可视化,智能交易系统将结果写入文件。但只是历史记录。前向传递没有记录。优化结果窗口中也没有任何记录。根据我的理解,我连接了卸载,在 EA 中添加了字符串:
一切都按照参数运行。优化在测试仪中可视化,EA 将结果写入文件。但只是历史记录。前向传递没有记录。优化结果窗口中什么都没有。如果使用了 "CUSTOM_ON_TICK",则需要在 OnTick 方法中(最开始)添加以下代码:
将 OnTick 重命名为 MyOnTick 或其他名称,并在 OnInit 中写入连接 :
你搞错了。你的优化时间是 12:00 到 12:00。我还没找到可以更改的地方。
正因为如此,我们失去了历史第一天的 12 个小时,而优化了远期的 12 个小时。正因为如此,远期被提前了一天,因为这一天被历史记录占用了。
由于一周有 7 天,因此优化期必须分为 7 天。历史进程在周一 0:00 结束,而远期在周一 0:00 开始。事实证明,我们在周一并不进行测试,而是进行前瞻。没有时间机器
时间以外国格式(MM.DD.YYYY HH:MM)显示,但以我们的格式(DD.MM.YYYY)设置。
时间不是 12:00 pm = 00:00。
由于我们指定的时间波等于 DD.MM.YYYY.00:00:00,如果我们指定相同的时间,测试仪将无法理解我们需要从下一个日期开始测试,相反,它将从同一日期开始测试,我们将得到相同的时间机器。这就是我们回溯一天的原因。不过,你可以重写设置时间的逻辑,只需修改位于类 "AutoFrame "中的方法"public void Calculate(DateTime From,DateTime Till,uint history,uint forward) "即可。该方法位于类 "AutoFillInDateBordersM"中。该类的描述文件路径为 "MetaTrader-Auto-Optimiser/Metatrader Auto Optimiser/Model/AutoFillInDateBordersM.cs"。
在当前版本中是这样实现的:您好,您的系列文章 对 我很有帮助,我不擅长 c#,所以我正试着从您的课程中学习。
我下载了第 4 至第 7 部分的附件,但我无法创建 "Metatrade Auto Optimiser "项目:
这是我第一次看到你的 程序界面,当优化模式被禁用时,它能成功启动 mt5,而当我打开它时,却 出现了 如图所示的 错误 。
请帮我解决这个问题,谢谢
您需要在专家中添加上传选项。要做到这一点,请使用文件"/Data/MQL5/Experts/Test Expert/New uploading variant/SimpleMA.mq5 "作为示例,或编译它并用于测试。
如果您使用了 "CUSTOM_ON_TICK",则需要在 OnTick 方法中(最开始)添加以下代码 :
很抱歉我的愚钝;您能不能不要使用标准的 "OnTick()"?
时间以国外格式显示
当然,我会尝试重写。不是时间格式的问题,而是向前的句号偏右了。也许是我的终端设置为 24 小时格式,导致了错误。
请原谅我的愚钝;是否可以使用标准的 "OnTick()"?
一切都可以自定义。研究一下文件 "History manager/AutoUpLoader2.mqh"(历史记录管理器/AutoUpLoader2.mqh)和一个使用新数据上传格式的示例,一切都会变得更加清晰。
如果在您的信息中描述了"CUSTOM_ON_TICK"--这意味着您说的 OnTick 是标准的,但也意味着您必须注意 OnTick 开头的代码字符串
在 OnTick 方法的开头。
您好、
非常感谢你的这个项目。我相信它会非常有用。
我刚刚开始使用它,但在 "Metatrader Auto Optmiser .exe "上选择货币时遇到了问题。是否可以使用另一种货币来代替默认货币?
除了现有的选项(卢布、美元、欧元、瑞士法郎)之外,没有写入新货币的选项。
谢谢。
你好
非常感谢你的这个项目。我相信它会非常有用。
我刚刚开始使用它,在 "Metatrader Auto Optmiser .exe "上选择货币时遇到了一个问题。是否可以使用另一种货币来代替默认货币?
除了可用的选项(卢布、美元、欧元、瑞士法郎)之外,没有写入新货币的选项。
谢谢。
您好。
您必须编辑自动优化程序的代码并重新编译。1. 在Visual Studio 中打开程序。
2. 打开文件 "AutoOptimiserVM.cs"
3. 在第 41 行 - 以下代码负责收集货币。编辑它:
new OptimiserSetting( " Currency", new []{ " RUR", " USD", " EUR", "GBP", " CHF"}),
4. 重新编译程序,您就会看到 "AutoOptimiserVM.cs"文件。重新编译程序,您将在组合框中看到您的货币。