MQL5中,如何获得4小时蜡烛图的数据?
时间: 2024-09-09 19:02:02 浏览: 18
在MQL5中,获取4小时蜡烛图的数据通常通过`SymbolInfo()`函数来获取历史数据的时间范围,然后使用`History()`函数请求特定周期的历史数据。以下是基本步骤:
1. 首先,确定你要查询的货币对符号(例如,“EURUSD”)以及你想要的数据开始日期。你可以用`TimeSeries()`函数获取当前可用的最大时间和最小时间。
```c++
string symbol = "EURUSD";
double from = TimeSeries("D", 0); // "D"代表日线,如果你想从最近的4小时开始,可以用"HH:MM"替换
```
2. 然后,调用`SymbolInfo()`函数获取4小时蜡烛图数据的间隔(Interval),因为不是所有市场都提供所有时间周期。
```c++
int interval = SymbolInfo(symbol,SYMBOL_TIMEFRAMES);
if (interval == PERIOD_H1) {
interval = PERIOD_4H; // 如果需要4小时,这里将PERIOD_H1替换为PERIOD_4H
}
```
3. 使用`from`和`interval`作为参数,调用`History()`函数来获取4小时蜡烛图数据。记得设置适当的长度,比如获取过去30根蜡烛的数据。
```c++
int barsCount = 30;
double to = Time();
to -= barsCount * interval;
double* buffer = new double[barsCount];
int num所得数据点 = History(symbol, from, to, timeframe(interval), MODE_BID, buffer, barsCount, NULL, 0);
```
4. 最后,处理返回的数据,如存储到数组、绘制图表或者进一步分析。
```c++
for (int i = 0; i < num所得数据点; i++) {
double closePrice = buffer[i]; // 获取第i根蜡烛的收盘价
// ... 对数据进行操作
}
delete[] buffer; // 释放内存
```