程序库: 多功能测试仪 - 页 41 1...343536373839404142434445464748...56 新评论 klycko 2024.05.31 08:48 #401 休眠 10 秒钟也无济于事。只有清除该文件夹才能解决问题。 fxsaber 2024.05.31 09:13 #402 klycko 休眠 10 秒钟也无济于事。只有清除该文件夹才能解决问题。 发布优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。 klycko 2024.05.31 11:29 #403 fxsaber #:上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。 谢谢!我会尽量准备好文件并发布出来。现在一切都还没有整理好。 klycko 2024.05.31 13:12 #404 fxsaber #:上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。 下午好! 我已经准备好了文件并附在后面。 优化从 25.03 到 20.05.2024,时间框架 M1。 存款 17000。杠杆 40。复杂标准的最大值。 首先,我们需要清理 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹,以保证实验的纯净度。 为了优化 Nocturne 脚本,应该一次运行一个参数。 然后输出: 第一个参数:ProfitNow -1478 ParamMax 0.37(第一次)。 第二个参数: ProfitNow -379 ParamMax 30(第一次)。 第三个参数: ProfitNow -379 ParamMax 6(第一次)。 第三个参数:ProfitNow -379 ParamMax 6 重复使用。 对于第三个参数:ProfitNow -379 ParamMax 6 重复执行 第三个参数:ProfitNow -379 ParamMax 6 重复。 这表明第三个参数的数据缓存被挂起。 现在我们需要再次清除文件夹 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache 然后又是重复 第一个参数:ProfitNow -1478 ParamMax 0.37 第一次。 第二个参数:ProfitNow -379 ParamMax 30(第一次)。 第三个参数: ProfitNow -379 ParamMax 6(第一次)。 对于第三个参数:ProfitNow -379 ParamMax 6 重复使用。 对于第三个参数:ProfitNow -379 ParamMax 6 重复执行 重复第三个参数:ProfitNow -379 ParamMax 6 Nocturne 脚本的第 151-154 行按照您的指示说明了一切: 运行(Odinar); int GLOC = MTTESTER::GetLastOptCache(Bytes); // 将 opt 文件存入字节数组 Bytes TESTERCACHE<ExpTradeSummary> Cache; bool CL = Cache.Load(Bytes); // 将字节数组输入 Cache 当然,错误就在我编写的代码中,但我还不知道如何修复它。 不过,我在实验中发现,如果在运行 Run 之前,手动删除 "C:\bytes "文件夹中的所有 opt 文件,就可以解决这个问题。 从 "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹中删除所有 opt 文件、 那么我的代码就能正常工作,并对所选参数进行优化。 如果不清理这个文件夹,测试器就不会重复执行优化(使用相同的不变数据),而是从这个文件夹中读出 已存在的选项文件。在手动重复运行相同优化时,可以清楚地看到这一点。 可以看出,实际优化只在第一次执行,然后才从文件夹中读取 opt 文件。 这种重复读取似乎不会更新缓存的内容,这就是导致我的代码出错的原因。 清除上述文件夹可能有助于解决该错误。当然,这是一个糟糕的解决方案,如果能在缓存中恢复正确的数据会更完美。 但我不知道该怎么做。目前,上一次真正优化的数据还挂在缓存中(与从文件夹中重新读取的数据不匹配)。 不幸的是,无法使用 FolderClean 从脚本中清理该文件夹,因为 MQL5 禁止这样做。 它不在 "沙箱 "中,只能由策略测试器填充。 也许您应该通过 C++ 创建一些外部插件,然后从脚本中运行它。 亚历山大 附加的文件: Nocturne.mq5 59 kb Settings.set 4 kb n7_kjgn0j_j1jum.ex5 64 kb Libraries: MultiTester klycko 2024.05.31 13:18 #405 文本中的错误: 下午好! 准备好文件并附上。 从 2024 年 5 月 25 日到 2024 年 5 月 20 日在时间框架 M1 上进行优化。 存款 17000。杠杆 40。复杂标准的最大值。 首先,我们需要清理 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹,以保证实验的纯净度。 为了优化 Nocturne 脚本,应该一次运行一个参数。 然后输出: 第一个参数:ProfitNow -1478 ParamMax 0.37(第一次)。 第二个参数: ProfitNow -379 ParamMax 30(第一次)。 第三个参数:ProfitNow -379 ParamMax 6(第一次)。 对于第一个 参数:ProfitNow -379 ParamMax 6 重复使用。 对于第二个 参数:ProfitNow -379 ParamMax 6 重复执行 第三个 参数:ProfitNow -379 ParamMax 6 重复。 这表明数据缓存挂起在第三个参数上。 现在我们需要再次清除文件夹 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache"。 然后又是重复 第一个参数:ProfitNow -1478 ParamMax 0.37 第一次。 第二个参数:ProfitNow -379 ParamMax 30(第一次)。 第三个参数: ProfitNow -379 ParamMax 6,第一次。 对于 第一个 参数:ProfitNow -379 ParamMax 6 重复使用。 对于 第二个 参数:ProfitNow -379 ParamMax 6 重复执行 第三个参数:ProfitNow -379 ParamMax 6 重复。 Nocturne 脚本的第 151-154 行按照您的指示说明了一切: 运行(Odinar); int GLOC = MTTESTER::GetLastOptCache(Bytes); // 将 opt 文件存入字节数组 Bytes TESTERCACHE<ExpTradeSummary> Cache; bool CL = Cache.Load(Bytes); // 将字节数组输入 Cache 当然,错误就在我编写的代码中,但我还不知道如何修复它。 不过,我在实验中发现,如果在运行 Run 之前,手动删除 "C:\bytes "文件夹中的所有 opt 文件,就可以解决这个问题。 从 "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹中删除所有 opt 文件、 那么我的代码就能正常工作,并对所选参数进行优化。 如果不清理这个文件夹,测试器就不会重复 执行优化(使用相同的不变数据),而是从这个文件夹中读出 已存在的选项文件。在手动重复运行相同优化时,可以清楚地看到这一点。 可以看出,实际优化只在第一次执行,然后才从文件夹中读取 opt 文件。 这种重复读取似乎不会更新缓存的内容,这就是导致我的代码出错的原因。 清除上述文件夹可能有助于解决该错误。当然,这是一个糟糕的解决方案,如果能在缓存中恢复正确的数据会更完美。 但我不知道该怎么做。目前,上一次真正优化的数据还挂在缓存中(与从文件夹中重新读取的数据不匹配)。 不幸的是,无法使用 FolderClean 从脚本中清理该文件夹,因为 MQL5 禁止这样做。 它不在 "沙箱 "中,只能由策略测试器填充。 也许您应该通过 C++ 创建一些外部插件,然后从脚本中运行它。 亚历山大 Libraries: MultiTester klycko 2024.05.31 13:47 #406 我已经发布了我的优化机器人,因为Nocturne是以它的参数列表为导向的。 但对于MQL5\Experts\Examples\MACD\MACD Sample.mq5 来说,它需要进行大量修改。 顺便问一下,为什么需要输入参数 int inNum = 0? 或者这只是一种习惯? klycko 2024.06.03 12:33 #407 fxsaber #:上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。 下午好! 在亚历山大-斯拉夫斯基(Alexander Slavsky)的帮助下,我成功地解决了所有问题:https://www.mql5.com/zh/users/s22aa。 他给我发了删除缓存内容的代码。 我无法直接清理缓存,因为它在沙盒之外。 也许有人会在运行运行程序之前使用它,这样过去的优化结果就不会干扰新的优化结果。 我附上了这个脚本。 你们的库和这个清理程序确保了我能够持续优化机器人。 非常感谢这些代码和你们的帮助。 亚历山大 Aleksandr Slavskii 2024.05.27www.mql5.com Профиль трейдера 附加的文件: CacheDelete.mq5 2 kb fxsaber 2024.06.03 13:06 #408 klycko 重复 执行优化(使用相同的未更改数据),而是将其读出 已存在的优化文件。这一点在重复手动运行相同优化时可以清楚地看到。你可以看到,真正的优化只在第一次进行,然后才从文件夹中读取 opt 文件。这种重复读取似乎不会更新缓存的内容,这就是我的代码出错的原因。 #属性 tester_no_cache inFakeRange sinput uint Range = 2; void OnTesterInit( void ) { ::MathSrand((int)::TimeLocal()); const int Start = ::MathRand(); const int Step = ::MathRand(); const uint TmpRange = (::Range < 2) ? 2 : ::Range; ::ParameterSetRange("Range", true, TmpRange, Start, Step, Start + (TmpRange - 1) * Step); } fxsaber 2024.06.03 17:20 #409 klycko #:删除缓存内容的代码。 在 MTTester.mqh 中,当您进行大量单次运行时,就需要这样一个功能。 static bool DeleteLastTST( void ) { const string Path = ::TerminalInfoString(TERMINAL_DATA_PATH)+ "\\Tester\\cache\\"; string FileNames[]; const int Size = MTTESTER::GetFileNames(Path, "*.tst", FileNames); return(Size && kernel32::DeleteFileW(Path + FileNames[Size - 1])); } 如果将 tst 替换为 opt,就会删除最后一个 opt 文件。清理整个缓存文件夹似乎是多余的。 klycko 2024.06.03 18:19 #410 谢谢! 1...343536373839404142434445464748...56 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
发布优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。
上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。
谢谢!我会尽量准备好文件并发布出来。现在一切都还没有整理好。
上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。
下午好!
我已经准备好了文件并附在后面。
优化从 25.03 到 20.05.2024,时间框架 M1。
存款 17000。杠杆 40。复杂标准的最大值。
首先,我们需要清理 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹,以保证实验的纯净度。
为了优化 Nocturne 脚本,应该一次运行一个参数。
然后输出:
第一个参数:ProfitNow -1478 ParamMax 0.37(第一次)。
第二个参数: ProfitNow -379 ParamMax 30(第一次)。
第三个参数: ProfitNow -379 ParamMax 6(第一次)。
第三个参数:ProfitNow -379 ParamMax 6 重复使用。
对于第三个参数:ProfitNow -379 ParamMax 6 重复执行
第三个参数:ProfitNow -379 ParamMax 6 重复。
这表明第三个参数的数据缓存被挂起。
现在我们需要再次清除文件夹 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache
然后又是重复
第一个参数:ProfitNow -1478 ParamMax 0.37 第一次。
第二个参数:ProfitNow -379 ParamMax 30(第一次)。
第三个参数: ProfitNow -379 ParamMax 6(第一次)。
对于第三个参数:ProfitNow -379 ParamMax 6 重复使用。
对于第三个参数:ProfitNow -379 ParamMax 6 重复执行
重复第三个参数:ProfitNow -379 ParamMax 6
Nocturne 脚本的第 151-154 行按照您的指示说明了一切:
运行(Odinar);
int GLOC = MTTESTER::GetLastOptCache(Bytes); // 将 opt 文件存入字节数组 Bytes
TESTERCACHE<ExpTradeSummary> Cache;
bool CL = Cache.Load(Bytes); // 将字节数组输入 Cache
当然,错误就在我编写的代码中,但我还不知道如何修复它。
不过,我在实验中发现,如果在运行 Run 之前,手动删除 "C:\bytes "文件夹中的所有 opt 文件,就可以解决这个问题。
从 "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹中删除所有 opt 文件、
那么我的代码就能正常工作,并对所选参数进行优化。
如果不清理这个文件夹,测试器就不会重复执行优化(使用相同的不变数据),而是从这个文件夹中读出
已存在的选项文件。在手动重复运行相同优化时,可以清楚地看到这一点。
可以看出,实际优化只在第一次执行,然后才从文件夹中读取 opt 文件。
这种重复读取似乎不会更新缓存的内容,这就是导致我的代码出错的原因。
清除上述文件夹可能有助于解决该错误。当然,这是一个糟糕的解决方案,如果能在缓存中恢复正确的数据会更完美。
但我不知道该怎么做。目前,上一次真正优化的数据还挂在缓存中(与从文件夹中重新读取的数据不匹配)。
不幸的是,无法使用 FolderClean 从脚本中清理该文件夹,因为 MQL5 禁止这样做。
它不在 "沙箱 "中,只能由策略测试器填充。
也许您应该通过 C++ 创建一些外部插件,然后从脚本中运行它。
亚历山大
文本中的错误:
下午好!
准备好文件并附上。
从 2024 年 5 月 25 日到 2024 年 5 月 20 日在时间框架 M1 上进行优化。
存款 17000。杠杆 40。复杂标准的最大值。
首先,我们需要清理 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹,以保证实验的纯净度。
为了优化 Nocturne 脚本,应该一次运行一个参数。
然后输出:
第一个参数:ProfitNow -1478 ParamMax 0.37(第一次)。
第二个参数: ProfitNow -379 ParamMax 30(第一次)。
第三个参数:ProfitNow -379 ParamMax 6(第一次)。
对于第一个 参数:ProfitNow -379 ParamMax 6 重复使用。
对于第二个 参数:ProfitNow -379 ParamMax 6 重复执行
第三个 参数:ProfitNow -379 ParamMax 6 重复。
这表明数据缓存挂起在第三个参数上。
现在我们需要再次清除文件夹 "C:\Users\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache"。
然后又是重复
第一个参数:ProfitNow -1478 ParamMax 0.37 第一次。
第二个参数:ProfitNow -379 ParamMax 30(第一次)。
第三个参数: ProfitNow -379 ParamMax 6,第一次。
对于 第一个 参数:ProfitNow -379 ParamMax 6 重复使用。
对于 第二个 参数:ProfitNow -379 ParamMax 6 重复执行
第三个参数:ProfitNow -379 ParamMax 6 重复。
Nocturne 脚本的第 151-154 行按照您的指示说明了一切:
运行(Odinar);
int GLOC = MTTESTER::GetLastOptCache(Bytes); // 将 opt 文件存入字节数组 Bytes
TESTERCACHE<ExpTradeSummary> Cache;
bool CL = Cache.Load(Bytes); // 将字节数组输入 Cache
当然,错误就在我编写的代码中,但我还不知道如何修复它。
不过,我在实验中发现,如果在运行 Run 之前,手动删除 "C:\bytes "文件夹中的所有 opt 文件,就可以解决这个问题。
从 "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache "文件夹中删除所有 opt 文件、
那么我的代码就能正常工作,并对所选参数进行优化。
如果不清理这个文件夹,测试器就不会重复 执行优化(使用相同的不变数据),而是从这个文件夹中读出
已存在的选项文件。在手动重复运行相同优化时,可以清楚地看到这一点。
可以看出,实际优化只在第一次执行,然后才从文件夹中读取 opt 文件。
这种重复读取似乎不会更新缓存的内容,这就是导致我的代码出错的原因。
清除上述文件夹可能有助于解决该错误。当然,这是一个糟糕的解决方案,如果能在缓存中恢复正确的数据会更完美。
但我不知道该怎么做。目前,上一次真正优化的数据还挂在缓存中(与从文件夹中重新读取的数据不匹配)。
不幸的是,无法使用 FolderClean 从脚本中清理该文件夹,因为 MQL5 禁止这样做。
它不在 "沙箱 "中,只能由策略测试器填充。
也许您应该通过 C++ 创建一些外部插件,然后从脚本中运行它。
亚历山大
我已经发布了我的优化机器人,因为Nocturne是以它的参数列表为导向的。
但对于MQL5\Experts\Examples\MACD\MACD Sample.mq5 来说,它需要进行大量修改。
顺便问一下,为什么需要输入参数 int inNum = 0?
或者这只是一种习惯?
上传优化MQL5\Experts\Examples\MACD\MACD Sample.mq5 的代码。然后你可以尝试重现它。现在几乎没有建设性的工作了。
下午好!
在亚历山大-斯拉夫斯基(Alexander Slavsky)的帮助下,我成功地解决了所有问题:https://www.mql5.com/zh/users/s22aa。
他给我发了删除缓存内容的代码。
我无法直接清理缓存,因为它在沙盒之外。
也许有人会在运行运行程序之前使用它,这样过去的优化结果就不会干扰新的优化结果。
我附上了这个脚本。
你们的库和这个清理程序确保了我能够持续优化机器人。
非常感谢这些代码和你们的帮助。
亚历山大
已存在的优化文件。这一点在重复手动运行相同优化时可以清楚地看到。
你可以看到,真正的优化只在第一次进行,然后才从文件夹中读取 opt 文件。
这种重复读取似乎不会更新缓存的内容,这就是我的代码出错的原因。
#属性 tester_no_cache
inFakeRange
删除缓存内容的代码。
在 MTTester.mqh 中,当您进行大量单次运行时,就需要这样一个功能。
如果将 tst 替换为 opt,就会删除最后一个 opt 文件。清理整个缓存文件夹似乎是多余的。