代码之家  ›  专栏  ›  技术社区  ›  Fr4nz

如果不满足约束条件,如何跳过MT4 StrategyTester优化模式中的一些输入参数设置?

  •  0
  • Fr4nz  · 技术社区  · 8 年前

    P1 [1..10], P2 [1..10] P3 [3..10] 。限制因素如下: P1 < P2 < P3 .

    如果不遵守约束条件,应立即放弃一些潜在的解决方案。比如当 P1 = 2 , P2 = 1 P3 = 4 .

    有没有办法通过MetaTrader优化来完成这样的事情?
    OnTesterPass() 功能?)

    由于这个原因,我在优化过程中损失了很多时间,我想找到一种方法,在不考虑约束的情况下,放弃或直接跳过潜在的解决方案。

    1 回复  |  直到 8 年前
        1
  •  2
  •   user3666197    8 年前
    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 Strategy Tester]将直接进入下一组参数。

    你不需要 OnTesterPass() 因为它是在测试完成后调用的, OnInit()