鼎元C++期货量化/程序化教程【随机指标(Stochastic Oscillator,KDJ)的计算方法及调用方法】
  
- UID
- 2
- 积分
- 2948020
- 威望
- 1424047 布
- 龙e币
- 1523973 刀
- 在线时间
- 13794 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-1

|
鼎元C++期货量化/程序化教程【随机指标(Stochastic Oscillator,KDJ)的计算方法及调用方法】
第一部分、简介与计算原理
KDJ指标的中文名称又叫随机指标,最早起源于期货市场,由乔治·莱恩(George Lane)首创。随机指标KDJ最早是以KD指标的形式出现,而KD指标是在威廉指标的基础上发展起来的。不过KD指标只判断股票的超买超卖的现象,在KDJ指标中则融合了移动平均线速度上的观念,形成比较准确的买卖信号依据。在实践中,K线与D线配合J线组成KDJ指标来使用。KDJ指标在设计过程中主要是研究最高价、最低价和收盘价之间的关系,同时也融合了动量观念、强弱指标和移动平均线的一些优点。因此,能够比较迅速、快捷、直观地研判行情,被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具。
东方财富的KDJ指标是一种常用的技术分析工具,由K线、D线和J线组成,用于反映价格波动的超买超卖趋势。以下是其计算公式及详细步骤:
计算公式
默认参数:N=9(RSV计算周期),M1=3(K线平滑周期),M2=3(D线平滑周期)
RSV(未成熟随机值)

说明:计算当日收盘价在最近N天内的相对位置。
Close:当日收盘价
min(Low, N):最近N天(含当日)的最低价
max(High, N):最近N天(含当日)的最高价
K线(快速随机线)

说明:对RSV进行3日指数移动平均(EMA),初始值取首日RSV。
D线(慢速随机线)

说明:对K值进行3日EMA,初始值取首日K值(即首日RSV)。
J线(方向敏感线)
J=3×当日K值−2×当日D值
说明:放大K与D的差值,增强信号的敏感性。
计算步骤
初始值设定
第一个可计算日(第N天,即第9天)的RSV基于前9天的最高价、最低价和当日收盘价。
首日K值和D值均等于首日RSV,之后逐日递归计算。
递归计算示例(以N=9为例)
第9天:
计算RSV:比较第1-9天的最高价和最低价。
K = RSV,D = RSV,J = 3K - 2D。
第10天及之后:
更新RSV(取第2-10天的最高价和最低价)。
用前一日的K和D值,按EMA公式计算当日K和D。
计算J值。
注意事项
分母为0的情况:若某日最高价等于最低价(如一字涨停/跌停),则RSV设为50或沿用前值。
参数调整:用户可自定义N、M1、M2,但需同步修改公式中的周期数值。
数据起点:需至少N天的数据才能开始计算KDJ值。
公式推导逻辑
RSV:衡量价格在短期内的相对强弱。
K/D线:通过EMA平滑RSV,减少短期波动干扰,K线反应更快,D线更稳定。
J线:通过线性组合放大K与D的差异,提前预警趋势反转。
该公式与主流软件(如通达信)基本一致,但不同平台可能在初始值或平滑方式上有细微差异。建议结合其他指标综合判断市场信号。 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|
  
- UID
- 2
- 积分
- 2948020
- 威望
- 1424047 布
- 龙e币
- 1523973 刀
- 在线时间
- 13794 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-1

|
|
|
|
|
|
|
  
- UID
- 2
- 积分
- 2948020
- 威望
- 1424047 布
- 龙e币
- 1523973 刀
- 在线时间
- 13794 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-1

|
这里面的难点是计算rsv的部分,这个指标还是有些问题我没有搞明白,大家可以先放一下,我弄好了会在这里做说明。 |
|
|
|
|
|
|
  
- UID
- 2
- 积分
- 2948020
- 威望
- 1424047 布
- 龙e币
- 1523973 刀
- 在线时间
- 13794 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-1

|
可以做为定稿了。对比了一下鼎元的数据和东财以及文华的,相差极小了,因为数据的问题可能是会出现差异的。 |
|
|
|
|
|
|