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

移动平均振荡指标(OSMA)编程数据的获取

移动平均振荡指标(OSMA)是一种流行的技术分析工具,用于识别市场趋势的变化。OSMA的计算基于MACD和其信号线之间的差距,因此它被视为MACD的派生工具。OSMA的主要作用是帮助交易员确定市场动态,以及市场可能的过度买入和过度卖出状况。

OSMA是MT4自带的技术指标之一,你可以通过mt4上方菜单栏点击-插入-技术指标-震荡指标-Moving Average of Oscillator,在出现的指标属性框中设置相关参数后,点击“确定”即可将OSMA插入到当前图表中。

移动平均振荡指标(OSMA)

要在MT4平台上获取OSMA指标的数据,你可以使用iOsMA()函数。这个函数的结构如下:

double iOsMA(
   string symbol,    // 交易品种名称
   int timeframe,    // 图表时间周期
   int fast_ema_period, // 快速EMA周期
   int slow_ema_period, // 慢速EMA周期
   int signal_period, // 信号线周期
   int applied_price, // 应用价格
   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 都代表当前图表周期。
  • fast_ema_period:快速EMA周期,默认为12。
  • slow_ema_period:慢速EMA周期,默认为26。
  • signal_period:信号线周期,默认为9。
  • applied_price:应用价格,指收盘价、最高价、最低价等。默认用的是 PRICE_CLOSE。如果需要自行定义,可以用 int 或 ENUM_APPLIED_PRICE 来定义参数,如:input ENUM_APPLIED_PRICE APP_PRICE = PRICE_CLOSE;之类。
  • shift:获取指标的位移,0指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…,这种规则排序。

要获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的 OSMA 值,可以使用以下代码:

double OSMA_1 = iOsMA(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, 1); 

要跨图表获取黄金 XAUUSD 一小时 H1 图表中最新 0 号 K 线对应的 OSMA 值,可以使用以下代码:

double XAUUSDOSMA_0 = iOsMA("XAUUSD", PERIOD_H1, 12, 26, 9, PRICE_CLOSE, 0);

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

double USDJPYOSMA_0 = iOsMA("USDJPY", PERIOD_M30, 12, 26, 9, PRICE_CLOSE, 0);

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

未经允许不得转载:ea编程网 » 移动平均振荡指标(OSMA)编程数据的获取