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

能量潮指标(On Balance Volume)编程数据的获取

能量潮指标(On Balance Volume, OBV)是一种通过测量交易量的变化来预测价格变动趋势的技术分析工具。这个指标由Joe Granville在1963年发表,他的理念是:当股票的价格有上涨趋势时,交易量也会增加,反之,价格下跌时,交易量也会减少。因此,通过追踪交易量的积累可以发现可能的价格趋势。

OBV指标是MT4自带的技术指标之一,可以通过以下步骤在MT4平台上添加该指标:在mt4上方菜单栏依次点击-插入-技术指标-成交量-On Balance Volume,在出现的指标属性框中设置好相关参数后,点击“确定”即可将OBV插入到当前图表中。

能量潮指标(On Balance Volume)

在MT4平台上,要获取OBV指标数据,可以使用iOBV()函数。iOBV()函数的结构如下:

double iOBV(
   string symbol, // 交易品种名称 
   int timeframe, // 图表时间周期 
   int applied_volume, // 应用的交易量
   int shift // 指标索引/序号
);

其中参数说明:

  • symbol:交易品种名称,当前窗口货币对为Symbol(),要自行定义参数,可以参考 input string symname = “XAUUSD"; 之类。
  • timeframe:图表周期,指一分钟 M1 到月线 MN1 共 9 个图表周期。要自行定义参数,可以参考用 int 或者 ENUM_TIMEFRAMES,如:input ENUM_TIMEFRAMES Period_x = PERIOD_CURRENT; 0 和 PERIOD_CURRENT 都代表当前图表周期。
  • applied_volume:应用的交易量,默认为VOLUME_TICK,表示TICK交易量。如果需要自行定义,可以用 int 或 ENUM_APPLIED_VOLUME 来定义参数,如:input ENUM_APPLIED_VOLUME APP_VOLUME = VOLUME_TICK;之类。
  • shift:获取对应指标线的索引/序号,0指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…,这种规则排序。

获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的 OBV 值,参考代码:

double OBV_1 = iOBV(Symbol(), 0, VOLUME_TICK, 1);

跨图表获取黄金 XAUUSD 一小时 H1 图表中最新 0 号 K 线对应的 OBV 值,参考代码:

double XAUUSDOBV_0 = iOBV("XAUUSD", PERIOD_H1, VOLUME_TICK, 0);

同样,也可以获取美元兑日元USDJPY三十分钟 M30 图表中最新 0 号 K 线对应的 OBV 值,可以使用以下代码:

double USDJPYOBV_0 = iOBV("USDJPY", PERIOD_M30, VOLUME_TICK, 0);

如果你想要获取多个单位的OBV指标的值,可以定义数组并结合for()循环来编写。总的来说,OBV指标的编程并不复杂,只要根据实际的交易需求调整iOBV()函数的参数即可。

未经允许不得转载:ea编程网 » 能量潮指标(On Balance Volume)编程数据的获取