KDJ的完整中文名称是随机摆动指标,是短线交易者最常用的指标之一。作为应用最广泛的指标之一,KDJ的用法网上随处可见,但大部分介绍都只会告诉你超买超卖,金叉死叉,详细点的讲讲背离和钝化,至于为什么这么用,几乎没人去剖析背后的原理。这篇文章讲带你从算法和概率的角度,探究KDJ的底层逻辑。
KDJ的算法总共分成三步:
第一步求出未成熟随机值RSV,公式是:
这个公式,直白的表述就是求出当前价格在过去N个周期最高点和最低点的位置,以百分比计数。
第二步是对RSV进行平滑计算得到K值,再对K值进行平滑计算得到D值,其算法都是取三分之二个前值加上三分之一时下值作为当前值。
这里有两个意义,一个是RSV作为初始值,数据波动频率太过频繁,作为指标,需要适当对数据进行平滑运算,经过削峰平谷平滑后的数据更加具有趋势指示性。
另一个意义第一次平滑是让RSV看起来相对平滑,可以作为快速趋势值,再次平滑K值得到的D值是让趋势更加平缓,把D值当作一个慢速趋势值,通过观察快慢两个平滑值的关系,就能比较清晰的判断当下的形势。第三步是对快(K值)慢(D值)值的差值进行放大,得到J值,J值的作用是观测快慢线之间的距离和变化。J值的计算公式是:J=3K-2D,这个公式实际上是:J=K+(K-D)×2,也就是以K值为基础,加上KD差的放大倍数,目的是为了观察KD之间的关系。这与MACD中的MACD=(DIF-DEA)×2一个道理,只是坐标系统不一样,所以加了K值做为基础而已。理解了KDJ的算法,接下来我们探讨一下KDJ指标解决了什么问题?
通过算法我们可以总结出KDJ指标的本质:KDJ指标指示的是当下价格在过去N个周期震荡区间的平滑位置。这个位置的作用,可以理解为在价格运行的方向在震荡区间中的摆动力道。我们可以通过观察KD值的方向和差距(也就是J值)来观察价格运行的方向和力道。
理解了KDJ的计算原理和本质,最后我们通过观测KDJ的表现,总结出以下几个指标特性:
1、KDJ考虑的是区间最高最低与当前价格的关系,如果K线的上下影把区间撑大,或者周期平移导致区间缩小,RSV的数值会失真。比如一段上涨趋势,最后一根K线如果拉出长上影,但收盘价格比昨天高,这时候指标值反而会比昨天低,反之亦然,这种情况下极容易产生KDJ背离,连续背离则会形成钝化。所以底部金叉和顶部死叉并不能完全指示交易机会,需要结合K线进行判断。
2、持续阴跌或持续小涨也会导致KDJ产生钝化,在钝化的情况下会导致金叉死叉连续失效,所以出现KDJ钝化不要轻易进场离场。
3、KD值平滑计算的函数是SMA,SMA均线的最大特点是敏感度特别高,走平和拐头只需要一个相对大于或小于前三个值得数值就会发生,加上区间撑大的特性,在一段趋势中随便一个反弹回调就会造成走平拐头的出现,所以KDJ非常适合短线交易中对行情及时转变进行决策。
4、当K值上穿50时,行情必定是突破N周期平台突破,下穿则相反。KD值均处于50上方,价格一定呈上升趋势,KD值处于50下方则必定处于下跌趋势。所以KDJ最好的用法并非金叉死叉,而是K值上穿下穿50中间值。
5、有不少教程说J值处于20以下和80是超买超卖区,其实以上意义并不大,即使J值小于零或大于100,也不能确认必定会迎来反转行情。相反的,上涨下跌力度大到能把J值做到大于100小于0,那么消耗这个力度是需要时间和空间的。虽然有很多的例子可以观测到J值处于极限位置后会反转,但那对我们来说并非机会,而是风险。观测的重点仍然应该放在KD值上。
最后总结:我们研究指标,目的是为了了解前人和专业人士理解市场的方式。理解这些思路,对我们完善自身交易系统有着莫大的帮助,通过指标理解市场运行规律,才能使用指标去把握市场运行方向的转折点和交易机会
量化股票基金stockapi接口地址:https://stockapi.com.cn
接口http请求方式获取数据,Java,python,js,c,c++,易语言均可用
地址:https://stockapi.com.cn/v1/quota/macd
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
cycle | int | 9 | 9 | 否 | 周期 |
longCycle | int | 26 | 26 | 否 | 长周期 |
shortCycle | int | 12 | 12 | 否 | 短周期 |
vipCycleFlag | int | 0 | 0 | 否 | 是否需要返回所有周期数据,1:是;0:否。有token用户可以传1 |
请求示例:
https://stockapi.com.cn/v1/quota/macd?code=600004&cycle=9&date=2021-10-17&longCycle=26&shortCycle=12&vipCycleFlag=0
地址:https://stockapi.com.cn/v1/quota/kdj
请求示例:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
cycle | int | 9 | 9 | 否 | 周期1 |
cycle1 | int | 3 | 3 | 否 | 周期2 |
cycle2 | int | 3 | 3 | 否 | 周期3 |
vipCycleFlag | int | 0 | 0 | 否 | 是否需要返回所有周期数据,1:是;0:否。有token用户可以传1 |
https://stockapi.com.cn/v1/quota/kdj?calculationCycle=100&code=600004&cycle=9&cycle1=3&cycle2=3&date=2022-06-20&vipCycleFlag=0
地址:https://stockapi.com.cn/v1/quota/wr
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
cycle1 | int | 10 | 10 | 否 | 周期1 |
cycle2 | int | 6 | 6 | 否 | 周期2 |
rehabilitation | int | 100 | 100 | 否 | 复权方式:100-不复权;101-后复权;102-前复权 |
calculationCycle | int | 100 | 100 | 否 | 周期:100-日;101-周;102-月;103-季;104-半年;105-年 |
请求示例:
https://stockapi.com.cn/v1/quota/wr?code=600004&cycle1=10&cycle2=6&date=2021-10-17&rehabilitation=100&calculationCycle=100
地址:https://stockapi.com.cn/v1/quota/cci
请求示例:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
cycle | int | 14 | 14 | 否 | 周期 |
vipCycleFlag | int | 0 | 0 | 否 | 是否需要返回所有周期数据,1:是;0:否。有token用户可以传1 |
https://stockapi.com.cn/v1/quota/cci?code=600004&cycle=14&date=2021-10-17&vipCycleFlag=0
地址:https://stockapi.com.cn/v1/quota/ma
请求示例:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
ma | int | 5,10,20 | 5,10,20 | 否 | 周期,逗号分隔符必须为英文,默认值ma=5,10,20 |
rehabilitation | int | 100 | 100 | 否 | 复权方式:100-不复权;101-后复权;102-前复权 |
calculationCycle | int | 100 | 100 | 否 | 周期:100-日;101-周;102-月;103-季;104-半年;105-年 |
请求示例:
https://stockapi.com.cn/v1/quota/ma?code=600004&date=2021-10-17&ma=5,10,20&rehabilitation=100&calculationCycle=100
地址:https://stockapi.com.cn/v1/quota/boll
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-17 | 是 | 时间 | |
cycle | int | 26 | 26 | 否 | 周期,默认值cycle=26 |
bandwidth | int | 2 | 2 | 否 | 周期,逗号分隔符必须为英文,默认值ma=5,10,20 |
rehabilitation | int | 100 | 100 | 否 | 复权方式:100-不复权;101-后复权;102-前复权 |
calculationCycle | int | 100 | 100 | 否 | 周期:100-日;101-周;102-月;103-季;104-半年;105-年 |
请求示例:
https://stockapi.com.cn/v1/quota/boll?bandwidth=2&code=600004&cycle=26&date=2021-10-17&rehabilitation=100&calculationCycle=100
地址:https://stockapi.com.cn/v1/base/dragonTiger
请求地址:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-02 | 是 | 时间 |
https://stockapi.com.cn/v1/base/dragonTiger?date=2022-09-02
地址:https://stockapi.com.cnv1/base/day
请求示例:
https://stockapi.com.cn/v1/base/day?token=你的token&code=600004&endDate=2021-10-15&startDate=2021-10-10
地址:https://stockapi.com.cn/v1/base/minKdj
请求示例:
https://stockapi.com.cn/v1/base/minKdj?code=600004&cycle=9&cycle1=3&cycle2=3
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004.SH | 是 | 股票代码 | |
cycle | int | 9 | 9 | 否 | 周期 |
cycle1 | int | 3 | 3 | 否 | 周期1 |
cycle2 | int | 3 | 3 | 否 | 周期2 |
地址:https://stockapi.com.cn/v1/base/min
请求示例:
https://stockapi.com.cn/v1/base/min?code=600004
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 |
地址:https://stockapi.com.cn/v1/quota/capital
请求示例:
https://stockapi.com.cn/v1/quota/capital?code=600004&date=2021-10-10
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 |
地址:https://stockapi.com.cn/v1/quota/lb
请求示例:
https://stockapi.com.cn/v1/quota/lb?code=600004&cycle=5&date=2021-10-10
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 | |
cycle | string | 5 | 是 | 周期,默认值cycle=5 |
地址:https://stockapi.com.cn/v1/quota/sar
请求示例:
https://stockapi.com.cn/v1/quota/sar?code=600004&cycle=4&date=2021-10-10&limit=10&step=2
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 | |
cycle | string | 4 | 否 | 周期,默认值cycle=4 | |
step | string | 2 | 否 | 步长,默认值step=2 | |
limit | string | 10 | 否 | 极值,默认值limit=10 |
地址:https://stockapi.com.cn/v1/quota/bias
请求示例:
https://stockapi.com.cn/v1/quota/bias?code=600004&cycle1=6&cycle2=12&cycle3=24&date=2021-10-10
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 | |
cycle1 | string | 6 | 6 | 否 | 周期1,默认值cycle1=6 |
cycle2 | string | 12 | 12 | 否 | 周期2,默认值cycle2=12 |
cycle3 | string | 24 | 24 | 否 | 周期3,默认值cycle3=24 |
地址:https://stockapi.com.cn/v1/quota/rsi
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 | |
cycle1 | string | 6 | 6 | 否 | 周期1,默认值cycle1=6 |
cycle2 | string | 12 | 12 | 否 | 周期2,默认值cycle2=12 |
cycle3 | string | 24 | 24 | 否 | 周期3,默认值cycle3=24 |
vipCycleFlag | string | 0 | 0 | 否 | 是否需要返回所有周期数据,1:是;0:否。有token用户可以传1 |
请求示例:
https://stockapi.com.cn/v1/quota/rsi?code=601088&cycle1=6&cycle2=12&cycle3=24&date=2021-10-10&vipCycleFlag=0
地址:https://stockapi.com.cn/v1/quota/nineTurn
请求示例:
https://stockapi.com.cn/v1/quota/nineTurn?code=600004&date=2021-10-10
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 600004 | 是 | 股票代码 | |
date | string | 2021-10-10 | 是 | 交易时间 |
地址:https://stockapi.com.cn/v1/base/all
请求参数说明:
请求示例:
https://stockapi.com.cn/v1/base/all
地址:https://stockapi.com.cn/v1/base/st
请求参数说明:
https://stockapi.com.cn/v1/base/st
地址:https://stockapi.com.cn/v1/base/top10Active
请求示例:
https://stockapi.com.cn/v1/base/top10Active?endDate=2021-10-22&startDate=2021-10-20
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
startDate | string | 2021-10-20 | 是 | 交易开始时间,格式:2021-10-20 | |
endDate | string | 2021-10-22 | 是 | 交易结束时间,格式:2021-10-22 |
地址:https://stockapi.com.cn/v1/quota/nineTurn
请求示例:
https://stockapi.com.cn/v1/base/tradeDate?tradeDate=2021-10-20
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
tradeDate | string | 2021-10-10 | 是 | 交易时间 |
地址:https://stockapi.com.cn/v1/index/sh
请求示例:
https://stockapi.com.cn/v1/index/sh?startDate=2021-10-20&endDate=2021-10-30
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
startDate | string | 2021-10-20 | 是 | 交易开始时间,格式:2021-10-20 | |
endDate | string | 2021-10-30 | 是 | 交易结束时间,格式:2021-10-30 |
地址:https://stockapi.com.cn/v1/index/sz
请求示例:
https://stockapi.com.cn/v1/index/sz?startDate=2021-10-20&endDate=2021-10-30
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
startDate | string | 2021-10-20 | 是 | 交易开始时间,格式:2021-10-20 | |
endDate | string | 2021-10-30 | 是 | 交易结束时间,格式:2021-10-30 |
地址:https://stockapi.com.cn/v1/index/sh50
请求示例:
https://stockapi.com.cn/v1/index/sh50?startDate=2021-10-20&endDate=2021-10-30
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
startDate | string | 2021-10-20 | 是 | 交易开始时间,格式:2021-10-20 | |
endDate | string | 2021-10-30 | 是 | 交易结束时间,格式:2021-10-30 |
地址:https://stockapi.com.cn/v1/fund/min
请求示例:
https://stockapi.com.cn/v1/fund/min/v1/fund/min?code=159713
请求参数说明:
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
code | string | 159713 | 是 | 基金代码,格式:159713 |
地址:https://stockapi.com.cn/v1/base/bkList?bkCode=BK1036
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
bkCode | string | BK1036 | 是 | 行业板块代码 | |
pageNo | int | 1 | 是 | 页码 | |
pageSize | int | 50 | 是 | 每页行数 |
请求示例:
https://stockapi.com.cn/v1/base/bkList?bkCode=BK1036
地址:https://stockapi.com.cn/v1/base/bk
请求示例:
https://stockapi.com.cn/v1/base/bk
地址:https://stockapi.com.cn/v1/base/bkFlowHistory
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
bkCode | string | BK1036 | 是 | 行业板块代码 |
请求示例:
https://stockapi.com.cn/v1/base/bkFlowHistory?bkCode=BK1036
地址:https://stockapi.com.cn/v1/base/ZTPool
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-16 | 是 | 交易时间,格式:2022-09-16 |
请求示例:
https://stockapi.com.cn/v1/base/ZTPool?date=2022-09-16
地址:https://stockapi.com.cn/v1/base/QSPool
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-16 | 是 | 交易时间,格式:2022-09-16 |
请求示例:
https://stockapi.com.cn/v1/base/QSPool?date=2022-09-16
地址:https://stockapi.com.cn/v1/base/CXPool
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-16 | 是 | 交易时间,格式:2022-09-16 |
请求示例:
https://stockapi.com.cn/v1/base/CXPool?date=2022-09-08
地址:https://stockapi.com.cn/v1/base/ZBPool
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-16 | 是 | 交易时间,格式:2022-09-16 |
请求示例:
https://stockapi.com.cn/v1/base/ZBPool?date=2022-09-16
地址:https://stockapi.com.cn/v1/base/DTPool
参数名称 | 类型 | 默认值 | 示例值 | 是否必须 | 描述 |
---|---|---|---|---|---|
date | string | 2022-09-16 | 是 | 交易时间,格式:2022-09-16 |
请求示例:
https://stockapi.com.cn/v1/base/DTPool?date=2022-09-16