首页 > 解决方案 > 我如何从策略测试器(MT4)中的周期设置以外的时间范围获取数据

问题描述

我想知道如何从 Strategy Tester(MetaTrader4 交易终端的一部分)中的周期设置以外的时间范围获取数据,使用下面的示例代码,op2每当EMA2我选择M5除策略测试器。

我该如何解决?

  void OnTick()
  {  
       string print = "\n\n\n\n\n\n" +
                      "\n op1= "   + iOpen(NULL,PERIOD_CURRENT,0) +
                      "\n op2= "   + iOpen(NULL,PERIOD_M5,0) +
                      "\n EMA1 : " +   iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,0) +
                      "\n EMA2 : " +   iMA(NULL,PERIOD_M5,21,0,MODE_EMA,PRICE_CLOSE,0);
    
       Comment(print);        
  }

在此处输入图像描述

标签: mql4algorithmic-tradingmetatrader4forexmt4

解决方案


实际上,这可以修复,但有一个限制 - 在较短时间范围内运行回测时,您只能请求较高时间范围的数据。例如,如果您要在 M5 上运行回测,这将返回非零值:

  void OnTick()
  {  
       string print = "\n\n\n\n\n\n" +
                      "\n op1= "   + iOpen(NULL,PERIOD_CURRENT,0) +
                      "\n op2= "   + iOpen(NULL,PERIOD_M15,0) +
                      "\n EMA1 : " +   iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,0) +
                      "\n EMA2 : " +   iMA(NULL,PERIOD_M15,21,0,MODE_EMA,PRICE_CLOSE,0);
    
       Comment(print);        
  }

幸运的是,通常可以重写 EA 的逻辑,以便从较短的时间范围和较高的时间范围内工作,以进行回测。


推荐阅读