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

该指标用于在日线图上叠加显示周线和月线级别的MACD及KDJ数据,并控制其显示范围。

核心功能:
1. 日线MACD:显示最近55个交易日的日线MACD(DIF、DEA、MACD柱)。
2. 周线MACD:从日线图倒数第61根K线位置开始,显示40个周期的周线MACD(DIF、DEA、MACD柱)。
3. 月线MACD:从日线图倒数第135根K线位置开始,显示20个周期的月线MACD(DIF、DEA)。
4. 周线KDJ:在周线MACD显示区域内,同步引用周线级别的KDJ(K、D、J)值。
5. 月线KDJ:在月线MACD显示区域内,同步引用月线级别的KDJ(K、D、J)值。

显示逻辑:
通过`CURRBARSCOUNT`、`TOTALBARSCOUNT`、`BARSCOUNT`等函数计算当前K线位置,并利用`REFX`、`SUMBARS`等函数进行复杂的周期对齐和偏移计算,确保周、月数据在日线图上的时间点正确对应。
使用`IF`条件函数配合`DRAWNULL`,严格控制各指标线只在设定的时间窗口内绘制,窗口之外不显示。
在周线MACD显示区域的末端标注“周”字文本。

公式类型: 副图指标。
 

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

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

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

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

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

YDIF:=MACD.DIF#MONTH;

YDEA:=MACD.DEA#MONTH;

ZDIF:=MACD.DIF#WEEK;

ZDEA:=MACD.DEA#WEEK;

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(ZDIF,SU);Z2:=REF(ZDEA,SU);

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

W2:=KX1<P+Q;

周DIF:IF(W2,Z11,DRAWNULL),COLORMAGENTA;

周DEA:IF(W2,Z22,DRAWNULL),COLOR0080FF,LINETHICK1;

周MACD:IF(W2,(Z11-Z22)*2,DRAWNULL),COLORSTICK;

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(YDIF,SU1);Y2:=REF(YDEA,SU1);

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

W22:=KX1<P1+Q1;

DI:=EMA(CLOSE,12)-EMA(CLOSE,26);

DIF:IF(ZQ,DI,DRAWNULL), COLORWHITE;

DEA:IF(ZQ,EMA(DIF,9),DRAWNULL), COLORYELLOW;

MACD:IF(ZQ,2*(DIF-DEA),DRAWNULL), COLORSTICK;

DRAWTEXT(KX1=P+Q-2,DI,'周');







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

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

ZQ赋值:到最后交易的周期<55
P赋值:61
Q赋值:50
P1赋值:135
Q1赋值:20
YDIF赋值:平滑异同平均线的DIF[取月线数据]
YDEA赋值:平滑异同平均线的DEA[取月线数据]
ZDIF赋值:平滑异同平均线的DIF[取周线数据]
ZDEA赋值:平滑异同平均线的DEA[取周线数据]
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日前的ZDIF
Z2赋值:SU日前的ZDEA
Z11赋值:P日后的Z1
Z22赋值:P日后的Z2
W2赋值:KX1输出周DIF:如果W2,返回Z11,否则返回无效数,画洋红色
输出周DEA:如果W2,返回Z22,否则返回无效数,COLOR0080FF,线宽为1
输出周MACD:如果W2,返回(Z11-Z22)*2,否则返回无效数,COLORSTICK
KK6赋值:最高价[取月线数据]
KK7赋值:KK6>1日前的KK6
KK8赋值:KK7的历史累和
KK9赋值:KK8的最后一日取值设为常数-KK8
SU1赋值:如果ZH,返回0,否则返回KK7累加至KX1-KK9的天数-1
Y1赋值:SU1日前的YDIF
Y2赋值:SU1日前的YDEA
Y11赋值:P1日后的Y1
Y22赋值:P1日后的Y2
W22赋值:KX1DI赋值:收盘价的12日指数移动平均-收盘价的26日指数移动平均
输出DIF:如果ZQ,返回DI,否则返回无效数, 画白色
输出DEA:如果ZQ,返回DIF的9日指数移动平均,否则返回无效数, 画黄色
输出平滑异同平均线:如果ZQ,返回2*(DIF-DEA),否则返回无效数, COLORSTICK
当满足条件KX1=P+Q-2时,在DI位置书写文字
定制、找人做指标公式联系我们
  • QQ:88652583
  • 邮箱:88652583@qq.com
  • 工作时间:7:30-21:00
  • 微信:88652583或扫描如下二维码
指标公式网微信联系方式
月度排行
季度排行
半年排行


指标安装下载帮助  |   联系我们  |  乐淘公式网  |  公式网   |  指标公式  |  加入收藏   

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