mql4 - 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;}
}
解决方案
修复了这个问题,这只是一个放置问题。通过设置
if(Period()==PERIOD_M1){IndicatorHTF=PERIOD_M5;}
实际上在我使用 IndicatorHTF 的交易逻辑中,它能够正确读取和设置值:)
推荐阅读
- c++ - 如何拆分嵌入在 C++ 分隔符中的字符串?
- python - 如何将 Xaxis(次)的格式更改为其他格式?Python - 熊猫 - Matplotlib
- amazon-ses - 代表用户发送电子邮件
- node.js - 有没有办法在 Node.js 中获取已加载模块的文件路径?
- javascript - Aws4 签署 S3 PUT 请求
- powershell - 将(年份)保存在重命名文件夹中
- c# - 有没有一种更简洁的方法可以像字典一样访问列表?
- java - Apache Spark 在完全分布式模式下对 Executors 采取行动
- python - ServiceNow REST API 集成:无法解码 JSON 对象
- c++ - 将类对象发送到模板类不起作用