该指标在日线图上叠加显示周K线、月K线及其对应的布林带轨道线,并在日线图右侧特定位置标注“周”、“月”文字。
核心功能与显示逻辑:
1. 数据引用与周期设定:
使用 `WEEK` 和 `MONTH` 分别引用周线、月线周期的开盘价、最高价、最低价、收盘价以及布林带指标(中轨、上轨、下轨)数据。
通过变量 `P`、`Q`、`P1`、`Q1` 等,控制不同周期K线及轨道线在日线图上的显示起始位置和显示数量(周期数)。
2. K线绘制:
日K线:在设定的最后90个交易日内,绘制标准的日K线。阳线为红色空心柱,阴线为青色实心柱。
叠加周K线:在日线图右侧,从倒数第91根K线位置开始,向前绘制40根周K线。其绘制逻辑与日K线类似,阳线为橙色空心柱,阴线为蓝色空心柱。
叠加月K线:在日线图更右侧,从倒数第135根K线位置开始,向前绘制20根月K线。颜色与周K线规则一致。
3. 布林带轨道线绘制:
日线布林带:在最后90个交易日内,显示日线级别的布林带中轨、上轨、下轨。
周线布林带:与叠加的周K线对齐,显示周线级别的布林带轨道线(白色中轨、黄色上轨、洋红色下轨)。
月线布林带:与叠加的月K线对齐,显示月线级别的布林带轨道线(白色中轨、黄色上轨、红色下轨)。
4. 文字标注:
在周K线显示区域的末端附近标注“周”字。
在月K线显示区域的末端附近标注“月”字。
整体效果:该指标将日、周、月三个时间周期的价格走势和布林带通道整合到一张日线图上。右侧扩展区域用于展示更长周期的历史和趋势,左侧主图区聚焦近期日线走势。通过观察不同周期K线相对其各自布林带轨道的位置,可以辅助进行多周期联合分析。
{周K线}
HH:=H#WEEK,LINETHICK;
LL:=L#WEEK,LINETHICK;
CC:=C#WEEK,LINETHICK;
OO:=O#WEEK,LINETHICK;
ZQ:=CURRBARSCOUNT<90;{设置日MACD显示周期数为最后90天}
P:=91;{设定从倒数第150根K线开始显示周MACD}
Q:=40;{设定周周MACD显示周期数为40周}
P1:=135;{设定从倒数第135根K线开始显示月MACD}
Q1:=20;{设定月MACD显示周期数为20个月}
P30:=157;
Q30:=20;
ZK:=BOLL.BOLL#WEEK;ZD:=BOLL.UB#WEEK;ZJ:=BOLL.LB#WEEK;
YK:=BOLL.BOLL#MONTH;YD:=BOLL.UB#MONTH;YJ:=BOLL.LB#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;
C1:=REF(CC,SU);O1:=REF(OO,SU);H1:=REF(HH,SU);L1:=REF(LL,SU);
RC:=REFX(C1,P);RO:=REFX(O1,P);RH:=REFX(H1,P);RL:=REFX(L1,P);
TJ4:=RC>=REF(RC,1); TJ5:=RC<REF(RC,1);
STICKLINE(W2 AND TJ4,RH,RL,0,0),COLOR0080FF;
STICKLINE( W2 AND TJ5,RH,RL,0,0),COLORFF8000;
STICKLINE(W2 AND TJ4,RC,RO,3,0),COLOR0080FF;
STICKLINE( W2 AND TJ5,RC,RO,3,0),COLORFF8000;
周中轨:IF(W2,Z11,DRAWNULL),COLORWHITE;
周上轨:IF(W2,Z22,DRAWNULL),COLORYELLOW,LINETHICK1;
周下轨: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;
月中轨:IF(W22,Y11,DRAWNULL),COLORWHITE;
月上轨:IF(W22,Y22,DRAWNULL),COLORYELLOW,LINETHICK1;
月下轨:IF(W22,Y33,DRAWNULL),COLORRED;
{月K线}
HH1:=H#MONTH;
LL1:=L#MONTH;
CC1:=C#MONTH;
OO1:=O#MONTH;
C11:=REF(CC1,SU1);O11:=REF(OO1,SU1);H11:=REF(HH1,SU1);L11:=REF(LL1,SU1);
RC1:=REFX(C11,P1);RO1:=REFX(O11,P1);RH1:=REFX(H11,P1);RL1:=REFX(L11,P1);
TJ41:=RC1>=REF(RC1,1); TJ51:=RC1<REF(RC1,1);
STICKLINE(W22 AND TJ41,RH,RL,0,0),COLOR0080FF;
STICKLINE( W22 AND TJ51,RH,RL,0,0),COLORFF8000;
STICKLINE(W22 AND TJ41,RC,RO,3,0),COLOR0080FF;
STICKLINE( W22 AND TJ51,RC,RO,3,0),COLORFF8000;
中:IF(ZQ,BOLL.BOLL,DRAWNULL);
上:IF(ZQ,BOLL.UB,DRAWNULL);
下:IF(ZQ,BOLL.LB,DRAWNULL);
STICKLINE(ZQ AND C<O,H,L,0,0),COLORCYAN;
STICKLINE(ZQ AND C>=O,H,L,0,0),COLORRED;
STICKLINE(ZQ AND C<O,C,O,3,0),COLORCYAN;
STICKLINE(ZQ AND C>=O,C,O,3,1),COLORRED;
DRAWTEXT(KX1=P+Q-2,BOLL.BOLL,'周');
DRAWTEXT(KX1=P1+Q1-2,BOLL.BOLL,'月');

HH赋值:最高价[取周线数据],线宽为0
LL赋值:最低价[取周线数据],线宽为0
CC赋值:收盘价[取周线数据],线宽为0
OO赋值:开盘价[取周线数据],线宽为0
ZQ赋值:到最后交易的周期<90
P赋值:91
Q赋值:40
P1赋值:135
Q1赋值:20
P30赋值:157
Q30赋值:20
ZK赋值:BOLL的BOLL[取周线数据]
ZD赋值:BOLL的UB[取周线数据]
ZJ赋值:BOLL的LB[取周线数据]
YK赋值:BOLL的BOLL[取月线数据]
YD赋值:BOLL的UB[取月线数据]
YJ赋值:BOLL的LB[取月线数据]
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赋值:KX1C1赋值:SU日前的CC
O1赋值:SU日前的OO
H1赋值:SU日前的HH
L1赋值:SU日前的LL
RC赋值:P日后的C1
RO赋值:P日后的O1
RH赋值:P日后的H1
RL赋值:P日后的L1
TJ4赋值:RC>=1日前的RC
TJ5赋值:RC<1日前的RC
当满足条件W2ANDTJ4时,在RH和RL位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLOR0080FF
当满足条件W2ANDTJ5时,在RH和RL位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLORFF8000
当满足条件W2ANDTJ4时,在RC和RO位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLOR0080FF
当满足条件W2ANDTJ5时,在RC和RO位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLORFF8000
输出周中轨:如果W2,返回Z11,否则返回无效数,画白色
输出周上轨:如果W2,返回Z22,否则返回无效数,画黄色,线宽为1
输出周下轨:如果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输出月中轨:如果W22,返回Y11,否则返回无效数,画白色
输出月上轨:如果W22,返回Y22,否则返回无效数,画黄色,线宽为1
输出月下轨:如果W22,返回Y33,否则返回无效数,画红色
HH1赋值:最高价[取月线数据]
LL1赋值:最低价[取月线数据]
CC1赋值:收盘价[取月线数据]
OO1赋值:开盘价[取月线数据]
C11赋值:SU1日前的CC1
O11赋值:SU1日前的OO1
H11赋值:SU1日前的HH1
L11赋值:SU1日前的LL1
RC1赋值:P1日后的C11
RO1赋值:P1日后的O11
RH1赋值:P1日后的H11
RL1赋值:P1日后的L11
TJ41赋值:RC1>=1日前的RC1
TJ51赋值:RC1<1日前的RC1
当满足条件W22ANDTJ41时,在RH和RL位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLOR0080FF
当满足条件W22ANDTJ51时,在RH和RL位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLORFF8000
当满足条件W22ANDTJ41时,在RC和RO位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLOR0080FF
当满足条件W22ANDTJ51时,在RC和RO位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLORFF8000
输出中:如果ZQ,返回BOLL的BOLL,否则返回无效数
输出上:如果ZQ,返回BOLL的UB,否则返回无效数
输出下:如果ZQ,返回BOLL的LB,否则返回无效数
当满足条件ZQANDC<开盘价时,在最高价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,画青色
当满足条件ZQANDC>=开盘价时,在最高价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,画红色
当满足条件ZQANDC<开盘价时,在收盘价和开盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,画青色
当满足条件ZQANDC>=开盘价时,在收盘价和开盘价位置之间画柱状线,宽度为3,1不为0则画空心柱.,画红色
当满足条件KX1=P+Q-2时,在BOLL的BOLL位置书写文字
当满足条件KX1=P1+Q1-2时,在BOLL的BOLL位置书写文字