诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

相对活力指数RVI指标编程数据的获取

相对活力指数(RVI)是一种衡量价格变动活力的技术分析指标,其由John Ehlers开发。RVI的主要目的是通过比较多个时期内的收盘价与开盘价之差,评估市场活力的相对强度。RVI指标包括两条线:RVI主线和RVI信号线。

在MT4平台上,RVI指标是默认包含的技术指标之一,安装过程相对直接。你只需要依次点击MT4菜单栏上的“插入-技术指标-震荡指标-Relative Vigor Index”。在弹出的指标属性框中,你可以根据需要设置相关参数,然后点击“确定”,RVI指标就会出现在当前图表上。

相对活力指数RVI

要获取RVI指标的数据,可以使用iRVI()函数。iRVI()函数的结构如下:

double iRVI(
string symbol, // 交易品种名称 
int timeframe, // 图表时间周期 
int period, // 指标计算的平均周期值 
int mode, // 模式(MODE_MAIN, MODE_SIGNAL),也就是获取哪根线 
int shift // 指标索引/序号
);

参数说明:

  • symbol:交易品种名称,当前窗口货币对为Symbol(),你也可以自定义参数,例如input string symname = “USDJPY”
  • timeframe:图表周期,指一分钟 M1 到月线 MN1 共 9 个图表周期。你可以自定义参数,如:input ENUM_TIMEFRAMES Period_x = PERIOD_M30;。其中,PERIOD_M30表示30分钟周期。
  • period:指标计算的平均周期值参数,默认是10,你可以自行定义参数,例如input int rvi_period = 10;
  • mode:获取指标线的类型,有MODE_MAIN(RVI主线)、MODE_SIGNAL(RVI信号线)。
  • shift:获取对应指标线的索引/序号,0指当前最新K线所对应的值,然后从右往左分别是1、2、3、4…。

举例获取USDJPY三十分钟图表中最新0号K线对应的RVI主线和信号线值,参考代码:

double USJPYRVI_0 = iRVI("USDJPY", PERIOD_M30, 10, MODE_MAIN, 0); // RVI主线
double USJPYRVISignal_0 = iRVI("USDJPY", PERIOD_M30, 10, MODE_SIGNAL, 0); // RVI信号线

如果你想获取多个周期的RVI和RVI信号线值,可以使用数组结合for循环来实现。例如,你可以创建一个数组来存储你关注的周期,然后使用for循环来遍历这个数组,获取每个周期的RVI值:

int periods[] = {5, 10, 15, 20, 30};
for (int i=0; i<ArraySize(periods); i++) {
    double rvi_main = iRVI("USDJPY", periods[i], 10, MODE_MAIN, 0);
    double rvi_signal = iRVI("USDJPY", periods[i], 10, MODE_SIGNAL, 0);
    Print("The RVI main line value for period ", periods[i], " is ", rvi_main);
    Print("The RVI signal line value for period ", periods[i], " is ", rvi_signal);
}

这段代码将会打印出每个你关注的周期的RVI主线和信号线值。

总的来说,RVI指标的编程并不复杂。只要理解了iRVI()函数的参数和使用方法,就可以灵活地在你的MT4编程中使用RVI指标。

未经允许不得转载:ea编程网 » 相对活力指数RVI指标编程数据的获取