【MT5】获取指标数据函数MA/RSI
获取MA值的函数:
// 在OnCalculate函数中,获取移动平均线的值
int ma_handle = iMA(_Symbol, _Period, 21, 0, MODE_EMA, PRICE_CLOSE);
double ma_buffer[];
ArraySetAsSeries(ma_buffer, true);
CopyBuffer(ma_handle, 0, 0, 3, ma_buffer); // 复制最近3个值
// 在判断信号有效性时加入趋势过滤
if(engulfing_condition)
{
if(/* 是多头信号 */ && close[i] > ma_buffer[1]) // 当前收盘价在均线上方
{
// 确认有效多头信号
}
else if(/* 是空头信号 */ && close[i] < ma_buffer[1]) // 当前收盘价在均线下方
{
// 确认有效空头信号
}
}获取RSI值的函数:
// 获取RSI值
int rsi_handle = iRSI(_Symbol, _Period, 14, PRICE_CLOSE);
double rsi_buffer[];
ArraySetAsSeries(rsi_buffer, true);
CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer); // 复制最近3个值
// 在信号判断中加入RSI条件
if(engulfing_condition)
{
if(/* 是多头信号 */ && rsi_buffer[1] < 30) // 结合超卖条件
{
// 确认有效多头信号
}
else if(/* 是空头信号 */ && rsi_buffer[1] > 70) // 结合超买条件
{
// 确认有效空头信号
}
}

