交易信息大全
2026币圈信息集合

FMZ量化交易DMI 指标的计算与应用

欧意OKX  币安Binance  芝麻开门GATE

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.promooboost.com/join/1837888   币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gateport.business/share/XgRDAQ8

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

FMZ量化交易平台邀请链接:https://www.fmz.com/

DMI 指标的计算与应用

指标简介

DMI指标又叫动向指标或趋向指标,其全称叫“Directional Movement Index,简称DMI”,
也是由美国技术分析大师威尔斯·威尔德(Wells Wilder)所创造的,是一种中长期股市技术分析(Technical Analysis)方法。
DMI指标是通过分析股票价格在涨跌过程中买卖双方力量均衡点的变化情况,
即多空双方的力量的变化受价格波动的影响而发生由均衡到失衡的循环过程,从而提供对趋势判断依据的一种技术指标。
  • 指标计算

    最近有不少量化圈的朋友咨询我,在发明者量化交易平台上如何使用DMI指标。开始以为是很简单的问题,顺手就打开了API 文档查找这个指标函数。发现万能的 talib 指标库中没有这个指标。赶忙百度、知乎…一顿操作猛如虎后,找到了一些指标的资料。
    发现这个指标是由四个指标组合而成,算法不是很复杂,干脆动手按照资料上的算法写一下。

    范例地址: https://www.fmz.com/strategy/154050

  • 指标源码帖一下
    // 指标函数
    function ADX(MDI, PDI, adx_period) {
        if(typeof(MDI) == "undefined" || typeof(PDI) == "undefined"){
            return false
        }
    
        if(MDI.length < 10 || PDI.length < 10){
            return false
        }
    
        /*
        DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
        ADX = sma(DX, len)
        */
    
        var dx = []
        for(var i = 0; i < MDI.length; i++){
            if(!MDI[i] || !PDI[i]){
                continue
            }
            var dxValue = Math.abs((PDI[i] - MDI[i])) / (PDI[i] + MDI[i]) * 100
            var obj = {
                Close : dxValue,
            }
            dx.push(obj)
        }
    
        if(dx.length < adx_period){
            return false
        }
    
        var adx = talib.SMA(dx, adx_period)
    
        return adx
    }
    
    function DMI(records, pdi_period, mdi_period, adxr_period, adx_period) {
        var recordsHLC = []
        for(var i = 0; i < records.length ; i++){
            var bar = {
                High : records[i].High,
                Low : records[i].Low,
                Close : records[i].Close,
            }
            recordsHLC.push(bar)
        }
    
        var m_di = talib.MINUS_DI(recordsHLC, mdi_period)
        var p_di = talib.PLUS_DI(recordsHLC, pdi_period)
    
        var adx = ADX(m_di, p_di, adx_period)
    
        // ADXR=(当日的ADX+前n日的ADX)÷2
        var n = 0
        var adxr = []
        for (var j = 0 ; j < adx.length; j++) {
            if (typeof(adx[j]) == "number") {
                n++
            }
    
            if (n >= adxr_period) {
                var currAdxr = (adx[j] + adx[j - adxr_period]) / 2
                adxr.push(currAdxr)
            } else {
                adxr.push(NaN)
            }
        }
    
        return [m_di, p_di, adx, adxr]
    }
    
  • 对比用发明者量化的画线类库,很轻松的画出图表,可以对比下其他图表上的DMI

    1784d6d43cbdf21691f2

    1714db31a1ac8b47e27d

    对比了几根Kbar上的指标值,数值基本一致(略微四舍五入的偏差)。

  • 使用直接使用 DMI 这个函数(例如范例中 main 函数中调用的方式),传入K线数据,设置指标参数,一般都是14。
    函数返回的数据是一个二维数组,分别代表四条线。

    • DI- : m_di,
    • DI+ : p_di,
    • ADX : adx,
    • ADXR: adxr,

    DMI指标中 这四条线,其中DI-,DI+ 是多空指标,体现了多空双方的力量。
    ADX和ADXR是一对一起使用的指标线,是趋向指标,体现了目前行情的趋势和方向。

    DI+ ,指标数值越高,显示当前市场多头越强,反之多头越弱。
    DI- ,指标相反。
    DI+,DI-往往是交织在一起,之间数值越近代表市场处于盘整僵局中。反之说明趋势型增强。

    • 信号1、寻底

      经过长期下跌,若短期满足以下条件,说明短期底部已经探明,可能出现超跌反弹或反转。

      • 1、代表多头力量的DI+线在10以下,处于超跌位置向上拐头,DI—线在高位。
      • 2、代表趋势的ADX线在65以上较高的位置,向下拐头并与ADXR线形成死叉。

      2、探顶

      经过长期上涨,若短期满足以下条件,说明短期顶部已经探明,可能出现短期调整或反转。

      • 1、代表空头力量的DI—线在10以下,处于低位并向上拐头,DI+线在高位。
      • 2、代表趋势的ADX线在65以上较高的位置,向下拐头并与ADXR线形成死叉。

      3、起势

      走势经过一段时间的波动,DMI四条指标线在低位相互缠绕,之后忽然出现涨幅超5%的放量长阳k线,
      DI+线在两日内连续上穿DI-线、ADX线与ADXR线,代表新的上升趋势将要形成。DI+线上穿最后一根指标线即可买入。

FMZ量化交易平台邀请链接:https://www.fmz.com/

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意,邀请链接:https://www.promooboost.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!。

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gateport.business/share/XgRDAQ8

买好币上币库:https://www.kucoin.com/r/1f7w3

火必所有用户现在可用了,但是要重新注册账号火币https://www.huobi.com

全球最大交易所币安

国区邀请链接: 支持86手机号码,网页直接注册。

赞(0)
未经允许不得转载:2026币圈信息集合 » FMZ量化交易DMI 指标的计算与应用