【一次认识一个市场技术指标】之KDJ(随机指标)

点上方蓝字关注,开启量化学习之旅~



一次认识一个市场技术指标

  每次只需花费五分钟左右即可了解金融衍生品市场中一个常用的技术指标,包括这个技术指标的作用、计算方法、实际应用以及代码实现,以便以后再次遇到这个指标不会再陌生。

指标介绍

(螺纹rb2001)

KDJ称为随机指标(KDJ Index)。它是由George Lane(乔治 莱恩)首创,KDJ指标最早用于期货市场的分析,现在常用于股市的中短期趋势分析以及超买超卖判断,是期货和股票市场中最常用的技术指标之一。它在计算的时候,主要是研究最高价、最低价以及收盘价之间的关系,同时也结合了动量观念、强弱指标以及移动平均的特点,所以可以更加全面地判断当前行情。

KDJ指标由三根线组成(如上图所示),其中移动速度最快的是J线其次是K线最慢的是D线。具体的计算原理可以参考后面的计算方式。

KDJ指标在应用时,主要是从K、D、J值三者的大小或者是三条曲线之间的关系进行行情的判断。

一般情况下,如果K、D、J值都大于50时,则为多头市场,后期看涨;反之,K、D、J值都小于50时,为空头市场,后期看跌。但是当KDJ值大于或者小于一定范围时,容易出现钝化的现象,也就是变化不明显,所以也需要结合其他指标进行分析。

或者从三条曲线的关系上,当多头情况下,J线大于K线,K线大于D线并出现交叉(金叉)时,意味着上涨趋势,此时的信号类似双均线策略原理,是一种买入信号;相反,空头情况下,则意味着下跌趋势,是一种卖出信号。

计算方式

KDJ指标在计算时,需要先计算N周期的RSV值(未成熟随机指标),然后再计算K、D、J值:

其中,Close(N)、Low(N)、High(N)分别代表了第N日的收盘价,N日内的最低价和最高价,得到的RSV就是当前的未成熟随机值RSV(t)。
接着,计算K值和D值以及J值:

如果前一日的K、D值没有,可以用50来代替。

通常情况下,N的取值一般是9,K值和D值计算时的权重是2/3和1/3,这个也可以进行调整。

代码实现

python代码实现:

import numpy as np
import pandas as pd


def cal_KDJ(close, low, high, N=9, M1=3, M2=3):
    datalen=len(close)
    kdj_list=[]
    for i in range(datalen):
        if i-N<0:
            kdj_list.append(None)
        else:
            # 计算RSV
            c = close[i]
            l = min(low[i-N:i])
            h = max(high[i-N:i])
            rsv = ((c - l) / (h - l))*100
            if i - N == 0:
                k_ = 50
                d_ = 50
            k = (2/M1)*k_ + (1/M1)*rsv
            d = (2/M2)*d_ + (1/M2)*k
            j = 3*k - 2*d
            kdj_list.append((k,d,j))
            k_ = k
            d_ = d
    return kdj_list


if __name__ == '__main__':
    df = pd.read_csv('./000001.csv')
    KDJ = cal_KDJ(df['Close'], df['Low'], df['High'])
    print(KDJ)


「 往期文章 」

【一次认识一个市场技术指标】之RSI(相对强弱指标)

【一次认识一个市场技术指标】之ATR(真实波幅指标)

vn.py实现日内经典策略R-breaker

vn.py源码解析之布林通道(BollChannel)策略

vn.py 源码解析之 ATR_RSI 策略

vn.py进行SpreadTrading价差交易

vn.py源码解析之双均线策略以及策略底层实现

了解更多人工智能与
量化金融知识

<-请扫码关注

让我知道你在看

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值