如果不满足约束,如何跳过 MT4 StrategyTester 优化模式中的某些输入参数集?
How to skip some input parameters' set in MT4 StrategyTester optimization mode, if constraints were not met?
我有 3 个不同的输入参数:P1 [1..10], P2 [1..10]
和 P3 [3..10]
。约束如下:P1 < P2 < P3
.
当不遵守约束条件时,应立即丢弃一些可能的解决方案。例如当 P1 = 2
、P2 = 1
和 P3 = 4
.
有没有办法通过 MetaTrader 优化来完成这样的事情?
(最终使用 OnTesterPass()
函数?)
因此,我在优化过程中浪费了很多时间,我想找到一种方法,在不遵守约束的情况下直接丢弃或跳过潜在的解决方案。
感谢您的帮助
int OnInit(){
if(P1<P2 && P2<P3){} // OK
else{
printf("%i %s - parameters SKIPPED, !(P1<P2<P3)",__LINE__,__FUNCTION__);
return(INIT_FAILED);
}
}
就这些。
优化期间未调用 printf()
。
INIT_FAILED
或 INIT_PARAMTERS_INCORRECT
停止特定集的优化和 [ MT4 策略测试器] 直接进入下一组参数。
你不需要 OnTesterPass()
因为它是在测试完成后调用的,OnInit()
在将一组新的优化参数输入到这样的测试中时会自动调用事件处理程序 运行.
我有 3 个不同的输入参数:P1 [1..10], P2 [1..10]
和 P3 [3..10]
。约束如下:P1 < P2 < P3
.
当不遵守约束条件时,应立即丢弃一些可能的解决方案。例如当 P1 = 2
、P2 = 1
和 P3 = 4
.
有没有办法通过 MetaTrader 优化来完成这样的事情?
(最终使用 OnTesterPass()
函数?)
因此,我在优化过程中浪费了很多时间,我想找到一种方法,在不遵守约束的情况下直接丢弃或跳过潜在的解决方案。
感谢您的帮助
int OnInit(){
if(P1<P2 && P2<P3){} // OK
else{
printf("%i %s - parameters SKIPPED, !(P1<P2<P3)",__LINE__,__FUNCTION__);
return(INIT_FAILED);
}
}
就这些。
优化期间未调用 printf()
。
INIT_FAILED
或 INIT_PARAMTERS_INCORRECT
停止特定集的优化和 [ MT4 策略测试器] 直接进入下一组参数。
你不需要 OnTesterPass()
因为它是在测试完成后调用的,OnInit()
在将一组新的优化参数输入到这样的测试中时会自动调用事件处理程序 运行.