文章 "可控优化: 模拟退火" - 页 2 12 新评论 Carl Schreiber 2018.03.20 12:43 #11 MetaQuotes Software Corp.:新文章:受控优化:模拟退火》一文已经发表:作者: Aleksey ZinovikAleksey Zinovik我还没有开始使用 mt5,但我猜想(可能会有一些改动和/或有条件的编译)我也可以在 mt4 的策略测试器中使用这个功能。mt4 的遗传优化有一个小问题,可能也存在于 mt5 中,可能也适用于你的方法。 如果我在 OnInit() 中检查参数集,发现实际参数集不值得检查,我就会从 OnInit() 返回INIT_PARAMETERS_INCORRECT。这样就不会进行优化,从而节省了时间: mt4 的遗传算法认为这是一次有效的通过 因此会增加计数器,这样 遗传算法停止的时间大大提前 (我认为停止的标准是运行次数和目标值的变化)。你有没有处理过这种情况?从 OnInit()返回尽管没有错误(如:找不到文件......),只是因为参数设置不应该被测试,在这种情况下,不应该增加数量和降低温度? 无论如何,感谢您提供这篇有趣的文章! 古利 Aleksey Zinovik 2018.03.20 17:08 #12 Carl Schreiber:我还没有开始使用 mt5,但我猜想(可能要做一些改动和/或有条件的编译),我也能在 mt4 的策略测试器中使用这个方法。mt4 的遗传优化有一个小问题,可能也存在于 mt5 中,而且可能也适用于您的方法。 如果我在 OnInit() 中检查参数集,发现实际参数集不值得检查,我就会从 OnInit() 返回INIT_PARAMETERS_INCORRECT。这样就不会进行优化,从而节省了时间:mt4 的遗传算法认为这是一次有效的通过 因此会增加计数器,这样 遗传算法停止的时间大大提前 (我认为停止的标准是运行次数和目标值的变化)。你有没有处理过这种情况?从 OnInit()返回,尽管没有出错(如:找不到文件......),只是因为不应该测试参数设置,而在这种情况下,参数设置不应该增加次数和降低温度?无论如何,感谢您提供这篇有趣的文章! 古利 我不检查参数的正确性,也不会在参数不正确时中断 OnInit() 函数。在 OnTesterInit() 函数中,需要使用策略测试器 进行优化的参数值将被禁止优化。在每次新的迭代中,都会从文件中读取参数,而在 OnTester() 函数中,新的参数值会写入文件。这样就可以不使用策略测试器生成的参数值,而是将必要的参数独立输出到 OnInit() 函数中。对不起,我的英语不好 Carl Schreiber 2018.03.20 18:01 #13 Aleksey Zinovik: 我不会检查参数的正确性,也不会在参数不正确时中断 OnInit() 函数。在 OnTesterInit() 函数中,需要使用策略测试器 进行优化的参数值将被禁止优化。在每次新的迭代中,都会从文件中读取参数,而在 OnTester() 函数中,新的参数值会写入文件。这样就可以不使用策略测试器生成的参数值,而是将必要的参数独立输出到 OnInit() 函数中。对不起,我的英语不好我现在明白了 - 谢谢!我只需在下一次迭代的参数设置写入文件之前,检查该设置的合理性,以便下一次运行。这样就可以避免 "我的问题 "了! 感谢您的建议和文章! nevar 2018.03.20 23:41 #14 您好、 您说"'可以通过开发一个通用模块来消除缺点,该模块将包括优化专家参数 的各种算法'"。 您能提供更多关于通用模块的详细信息吗? 还有哪些优化专家参数的算法? Aleksey Zinovik 2018.03.24 14:02 #15 nevar:嗨 、您说''可以通过开发一个通用模块来消除这些缺点,该模块将包括优化专家参数的各种算法''。您能提供有关通用模块的更多细节吗? 还有哪些优化专家参数的算法?这篇文章介绍了如何将新的优化算法连接到策略测试器。同样,在 AnnealingMethod.mqh 类中添加新方法或创建新类,也可以连接其他算法,例如蚂蚁算法(蚁群优化)。我计划测试此类算法并分享结果。 12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
新文章:受控优化:模拟退火》一文已经发表:
作者: Aleksey ZinovikAleksey Zinovik
我还没有开始使用 mt5,但我猜想(可能会有一些改动和/或有条件的编译)我也可以在 mt4 的策略测试器中使用这个功能。
mt4 的遗传优化有一个小问题,可能也存在于 mt5 中,可能也适用于你的方法。
如果我在 OnInit() 中检查参数集,发现实际参数集不值得检查,我就会从 OnInit() 返回INIT_PARAMETERS_INCORRECT。这样就不会进行优化,从而节省了时间:
你有没有处理过这种情况?从 OnInit()返回尽管没有错误(如:找不到文件......),只是因为参数设置不应该被测试,在这种情况下,不应该增加数量和降低温度?
无论如何,感谢您提供这篇有趣的文章!
古利
我还没有开始使用 mt5,但我猜想(可能要做一些改动和/或有条件的编译),我也能在 mt4 的策略测试器中使用这个方法。
mt4 的遗传优化有一个小问题,可能也存在于 mt5 中,而且可能也适用于您的方法。
如果我在 OnInit() 中检查参数集,发现实际参数集不值得检查,我就会从 OnInit() 返回INIT_PARAMETERS_INCORRECT。这样就不会进行优化,从而节省了时间:
你有没有处理过这种情况?从 OnInit()返回,尽管没有出错(如:找不到文件......),只是因为不应该测试参数设置,而在这种情况下,参数设置不应该增加次数和降低温度?
无论如何,感谢您提供这篇有趣的文章!
古利
我不会检查参数的正确性,也不会在参数不正确时中断 OnInit() 函数。在 OnTesterInit() 函数中,需要使用策略测试器 进行优化的参数值将被禁止优化。在每次新的迭代中,都会从文件中读取参数,而在 OnTester() 函数中,新的参数值会写入文件。这样就可以不使用策略测试器生成的参数值,而是将必要的参数独立输出到 OnInit() 函数中。
我现在明白了 - 谢谢!我只需在下一次迭代的参数设置写入文件之前,检查该设置的合理性,以便下一次运行。这样就可以避免 "我的问题 "了!
感谢您的建议和文章!
您好、
您说"'可以通过开发一个通用模块来消除缺点,该模块将包括优化专家参数 的各种算法'"。
您能提供更多关于通用模块的详细信息吗? 还有哪些优化专家参数的算法?
嗨 、
您说''可以通过开发一个通用模块来消除这些缺点,该模块将包括优化专家参数的各种算法''。
您能提供有关通用模块的更多细节吗? 还有哪些优化专家参数的算法?
这篇文章介绍了如何将新的优化算法连接到策略测试器。同样,在 AnnealingMethod.mqh 类中添加新方法或创建新类,也可以连接其他算法,例如蚂蚁算法(蚁群优化)。我计划测试此类算法并分享结果。