mql5实现atr指标
时间: 2024-04-07 17:34:04 浏览: 141
在MQL5中,你可以使用`iATR()`函数来计算ATR指标(Average True Range)。以下是一个示例代码,展示了如何在MQL5中实现ATR指标的计算:
```mql5
#property indicator_chart_window
input int period = 14; // ATR周期
double atrBuffer[];
int OnInit()
{
// 设置指标绘图参数
IndicatorSetString(INDICATOR_SHORTNAME, "ATR");
IndicatorSetInteger(INDICATOR_DIGITS, MarketInfo(Symbol(), MODE_DIGITS));
// 初始化缓存数组
ArraySetAsSeries(atrBuffer, true);
return(INIT_SUCCEEDED);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// 计算ATR指标
int limit = rates_total - prev_calculated;
for (int i = 0; i < limit; i++)
{
atrBuffer[i] = iATR(Symbol(), Period(), period, i);
}
return(rates_total);
}
```
这是一个自定义指标脚本的示例,将ATR指标值存储在`atrBuffer`数组中。你可以将该代码保存为.mq5文件,并将其添加到你的MetaTrader 5图表中作为自定义指标来使用。
请注意,这只是一个ATR指标的计算示例,你可以根据自己的需求进行修改和扩展。在实际使用中,你可以根据需要使用ATR指标的数值进行进一步的逻辑判断和交易决策。
阅读全文