我正在使用MQL4。
目前,我在 MT4.StrategyTester 中使用 [Expert Advisor]-s,并通过内置的下拉日历 GUI 元素设置一个时间段。
我想做的是直接在MQL4源代码中设置一个时间段。
如果实现了,例如,我可以比较结果
'from 2011/01-to 2011/12'
至
'from 2012/01-to 2012/12'
等等。
我正在使用MQL4。
目前,我在 MT4.StrategyTester 中使用 [Expert Advisor]-s,并通过内置的下拉日历 GUI 元素设置一个时间段。
我想做的是直接在MQL4源代码中设置一个时间段。
如果实现了,例如,我可以比较结果
'from 2011/01-to 2011/12'
至
'from 2012/01-to 2012/12'
等等。
该要求有一个简单的解决方案,即使在所述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 限制:
APrintFormat()
是超参数优化期间 StrategyTester 中此类不受支持的部分之一。
PrintFormat()
功能在策略测试器中的优化期间不起作用。