通达信周日KDJ指标公式源码

该指标用于在主图K线下方副图区域,同时显示日、周、月三个周期的KDJ指标线。

指标逻辑与显示规则:

1. 周期与显示范围设定:
日线KDJ: 仅显示最近55个交易日内的数据。
周线KDJ: 从倒数第150根K线(日线)对应的位置开始计算并显示,总共显示40周(约200个交易日)的数据。
月线KDJ: 从倒数第135根K线(日线)对应的位置开始计算并显示,总共显示20个月的数据。

2. 数据对齐处理:
该指标的核心难点在于将周线、月线的数据正确地对应并绘制在日线时间轴上。
它通过计算当前K线在周线、月线周期中的位置(`K8`, `KK8`),并与设定的开始显示位置(`N1`)进行比较和换算(`SU`, `SU1`),从而找到需要在当前日线位置引用的周、月KDJ历史值。
使用 `REFX` 函数将取到的周、月历史KDJ值,向前偏移(`P`, `P1` 根K线)绘制,以实现周、月KDJ线条在日线图上的时间对齐。

3. 输出线条:
在副图绘制6条线:
日K、日D、日J线: 白色K线、黄色D线(稍粗)、洋红色J线。仅在最近55日内显示。
周K、周D、周J线: 同样为白、黄、洋红三色。在设定的时间范围内显示。
月K、月D、月J线: 代码中已计算赋值(`Y11`, `Y22`, `Y33`),但最终输出部分被注释或未显示,实际副图中可能不显示月线。若需显示,需取消对应输出语句的注释。

4. 标记文本:
在周线KDJ显示范围的末端附近(`P+Q-2`的位置),标注一个“周”字,用于提示周线KDJ的显示区间结束位置。

使用要点:
该指标加载在日线周期下。
副图同时呈现了日线KDJ(短期)和经过复杂对齐的周线KDJ(中长期),便于进行多周期联合分析。
观察时需注意,周线KDJ的波动会比日线平滑,其金叉、死叉等信号级别更高。
月线KDJ数据已计算,但默认可能未输出显示。如需观察,需修改公式,将 `Y11`, `Y22`, `Y33` 进行输出绘图。
线条的显示范围由代码开头的参数(`55`, `150`, `40`, `135`, `20`)严格控制,图表最左侧的历史数据区域可能没有周线KDJ显示。
 

ZQ:=CURRBARSCOUNT<55;{设置日MACD显示周期数为最后90天}

P:=61;{设定从倒数第150根K线开始显示周MACD}

Q:=50;{设定周周MACD显示周期数为40周}

P1:=135;{设定从倒数第135根K线开始显示月MACD}

Q1:=20;{设定月MACD显示周期数为20个月}

ZK:=KDJ.K#WEEK;

ZD:=KDJ.D#WEEK;

ZJ:=KDJ.J#WEEK;

YK:=KDJ.K#MONTH;

YD:=KDJ.D#MONTH;

YJ:=KDJ.J#MONTH;

ZQZ:=TOTALBARSCOUNT;

ZQ1:=BARSCOUNT(C);

KX1:=ZQZ-ZQ1;{周K线显示开始位置按倒数K线数计算}

N1:=KX1;{周K线显示开始位置}

K6:=C#WEEK;{周K线周期}

K7:=K6>REF(K6,1);{周K线更后}

K8:=SUM(K7,0);{当前周K线位置}

K9:=CONST(K8)-K8;

ZH:=ISLASTBAR;

SU:=IF(ZH,0,SUMBARS(K7,N1-K9)-1);

Z1:=REF(ZK,SU);Z2:=REF(ZD,SU);Z3:=REF(ZJ,SU);

Z11:=REFX(Z1,P);Z22:=REFX(Z2,P);Z33:=REFX(Z3,P);

W2:=KX1<P+Q;

周K:IF(W2,Z11,DRAWNULL),COLORWHITE;

周D:IF(W2,Z22,DRAWNULL),COLORYELLOW,LINETHICK1;

周J:IF(W2,Z33,DRAWNULL),COLORMAGENTA;

KK6:=H#MONTH;

KK7:=KK6>REF(KK6,1);

KK8:=SUM(KK7,0);

KK9:=CONST(KK8)-KK8;

SU1:=IF(ZH,0,SUMBARS(KK7,KX1-KK9)-1);

Y1:=REF(YK,SU1);Y2:=REF(YD,SU1);Y3:=REF(YJ,SU1);

Y11:=REFX(Y1,P1);Y22:=REFX(Y2,P1);Y33:=REFX(Y3,P1);

W22:=KX1<P1+Q1;

K:IF(ZQ,KDJ.K,DRAWNULL),COLORWHITE;

D:IF(ZQ,KDJ.D,DRAWNULL),COLORYELLOW,LINETHICK1;

J:IF(ZQ,KDJ.J,DRAWNULL),COLORMAGENTA;

DRAWTEXT(KX1=P+Q-2,KDJ.K,'周');







来函数检测结果如下
该公式包含未来函数:#MONTH
该公式包含未来函数:#WEEK
该公式包含未来函数:REFX

定制、编写公式指标请联系QQ或微信同号:88652583

ZQ赋值:到最后交易的周期<55
P赋值:61
Q赋值:50
P1赋值:135
Q1赋值:20
ZK赋值:KDJ的K[取周线数据]
ZD赋值:KDJ的D[取周线数据]
ZJ赋值:KDJ的J[取周线数据]
YK赋值:KDJ的K[取月线数据]
YD赋值:KDJ的D[取月线数据]
YJ赋值:KDJ的J[取月线数据]
ZQZ赋值:总的周期数
ZQ1赋值:收盘价的有效数据周期数
KX1赋值:ZQZ-ZQ1
N1赋值:KX1
K6赋值:收盘价[取周线数据]
K7赋值:K6>1日前的K6
K8赋值:K7的历史累和
K9赋值:K8的最后一日取值设为常数-K8
ZH赋值:是否最后一个周期
SU赋值:如果ZH,返回0,否则返回K7累加至N1-K9的天数-1
Z1赋值:SU日前的ZK
Z2赋值:SU日前的ZD
Z3赋值:SU日前的ZJ
Z11赋值:P日后的Z1
Z22赋值:P日后的Z2
Z33赋值:P日后的Z3
W2赋值:KX1输出周K:如果W2,返回Z11,否则返回无效数,画白色
输出周D:如果W2,返回Z22,否则返回无效数,画黄色,线宽为1
输出周J:如果W2,返回Z33,否则返回无效数,画洋红色
KK6赋值:最高价[取月线数据]
KK7赋值:KK6>1日前的KK6
KK8赋值:KK7的历史累和
KK9赋值:KK8的最后一日取值设为常数-KK8
SU1赋值:如果ZH,返回0,否则返回KK7累加至KX1-KK9的天数-1
Y1赋值:SU1日前的YK
Y2赋值:SU1日前的YD
Y3赋值:SU1日前的YJ
Y11赋值:P1日后的Y1
Y22赋值:P1日后的Y2
Y33赋值:P1日后的Y3
W22赋值:KX1输出K:如果ZQ,返回KDJ的K,否则返回无效数,画白色
输出D:如果ZQ,返回KDJ的D,否则返回无效数,画黄色,线宽为1
输出J:如果ZQ,返回KDJ的J,否则返回无效数,画洋红色
当满足条件KX1=P+Q-2时,在KDJ的K位置书写文字
定制、找人做指标公式联系我们
  • QQ:88652583
  • 邮箱:88652583@qq.com
  • 工作时间:7:30-21:00
  • 微信:88652583或扫描如下二维码
指标公式网微信联系方式
月度排行
季度排行
半年排行


指标安装下载帮助  |   热门标签  | 联系我们  |  股朋指标网  |  指标网   |  指标公式网  |  加入收藏   

@2005-2023 粤ICP备2023063687号-2 股朋指标公式网别名指标公式网均来源互联网收集整理,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理
免责声明:股朋指标公式网所有指标公式及文章由网络收集,不保障实时性和真实性, 仅供学习研究并不构成投资建议,请勿以此为依据进行股票交易,由此引起的投资亏损与本站无关。
QQ:88652583 微信 88652583
sitemap站点地图