如何在MQL4源代码中设置一段时间?

时间:2016-11-10 09:45:17

标签: algorithmic-trading mql4 metatrader4 mt4

我正在使用 MQL4

目前,我在MT4.StrategyTester中使用[Expert Advisor] -s,并通过内置下拉日历GUI元素设置一段时间。

我想要做的是在 MQL4 源代码中直接设置一段时间。

如果实现了,例如,我可以比较结果

'from 2011/01-to 2011/12' 

'from 2012/01-to 2012/12'

等等。

1 个答案:

答案 0 :(得分:1)

即使在上述 MT4.StrategyTester 工具内使用建议的参数对进行全自动,大规模超参数优化的附加值,也可轻松解决该要求( aStartFromDATE aRunTillDATE 作为可迭代的元组,可以用于TradingStrategy稳健性交叉验证它的发布候选人在一些席卷/滑动的日历窗口中。

extern datetime aStartFromDATE = D'2010.01.01 00:00';
extern datetime   aRunTillDATE = D'2345.01.01 00:00';

void OnTick(){
     if (  Time < aStartFromDATE
        || Time >   aRunTillDATE
           ){
           IgnoreTicksOutsideTheGivenPeriodOfTime();
           return;
     }
  // SURE TO BE INSIDE THE GIVEN ( MT4.STRATEGY/TESTER ITERABLE ) PERIOD OF TIME
     ...
     ..
     .
}
void IgnoreTicksOutsideTheGivenPeriodOfTime(){
  // Ignore, but still may do execute some utility service during a void run
}

请注意不同的语法支持范围:

人们可能对用例也持谨慎态度,其中包括一些强大的新语法构造函数的StrategyTester限制:

在超参数优化期间,PrintFormat()是StrategyTester内部此类不受支持的部分之一。

在策略测试程序中优化期间,

PrintFormat() 功能无效。