【技术指标量化】平均趋向指数ADX和动向指数DMI

Discussion in 'Ricequant' started by tomorrow89, Nov 26, 2015.

  1. [什么是ADX]
    ADX(average directional indicator) 平均趋向指数,常用的趋势衡量指标。通常与趋向系统(DMI)一起使用,利用多空趋向之变化差离与总和判定平均趋势,ADX数值不能显示趋势的发展方向。但是如果趋势存在,ADX可以衡量趋势的强度。

    [ADX的计算方法(默认区间14天)]

    虽然我们有Talib,但是还是需要理解这个指标的含义才能更好的应用。
    Step 1. 计算Directional movement (动向变化值)

    +DM:当日最高价比昨日最高价高并且当日最低价比昨日最低价高,即为上升动向+DM。上升幅度为:当日最高价减去昨日最高价。
    -DM:当日最高价比昨日最高价低并且当日最低价比昨日最低价低,即为下降动向-DM。

    下降幅度为:昨日最低价减去今日最低价。


    Step 2 . 计算True Range (真实波幅)
    TR =∣最高价-最低价∣,∣最高价-昨收∣,∣昨收-最低价∣ 三者之中的最高值

    Step 3: 计算Directional Movment Index (动向指数)
    +DI(14) = +DM(14)/TR(14)*100
    -DI(14) = -DM(14)/TR(14)*100


    Step 4: 计算ADX
    DX是+DI与-DI两者之差的绝对值除以两者之和的百分数。
    [LaTex]DX=[(+DI14)-(-DI14)]/[(+DI14)+(-DI14)]*100[/LaTex]
    ADX是DX的14天平滑平均线。
    ADX = SMA(DX, 14)



    [ADX和DMI的一些解读]
    不论上升趋势或下降趋势,ADX的读数越大,趋势越明显。
    衡量趋势强度时,需要比较几天的ADX 读数,观察ADX究竟是上升或下降。ADX读数上升,代表趋势转强;如果ADX读数下降,意味着趋势转弱。
    当+DI14从下向上递增突破-DI14时,显示市场内部有新的多头买家进场,愿意以较高的价格买进,因此入场信号。当-DI14从下向上递增突破+DI14时,显示市场内部有新的空头卖家出货,愿意以较低卖出,为离场信号

    [策略思路]
    先尝试的是使用ADX = 20 和 ADX = 50 两根线作为判断trending开始和结束,在不同个股和时间段表现不稳定,退场信号不确定。所以改用ADX的相对上升下降来判断趋势。
    配合双均线信号一起用。在这里ADX更多是作为验证趋势是否会增强的信号使用,以避免在横盘中多次交易。

    在Ricequant (https://www.ricequant.com/)上面运行策略的表...red"]完整代码请往Ricequant ([url]www.ricequant.com) 量化社区

    https://www.ricequant.com/community/topic/273/[/COLOR]

    尝试一键克隆策略代码,去优化和调试出更好的表现。
    也欢迎大家指出各种不足和意见!
     
  2. thx