ADXR量化指标计算公式

  • 指标介绍 ADXR指标(Average Directional Movement Index Rating)是根据ADX指标(Average Directional Index)计算得出的一个指标,用于衡量市场趋势的强度。它是J. Welles Wilder开发的技术分析工具之一

  • 指标作用 ADXR指标的作用是帮助交易者确定市场趋势的强度和方向。它通过计算ADX指标的平均值来平滑ADX的波动,使其更容易被观察和理解。

  • 指标公式 ADXR指标的计算公式如下: ADXR = (ADX1 + ADX2) / 2 其中,ADX1为当前的ADX指标值,ADX2为前一周期的ADX指标值。 ADXR指标的取值范围为0到100,数值越高表示市场趋势越强。一般来说,当ADXR指标在20以下时,市场趋势较弱;当ADXR指标在20到40之间时,市场趋势较强;当ADXR指标在40以上时,市场趋势非常强。 交易者可以根据ADXR指标的数值判断市场的趋势强度,并结合其他技术指标和图表模式进行交易决策。例如,当ADXR指标上升时,表示市场趋势正在加强,交易者可以考虑加大头寸;当ADXR指标下降时,表示市场趋势正在减弱,交易者可以考虑减少头寸或离场。 需要注意的是,ADXR指标并不能单独作为交易决策的依据,交易者还需要综合考虑其他因素来做出准确的判断。

  • 参考网址:歪枣网

好的,以下是用 Java 编写股票 DMI 指标中的 ADXADXR 计算的代码: ```java public class DMIIndicator { // 计算ADX public static double[] adx(double[] high, double[] low, double[] close, int period) { double[] tr = new double[high.length]; double[] atr = new double[high.length]; double[] pdi = new double[high.length]; double[] mdi = new double[high.length]; double[] dx = new double[high.length]; double[] adx = new double[high.length]; // 计算TR和ATR for (int i = 1; i < high.length; i++) { double h_l = high[i] - low[i]; double h_pc = Math.abs(high[i] - close[i - 1]); double l_pc = Math.abs(low[i] - close[i - 1]); tr[i] = Math.max(h_l, Math.max(h_pc, l_pc)); atr[i] = ((period - 1) * atr[i - 1] + tr[i]) / period; } // 计算PDI和MDI for (int i = period + 1; i < high.length; i++) { double pdm = high[i] - high[i - 1]; double mdm = low[i - 1] - low[i]; pdi[i] = 100 * ((period - 1) * pdi[i - 1] + pdm) / (period * atr[i]); mdi[i] = 100 * ((period - 1) * mdi[i - 1] + mdm) / (period * atr[i]); } // 计算DX for (int i = 2 * period; i < high.length; i++) { double di_diff = Math.abs(pdi[i] - mdi[i]); double di_sum = pdi[i] + mdi[i]; dx[i] = 100 * (period * dx[i - 1] + di_diff / di_sum) / (period + 1); } // 计算ADX for (int i = 2 * period; i < high.length; i++) { adx[i] = ((period - 1) * adx[i - 1] + dx[i]) / period; } return adx; } // 计算ADXR public static double[] adxr(double[] high, double[] low, double[] close, int period) { double[] adx = adx(high, low, close, period); double[] adxr = new double[high.length]; for (int i = 2 * period; i < high.length; i++) { adxr[i] = (adx[i] + adx[i - period]) / 2; } return adxr; } } ``` 使用方法: ```java double[] high = {10.0, 11.0, 12.0, 13.0, 14.0}; double[] low = {9.0, 10.0, 11.0, 12.0, 13.0}; double[] close = {9.5, 10.5, 11.5, 12.5, 13.5}; int period = 14; double[] adx = DMIIndicator.adx(high, low, close, period); double[] adxr = DMIIndicator.adxr(high, low, close, period); ``` 其中,`high`、`low`、`close` 分别是股票的最高价、最低价和收盘价,`period` 是计算周期。`adx` 和 `adxr` 分别是计算出来的 ADXADXR 数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值