mql4 - 我如何从策略测试器(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);
}
解决方案
实际上,这可以修复,但有一个限制 - 在较短时间范围内运行回测时,您只能请求较高时间范围的数据。例如,如果您要在 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 的逻辑,以便从较短的时间范围和较高的时间范围内工作,以进行回测。
推荐阅读
- c++ - 结构键和 getter 函数的哈希映射
- javascript - 如何对不总是具有属性的数组中的对象进行排序?
- javascript - 如何在骆驼到蛇案例转换功能上指定类型
- c++ - 计算字符串中的单词数
- javascript - ScrollView:高度和滚动的问题
- okhttp - Java 7 上的 Okhttp 出现连接重置
- java - 如何缓存返回相同对象列表但基于不同条件的方法?
- optuna - Optuna 会与同名但含义不同的超参数混淆吗?
- mysql - 无法删除或更新父行:更新外键时外键约束失败
- tensorflow - 在 Keras 中,Conv2DTranspose 和 Conv2D 有什么区别