首页 > 解决方案 > Timeframe 作为变量,声明类型是什么?

问题描述

我正在开发 MQL4 专家顾问。该顾问对其信号和进入/退出使用 2 个单独的时间框架。到目前为止,我一直使用“输入”来允许用户为更高的时间范围指标选择所需的时间范围。

我想删除该选项,并在我的代码中自动设置优化的对。我正在尝试启动一个变量“IndicatorTF”,然后为它分配一个所需时间范围的值。

我的代码的所有其他部分都运行得很好,但是以编程方式设置和更改时间范围对我来说是新的。

如果我尝试全局初始化变量“IndicatorHTF”,然后在“On Init”中实际设置值,我会收到一条错误消息,指出我无法更改常量。但是,如果我直接在“On Init”中设置“IndicatorHTF”变量,就在实际使用它之前,我会收到一个声明错误,因为我似乎找不到正确的类型。

我意识到它不是 bool、int、double 或 string,但我不知道我应该使用什么作为类型。

我试过什么:
1)

//Globally
ENUM_TIMEFRAMES IndicatorHTF; //with sinput,bool,string,etc
int OnInit()
{
   if(Period()==PERIOD_M1){resolution=PERIOD_M5;}
}

2)

int OnInit()
{
   ENUM_TIMEFRAMES IndicatorHTF;  //with sinput,bool,string,etc
   if(Period()==PERIOD_M1){resolution=PERIOD_M5;}
}

标签: mql4mt4

解决方案


修复了这个问题,这只是一个放置问题。通过设置

if(Period()==PERIOD_M1){IndicatorHTF=PERIOD_M5;}  

实际上在我使用 IndicatorHTF 的交易逻辑中,它能够正确读取和设置值:)


推荐阅读