5个完整通达信副图公式 · 六位BGR · 2026-10-20
| 方案 | 环境强度 | B/G信号 | 场景 |
|---|---|---|---|
| A1推荐 | 底部色带 | 颜色分级 | 日常 |
| A2 | 底部色带 | 带数字 | 深度 |
| C | 右轴 | 原版 | 对比 |
| D1 | 徽章 | 窗口期 | 极简 |
| D2 | 徽章 | 高亮 | 演示 |
逻辑:底部彩带显示档位,B/G颜色由档位决定
{════ 通达信 · 技术指标 海底捞月 (副图) ════}
{安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定}
{B绿=小振幅出手(振幅<6%,含深筛) | B黄=大振幅非深筛 | G红=大振幅+深筛(王牌,同日多只优先)}
{柱: 黄橙空心=观察 | 黄橙实心=关注 | 红实心=提示 | 绿=离场(收盘WZ20>=80次日开盘卖) | 紫=热度预警 | 灰=灾难线-30%}
{三条线: 红=得分线 | 黄橙=深度线 | 顶部彩线=环境强度(0-4档) | 字符标在y=1.2}
{配色: 红#FF3B4E 金#FFCB2E 绿#2BFF88 墨绿#00D68F 紫#BA4DFF}
{!! 纯代码文件, 勿再加长注释(通达信单公式有字数上限)}
MA5:=MA(CLOSE,5);
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
MV5:=MA(VOL,5);
RSI14:=SMA(MAX(CLOSE-REF(CLOSE,1),0),14,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),14,1)*100;
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)+0.0001)*100;
K9:=SMA(RSV9,3,1);
D9:=SMA(K9,3,1);
JV:=3*K9-2*D9;
{A. 筹码成本线: 只用 AMOUNT/VOL, 不需要流通股本}
DCP0:=AMOUNT/(VOL+0.0001)/100;
{复权折算: 前复权CLOSE ÷ 原始VWAP 取5日中位数 → 折算到前复权口径}
{(min/max选择网络求中位数, 与生产引擎 rmed 逐位一致; 零成交bar由VALUEWHEN延续)}
RQA:=VALUEWHEN(DCP0>0,CLOSE/(DCP0+0.000001));
RQB:=REF(RQA,1);
RQC:=REF(RQA,2);
RQD:=REF(RQA,3);
RQE:=REF(RQA,4);
RLA:=MIN(RQA,RQB);
RHA:=MAX(RQA,RQB);
RLB:=MIN(RQC,RQD);
RHB:=MAX(RQC,RQD);
RS2:=MIN(MIN(RHA,RHB),MAX(RLA,RLB));
RS3:=MAX(MAX(RLA,RLB),MIN(RHA,RHB));
FQ5:=MIN(RS3,MAX(RS2,RQE));
AMTQ:=AMOUNT*FQ5;
VW20:=SUM(AMTQ,20)/(SUM(VOL,20)+0.0001)/100;
VW60:=SUM(AMTQ,60)/(SUM(VOL,60)+0.0001)/100;
DP20:=(CLOSE/VW20-1)*100;
DP60:=(CLOSE/VW60-1)*100;
{B. 波动线 BD7 (BSTL 波动率分档)}
BG:=3.5;
W1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
W2:=IF(LOW>0.000001,(W1-LOW)/LOW*100,0);
W3:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(CLOSE-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W4:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(OPEN-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W5:=IF(OPEN>0.000001,(CLOSE-OPEN)/OPEN*100,0);
W6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
W7:=IF(W6>0.000001,(HIGH-W6)/W6*100,0);
W8:=MAX(MAX(MAX(W3,W4),MAX(W5,W7)),MAX(W2,MAX(W5+W7,W5+W2)))*1.2;
AVGW:=MA(W8,20);
UPW:=AVGW>BG+0.5;
DNW:=AVGW<BG;
{2026-10-17 修复: 原 LOWW:=BARSLAST(UPW)>=BARSLAST(DNW) 在 UPW 从未成立的低波品种上取无效值,}
{经 BD7 传播使 超跌深度SD 整条无值(深度线消失); 改为最近事件方向的等价式, 全程有效}
EVW:=UPW OR DNW OR (BARSCOUNT(CLOSE)=21);
DIRW:=IF(UPW,-1,1);
LOWW:=VALUEWHEN(EVW,DIRW)>0;
CXL:=(2*CLOSE+HIGH+LOW)/4;
RGL:=HHV(HIGH,34)-LLV(LOW,34);
RG2:=HHV(HIGH,21)-LLV(LOW,21);
RSVL:=IF(RGL>0.000001,(CXL-LLV(LOW,34))/(RGL+0.000001)*100,50);
RSVH:=IF(RG2>0.000001,(CXL-LLV(LOW,21))/(RG2+0.000001)*100,50);
RSLW:=IF(LOWW,RSVL,RSVH);
E13:=EMA(RSLW,13);
E11:=EMA(RSLW,11);
BD7:=IF(LOWW,E13,E11);
{C. 位置}
WZ20:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20)+0.0001)*100;
WZ60:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)+0.0001)*100;
BL5:=(CLOSE/MA5-1)*100;
BL20:=(CLOSE/MA20-1)*100;
RM60:=(CLOSE/HHV(HIGH,60)-1)*100;
{D. 第1层 超跌深度 SD 十条件 (与个股版相同, >=8 进候选池)}
A1:=BL20<=-10;
A2:=BL5<=-5;
A3:=RSI14<=35;
A4:=JV<=20;
A5:=WZ60<=20;
A6:=WZ20<=15;
A7:=RM60<=-25;
A8:=BD7<=30;
A9:=CLOSE<MA60;
A10:=DP60<=-10;
SD:=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10;
{E. 第2层 得分 EF 六条件 (ETF专版: RSI25/DP20-15/连阴4/DP60-20/BL20-15/量环比1.5)}
LYD:=CLOSE<REF(CLOSE,1);
LYN:=BARSLASTCOUNT(LYD);
X1:=RSI14<=25;
X2:=DP20<=-15;
X3:=LYN>=4;
X4:=DP60<=-20;
X5:=BL20<=-15;
X6:=MV5/REF(MV5,1)>=1.5;
EF:=X1+X2+X3+X4+X5+X6;
{F. 四档与深筛标记}
C1:=(SD>=8) AND (EF>=2);
C2:=(SD>=9) AND (EF>=2);
C3:=(SD>=9) AND (EF>=3);
C4:=(SD>=10) AND (EF>=4);
SSB:=(LYN>=5) AND (DP60<=-25) AND (RSI14<=22);
{输出}
得分:EF,COLOR0000FF,LINETHICK2;
超跌深度:SD,COLOR00CCFF,LINETHICK2;
深度门槛:10,COLORAAAAAA,DOTLINE;
满分线:6,COLORC8C8C8,DOTLINE;
SIDANG:=C1 OR C2 OR C3;
{灾难线(两级): 锚点=出手次日开盘 x0.70 即-30%}
CSJ:=BARSLAST(C4);
CSZ:=IF(CSJ>=1,REF(OPEN,MAX(CSJ-1,0)),0)*0.70;
CSG:=(CSJ>=1) AND (CSJ<=40) AND (CLOSE<=CSZ) AND NOT(SIDANG);
CSN:=BARSLAST((CSG)=0);
CSW:=CSG AND (CSN<5);
CSC:=CSG AND (CSN>=5);
STICKLINE(CSW,-1.2,0,2,1),COLORAAAAAA;
STICKLINE(CSC,-1.2,0,2,0),COLORAAAAAA;
{四档分色: 空心黄橙(观察) 实心黄橙(关注) 实心红(提示) 出手标B; 四档互斥只画最强档(实心柱不带边框)}
STICKLINE(C1 AND NOT(C2),-1.2,0,2,1),COLOR00CCFF;
STICKLINE(C2 AND NOT(C3),-1.2,0,2,0),COLOR00CCFF;
STICKLINE(C3,-1.2,0,2,0),COLOR0000FF;
{离场绿柱: WZ20>=80; 贴边空心; 未触发贴边=暗空心}
TIEB:=1.2;
LVTIE:=(WZ20>=80-TIEB) AND (WZ20<80+TIEB);
EXITW:=WZ20>=80;
STICKLINE(EXITW AND NOT(LVTIE),8.8,10,2,0),COLOR00CC00;
STICKLINE(EXITW AND LVTIE,8.8,10,2,1),COLOR00CC00;
STICKLINE(NOT(EXITW) AND (WZ20>=80-TIEB),8.8,10,2,1),COLOR00FFFF;
{紫色=热度层(7.6~8.8): 空心紫=原版紫柱条件; 实心紫=ETF热度版; 同柱实心优先}
LB5:=VOL/REF(MV5,1);
SY:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW+0.0001)*100;
ZF:=(HIGH-LOW)/REF(CLOSE,1)*100;
STT:=ABS(CLOSE-OPEN)/(HIGH-LOW+0.0001)*100;
HRW:=(JV>=95) OR (WZ20>=87);
HRV:=LB5>=1.5;
HRR:=(SY>=35) AND (ZF>=3) AND (LB5>=1.8) AND (STT<=45);
HPUR:=(HRW AND HRV) OR HRR;
HORG:=HRW OR ((SY>=35) AND (ZF>=8) AND (LB5>=1.8) AND (STT<=45));
HKO:=HORG AND NOT(HPUR);
STICKLINE(HKO,7.4,8.6,2,1),COLORFF00FF;
STICKLINE(HPUR,7.4,8.6,2,0),COLORFF00FF;
{B/G字符颜色由环境强度决定: HJ2=4红/3金/2绿黄橙/0-1灰}
{环境强度HJ2预计算(供B/G字符使用)}
HJC:=("880003$CLOSE");
HJ20:=(HJC/REF(HJC,20)-1)*100;
HJD:=(HJC/HHV(HJC,120)-1)*100;
HJ2:=IF(HJ20<=-10,2,IF(HJ20<=-5,1,0))+IF(HJD<=-18,2,IF(HJD<=-10,1,0));
BC2:=IF(HJ2>=4,COLOR0000FF,IF(HJ2>=3,COLOR00CCFF,IF(HJ2>=2,COLOR00CC00,COLORAAAAAA)));
BC6:=IF(HJ2>=4,COLOR0000FF,IF(HJ2>=3,COLOR00CCFF,IF(HJ2>=2,COLOR00CCFF,COLORAAAAAA)));
GC:=IF(HJ2>=4,COLOR0000FF,IF(HJ2>=3,COLOR00CCFF,COLOR0000FF));
{小振幅B: HJ2>=2正常大小, HJ2<2小写灰色}
DRAWTEXT(C4 AND ZF<6 AND HJ2>=2,1.2,'B'),BC2;
DRAWTEXT(C4 AND ZF<6 AND HJ2<2,1.2,'b'),COLORAAAAAA;
{大振幅B}
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6 AND HJ2>=2,1.2,'B'),BC6;
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6 AND HJ2<2,1.2,'b'),COLORAAAAAA;
{深筛G: 只在HJ2>=2时显示}
DRAWTEXT(C4 AND SSB AND ZF>=6 AND HJ2>=2,1.2,'G'),GC;
{数据量守卫: 序列不足80根时提示(递归线起点漂移)}
SJQ:=BARSCOUNT(CLOSE)>=80;
DRAWTEXT_FIX(NOT(SJQ),0.01,0.06,0,'数据不足80根');
{════ G. 环境强度线 - 方案A1:底部色带 + B/G颜色分级 ════}
环境强度:HJ2,NODRAW;
BR:=("880005$CLOSE");
BRP:=BR/5400*100;
广度:BRP,NODRAW;
窗口:IF(HJ2>=3,1,0),NODRAW;
{色带 y=-2.2至-1.6, 高度0.6, 5色分档}
STICKLINE(1,-2.2,-1.6,6,0),IF(HJ2=4,COLOR0000FF,IF(HJ2=3,COLOR00CCFF,IF(HJ2=2,COLORFF00FF,IF(HJ2=1,COLORAAAAAA,COLOR00FFFF))));
{档位数字白色居中, y=-1.85}
DRAWTEXT(1,-1.85,NUMTOSTR(HJ2,0)),COLORFFFFFF;
{════ H. 沪深风格读数 (2026-10-20, 纯读数不参与任何判断; 若跨品种引用报错, 删掉这一节即可) ════}
SHP:=("1A0001$CLOSE");
SZP:=("399001$CLOSE");
{>0=深证跌得比上证多(小盘更弱)}
沪深差:(SZP/REF(SZP,20)-SHP/REF(SHP,20))*100,NODRAW;逻辑:B3/G4直接标注档位
{════ 通达信 · 技术指标 海底捞月 (副图) ════}
{安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定}
{B绿=小振幅出手(振幅<6%,含深筛) | B黄=大振幅非深筛 | G红=大振幅+深筛(王牌,同日多只优先)}
{柱: 黄橙空心=观察 | 黄橙实心=关注 | 红实心=提示 | 绿=离场(收盘WZ20>=80次日开盘卖) | 紫=热度预警 | 灰=灾难线-30%}
{三条线: 红=得分线 | 黄橙=深度线 | 顶部彩线=环境强度(0-4档) | 字符标在y=1.2}
{配色: 红#FF3B4E 金#FFCB2E 绿#2BFF88 墨绿#00D68F 紫#BA4DFF}
{!! 纯代码文件, 勿再加长注释(通达信单公式有字数上限)}
MA5:=MA(CLOSE,5);
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
MV5:=MA(VOL,5);
RSI14:=SMA(MAX(CLOSE-REF(CLOSE,1),0),14,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),14,1)*100;
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)+0.0001)*100;
K9:=SMA(RSV9,3,1);
D9:=SMA(K9,3,1);
JV:=3*K9-2*D9;
{A. 筹码成本线: 只用 AMOUNT/VOL, 不需要流通股本}
DCP0:=AMOUNT/(VOL+0.0001)/100;
{复权折算: 前复权CLOSE ÷ 原始VWAP 取5日中位数 → 折算到前复权口径}
{(min/max选择网络求中位数, 与生产引擎 rmed 逐位一致; 零成交bar由VALUEWHEN延续)}
RQA:=VALUEWHEN(DCP0>0,CLOSE/(DCP0+0.000001));
RQB:=REF(RQA,1);
RQC:=REF(RQA,2);
RQD:=REF(RQA,3);
RQE:=REF(RQA,4);
RLA:=MIN(RQA,RQB);
RHA:=MAX(RQA,RQB);
RLB:=MIN(RQC,RQD);
RHB:=MAX(RQC,RQD);
RS2:=MIN(MIN(RHA,RHB),MAX(RLA,RLB));
RS3:=MAX(MAX(RLA,RLB),MIN(RHA,RHB));
FQ5:=MIN(RS3,MAX(RS2,RQE));
AMTQ:=AMOUNT*FQ5;
VW20:=SUM(AMTQ,20)/(SUM(VOL,20)+0.0001)/100;
VW60:=SUM(AMTQ,60)/(SUM(VOL,60)+0.0001)/100;
DP20:=(CLOSE/VW20-1)*100;
DP60:=(CLOSE/VW60-1)*100;
{B. 波动线 BD7 (BSTL 波动率分档)}
BG:=3.5;
W1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
W2:=IF(LOW>0.000001,(W1-LOW)/LOW*100,0);
W3:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(CLOSE-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W4:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(OPEN-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W5:=IF(OPEN>0.000001,(CLOSE-OPEN)/OPEN*100,0);
W6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
W7:=IF(W6>0.000001,(HIGH-W6)/W6*100,0);
W8:=MAX(MAX(MAX(W3,W4),MAX(W5,W7)),MAX(W2,MAX(W5+W7,W5+W2)))*1.2;
AVGW:=MA(W8,20);
UPW:=AVGW>BG+0.5;
DNW:=AVGW<BG;
{2026-10-17 修复: 原 LOWW:=BARSLAST(UPW)>=BARSLAST(DNW) 在 UPW 从未成立的低波品种上取无效值,}
{经 BD7 传播使 超跌深度SD 整条无值(深度线消失); 改为最近事件方向的等价式, 全程有效}
EVW:=UPW OR DNW OR (BARSCOUNT(CLOSE)=21);
DIRW:=IF(UPW,-1,1);
LOWW:=VALUEWHEN(EVW,DIRW)>0;
CXL:=(2*CLOSE+HIGH+LOW)/4;
RGL:=HHV(HIGH,34)-LLV(LOW,34);
RG2:=HHV(HIGH,21)-LLV(LOW,21);
RSVL:=IF(RGL>0.000001,(CXL-LLV(LOW,34))/(RGL+0.000001)*100,50);
RSVH:=IF(RG2>0.000001,(CXL-LLV(LOW,21))/(RG2+0.000001)*100,50);
RSLW:=IF(LOWW,RSVL,RSVH);
E13:=EMA(RSLW,13);
E11:=EMA(RSLW,11);
BD7:=IF(LOWW,E13,E11);
{C. 位置}
WZ20:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20)+0.0001)*100;
WZ60:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)+0.0001)*100;
BL5:=(CLOSE/MA5-1)*100;
BL20:=(CLOSE/MA20-1)*100;
RM60:=(CLOSE/HHV(HIGH,60)-1)*100;
{D. 第1层 超跌深度 SD 十条件 (与个股版相同, >=8 进候选池)}
A1:=BL20<=-10;
A2:=BL5<=-5;
A3:=RSI14<=35;
A4:=JV<=20;
A5:=WZ60<=20;
A6:=WZ20<=15;
A7:=RM60<=-25;
A8:=BD7<=30;
A9:=CLOSE<MA60;
A10:=DP60<=-10;
SD:=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10;
{E. 第2层 得分 EF 六条件 (ETF专版: RSI25/DP20-15/连阴4/DP60-20/BL20-15/量环比1.5)}
LYD:=CLOSE<REF(CLOSE,1);
LYN:=BARSLASTCOUNT(LYD);
X1:=RSI14<=25;
X2:=DP20<=-15;
X3:=LYN>=4;
X4:=DP60<=-20;
X5:=BL20<=-15;
X6:=MV5/REF(MV5,1)>=1.5;
EF:=X1+X2+X3+X4+X5+X6;
{F. 四档与深筛标记}
C1:=(SD>=8) AND (EF>=2);
C2:=(SD>=9) AND (EF>=2);
C3:=(SD>=9) AND (EF>=3);
C4:=(SD>=10) AND (EF>=4);
SSB:=(LYN>=5) AND (DP60<=-25) AND (RSI14<=22);
{输出}
得分:EF,COLOR0000FF,LINETHICK2;
超跌深度:SD,COLOR00CCFF,LINETHICK2;
深度门槛:10,COLORAAAAAA,DOTLINE;
满分线:6,COLORC8C8C8,DOTLINE;
SIDANG:=C1 OR C2 OR C3;
{灾难线(两级): 锚点=出手次日开盘 x0.70 即-30%}
CSJ:=BARSLAST(C4);
CSZ:=IF(CSJ>=1,REF(OPEN,MAX(CSJ-1,0)),0)*0.70;
CSG:=(CSJ>=1) AND (CSJ<=40) AND (CLOSE<=CSZ) AND NOT(SIDANG);
CSN:=BARSLAST((CSG)=0);
CSW:=CSG AND (CSN<5);
CSC:=CSG AND (CSN>=5);
STICKLINE(CSW,-1.2,0,2,1),COLORAAAAAA;
STICKLINE(CSC,-1.2,0,2,0),COLORAAAAAA;
{四档分色: 空心黄橙(观察) 实心黄橙(关注) 实心红(提示) 出手标B; 四档互斥只画最强档(实心柱不带边框)}
STICKLINE(C1 AND NOT(C2),-1.2,0,2,1),COLOR00CCFF;
STICKLINE(C2 AND NOT(C3),-1.2,0,2,0),COLOR00CCFF;
STICKLINE(C3,-1.2,0,2,0),COLOR0000FF;
{离场绿柱: WZ20>=80; 贴边空心; 未触发贴边=暗空心}
TIEB:=1.2;
LVTIE:=(WZ20>=80-TIEB) AND (WZ20<80+TIEB);
EXITW:=WZ20>=80;
STICKLINE(EXITW AND NOT(LVTIE),8.8,10,2,0),COLOR00CC00;
STICKLINE(EXITW AND LVTIE,8.8,10,2,1),COLOR00CC00;
STICKLINE(NOT(EXITW) AND (WZ20>=80-TIEB),8.8,10,2,1),COLOR00FFFF;
{紫色=热度层(7.6~8.8): 空心紫=原版紫柱条件; 实心紫=ETF热度版; 同柱实心优先}
LB5:=VOL/REF(MV5,1);
SY:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW+0.0001)*100;
ZF:=(HIGH-LOW)/REF(CLOSE,1)*100;
STT:=ABS(CLOSE-OPEN)/(HIGH-LOW+0.0001)*100;
HRW:=(JV>=95) OR (WZ20>=87);
HRV:=LB5>=1.5;
HRR:=(SY>=35) AND (ZF>=3) AND (LB5>=1.8) AND (STT<=45);
HPUR:=(HRW AND HRV) OR HRR;
HORG:=HRW OR ((SY>=35) AND (ZF>=8) AND (LB5>=1.8) AND (STT<=45));
HKO:=HORG AND NOT(HPUR);
STICKLINE(HKO,7.4,8.6,2,1),COLORFF00FF;
STICKLINE(HPUR,7.4,8.6,2,0),COLORFF00FF;
{B/G字符带档位数字: B3/G4格式}
{小振幅B}
{环境强度HJ2预计算(供B/G字符使用)}
HJC:=("880003$CLOSE");
HJ20:=(HJC/REF(HJC,20)-1)*100;
HJD:=(HJC/HHV(HJC,120)-1)*100;
HJ2:=IF(HJ20<=-10,2,IF(HJ20<=-5,1,0))+IF(HJD<=-18,2,IF(HJD<=-10,1,0));
DRAWTEXT(C4 AND ZF<6 AND HJ2>=2,1.2,'B'+NUMTOSTR(HJ2,0)),IF(HJ2>=3,COLOR0000FF,COLOR00CC00);
DRAWTEXT(C4 AND ZF<6 AND HJ2<2,1.2,'b'+NUMTOSTR(HJ2,0)),COLORAAAAAA;
{大振幅B}
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6 AND HJ2>=2,1.2,'B'+NUMTOSTR(HJ2,0)),IF(HJ2>=3,COLOR00CCFF,COLOR00CCFF);
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6 AND HJ2<2,1.2,'b'+NUMTOSTR(HJ2,0)),COLORAAAAAA;
{深筛G}
DRAWTEXT(C4 AND SSB AND ZF>=6 AND HJ2>=2,1.2,'G'+NUMTOSTR(HJ2,0)),COLORFF0000;
{数据量守卫: 序列不足80根时提示(递归线起点漂移)}
SJQ:=BARSCOUNT(CLOSE)>=80;
DRAWTEXT_FIX(NOT(SJQ),0.01,0.06,0,'数据不足80根');
{════ G. 环境强度线 - 方案A1:底部色带 + B/G颜色分级 ════}
环境强度:HJ2,NODRAW;
BR:=("880005$CLOSE");
BRP:=BR/5400*100;
广度:BRP,NODRAW;
窗口:IF(HJ2>=3,1,0),NODRAW;
{色带 y=-2.2至-1.6, 高度0.6, 5色分档}
STICKLINE(1,-2.2,-1.6,6,0),IF(HJ2=4,COLOR0000FF,IF(HJ2=3,COLOR00CCFF,IF(HJ2=2,COLORFF00FF,IF(HJ2=1,COLORAAAAAA,COLOR00FFFF))));
{档位数字白色居中, y=-1.85}
DRAWTEXT(1,-1.85,NUMTOSTR(HJ2,0)),COLORFFFFFF;
{════ H. 沪深风格读数 (2026-10-20, 纯读数不参与任何判断; 若跨品种引用报错, 删掉这一节即可) ════}
SHP:=("1A0001$CLOSE");
SZP:=("399001$CLOSE");
{>0=深证跌得比上证多(小盘更弱)}
沪深差:(SZP/REF(SZP,20)-SHP/REF(SHP,20))*100,NODRAW;逻辑:环境映射右轴11-15
⚠️ 加载后右键→坐标→右轴11~21
{════ 通达信 · 技术指标 海底捞月 (副图) ════}
{安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定}
{B绿=小振幅出手(振幅<6%,含深筛) | B黄=大振幅非深筛 | G红=大振幅+深筛(王牌,同日多只优先)}
{柱: 黄橙空心=观察 | 黄橙实心=关注 | 红实心=提示 | 绿=离场(收盘WZ20>=80次日开盘卖) | 紫=热度预警 | 灰=灾难线-30%}
{三条线: 红=得分线 | 黄橙=深度线 | 顶部彩线=环境强度(0-4档) | 字符标在y=1.2}
{配色: 红#FF3B4E 金#FFCB2E 绿#2BFF88 墨绿#00D68F 紫#BA4DFF}
{!! 纯代码文件, 勿再加长注释(通达信单公式有字数上限)}
MA5:=MA(CLOSE,5);
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
MV5:=MA(VOL,5);
RSI14:=SMA(MAX(CLOSE-REF(CLOSE,1),0),14,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),14,1)*100;
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)+0.0001)*100;
K9:=SMA(RSV9,3,1);
D9:=SMA(K9,3,1);
JV:=3*K9-2*D9;
{A. 筹码成本线: 只用 AMOUNT/VOL, 不需要流通股本}
DCP0:=AMOUNT/(VOL+0.0001)/100;
{复权折算: 前复权CLOSE ÷ 原始VWAP 取5日中位数 → 折算到前复权口径}
{(min/max选择网络求中位数, 与生产引擎 rmed 逐位一致; 零成交bar由VALUEWHEN延续)}
RQA:=VALUEWHEN(DCP0>0,CLOSE/(DCP0+0.000001));
RQB:=REF(RQA,1);
RQC:=REF(RQA,2);
RQD:=REF(RQA,3);
RQE:=REF(RQA,4);
RLA:=MIN(RQA,RQB);
RHA:=MAX(RQA,RQB);
RLB:=MIN(RQC,RQD);
RHB:=MAX(RQC,RQD);
RS2:=MIN(MIN(RHA,RHB),MAX(RLA,RLB));
RS3:=MAX(MAX(RLA,RLB),MIN(RHA,RHB));
FQ5:=MIN(RS3,MAX(RS2,RQE));
AMTQ:=AMOUNT*FQ5;
VW20:=SUM(AMTQ,20)/(SUM(VOL,20)+0.0001)/100;
VW60:=SUM(AMTQ,60)/(SUM(VOL,60)+0.0001)/100;
DP20:=(CLOSE/VW20-1)*100;
DP60:=(CLOSE/VW60-1)*100;
{B. 波动线 BD7 (BSTL 波动率分档)}
BG:=3.5;
W1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
W2:=IF(LOW>0.000001,(W1-LOW)/LOW*100,0);
W3:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(CLOSE-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W4:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(OPEN-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W5:=IF(OPEN>0.000001,(CLOSE-OPEN)/OPEN*100,0);
W6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
W7:=IF(W6>0.000001,(HIGH-W6)/W6*100,0);
W8:=MAX(MAX(MAX(W3,W4),MAX(W5,W7)),MAX(W2,MAX(W5+W7,W5+W2)))*1.2;
AVGW:=MA(W8,20);
UPW:=AVGW>BG+0.5;
DNW:=AVGW<BG;
{2026-10-17 修复: 原 LOWW:=BARSLAST(UPW)>=BARSLAST(DNW) 在 UPW 从未成立的低波品种上取无效值,}
{经 BD7 传播使 超跌深度SD 整条无值(深度线消失); 改为最近事件方向的等价式, 全程有效}
EVW:=UPW OR DNW OR (BARSCOUNT(CLOSE)=21);
DIRW:=IF(UPW,-1,1);
LOWW:=VALUEWHEN(EVW,DIRW)>0;
CXL:=(2*CLOSE+HIGH+LOW)/4;
RGL:=HHV(HIGH,34)-LLV(LOW,34);
RG2:=HHV(HIGH,21)-LLV(LOW,21);
RSVL:=IF(RGL>0.000001,(CXL-LLV(LOW,34))/(RGL+0.000001)*100,50);
RSVH:=IF(RG2>0.000001,(CXL-LLV(LOW,21))/(RG2+0.000001)*100,50);
RSLW:=IF(LOWW,RSVL,RSVH);
E13:=EMA(RSLW,13);
E11:=EMA(RSLW,11);
BD7:=IF(LOWW,E13,E11);
{C. 位置}
WZ20:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20)+0.0001)*100;
WZ60:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)+0.0001)*100;
BL5:=(CLOSE/MA5-1)*100;
BL20:=(CLOSE/MA20-1)*100;
RM60:=(CLOSE/HHV(HIGH,60)-1)*100;
{D. 第1层 超跌深度 SD 十条件 (与个股版相同, >=8 进候选池)}
A1:=BL20<=-10;
A2:=BL5<=-5;
A3:=RSI14<=35;
A4:=JV<=20;
A5:=WZ60<=20;
A6:=WZ20<=15;
A7:=RM60<=-25;
A8:=BD7<=30;
A9:=CLOSE<MA60;
A10:=DP60<=-10;
SD:=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10;
{E. 第2层 得分 EF 六条件 (ETF专版: RSI25/DP20-15/连阴4/DP60-20/BL20-15/量环比1.5)}
LYD:=CLOSE<REF(CLOSE,1);
LYN:=BARSLASTCOUNT(LYD);
X1:=RSI14<=25;
X2:=DP20<=-15;
X3:=LYN>=4;
X4:=DP60<=-20;
X5:=BL20<=-15;
X6:=MV5/REF(MV5,1)>=1.5;
EF:=X1+X2+X3+X4+X5+X6;
{F. 四档与深筛标记}
C1:=(SD>=8) AND (EF>=2);
C2:=(SD>=9) AND (EF>=2);
C3:=(SD>=9) AND (EF>=3);
C4:=(SD>=10) AND (EF>=4);
SSB:=(LYN>=5) AND (DP60<=-25) AND (RSI14<=22);
{输出}
得分:EF,COLOR0000FF,LINETHICK2;
超跌深度:SD,COLOR00CCFF,LINETHICK2;
深度门槛:10,COLORAAAAAA,DOTLINE;
满分线:6,COLORC8C8C8,DOTLINE;
SIDANG:=C1 OR C2 OR C3;
{灾难线(两级): 锚点=出手次日开盘 x0.70 即-30%}
CSJ:=BARSLAST(C4);
CSZ:=IF(CSJ>=1,REF(OPEN,MAX(CSJ-1,0)),0)*0.70;
CSG:=(CSJ>=1) AND (CSJ<=40) AND (CLOSE<=CSZ) AND NOT(SIDANG);
CSN:=BARSLAST((CSG)=0);
CSW:=CSG AND (CSN<5);
CSC:=CSG AND (CSN>=5);
STICKLINE(CSW,-1.2,0,2,1),COLORAAAAAA;
STICKLINE(CSC,-1.2,0,2,0),COLORAAAAAA;
{四档分色: 空心黄橙(观察) 实心黄橙(关注) 实心红(提示) 出手标B; 四档互斥只画最强档(实心柱不带边框)}
STICKLINE(C1 AND NOT(C2),-1.2,0,2,1),COLOR00CCFF;
STICKLINE(C2 AND NOT(C3),-1.2,0,2,0),COLOR00CCFF;
STICKLINE(C3,-1.2,0,2,0),COLOR0000FF;
{离场绿柱: WZ20>=80; 贴边空心; 未触发贴边=暗空心}
TIEB:=1.2;
LVTIE:=(WZ20>=80-TIEB) AND (WZ20<80+TIEB);
EXITW:=WZ20>=80;
STICKLINE(EXITW AND NOT(LVTIE),8.8,10,2,0),COLOR00CC00;
STICKLINE(EXITW AND LVTIE,8.8,10,2,1),COLOR00CC00;
STICKLINE(NOT(EXITW) AND (WZ20>=80-TIEB),8.8,10,2,1),COLOR00FFFF;
{紫色=热度层(7.6~8.8): 空心紫=原版紫柱条件; 实心紫=ETF热度版; 同柱实心优先}
LB5:=VOL/REF(MV5,1);
SY:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW+0.0001)*100;
ZF:=(HIGH-LOW)/REF(CLOSE,1)*100;
STT:=ABS(CLOSE-OPEN)/(HIGH-LOW+0.0001)*100;
HRW:=(JV>=95) OR (WZ20>=87);
HRV:=LB5>=1.5;
HRR:=(SY>=35) AND (ZF>=3) AND (LB5>=1.8) AND (STT<=45);
HPUR:=(HRW AND HRV) OR HRR;
HORG:=HRW OR ((SY>=35) AND (ZF>=8) AND (LB5>=1.8) AND (STT<=45));
HKO:=HORG AND NOT(HPUR);
STICKLINE(HKO,7.4,8.6,2,1),COLORFF00FF;
STICKLINE(HPUR,7.4,8.6,2,0),COLORFF00FF;
{出手字符(2026-10-19 定稿): 振幅<6=B绿 / 振幅>=6非深筛=B黄 / 振幅>=6深筛=G红; 标在底部柱带上方(y=1.2)}
DRAWTEXT(C4 AND ZF<6,1.2,'B'),COLOR00CC00;
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6,1.2,'B'),COLOR00CCFF;
DRAWTEXT(C4 AND SSB AND ZF>=6,1.2,'G'),COLOR0000FF;
{数据量守卫: 序列不足80根时提示(递归线起点漂移)}
SJQ:=BARSCOUNT(CLOSE)>=80;
DRAWTEXT_FIX(NOT(SJQ),0.01,0.06,0,'数据不足80根');
{════ G. 环境强度线 - 方案C:右轴刻度 + 广度曲线 ════}
HJC:=("880003$CLOSE");
HJ20:=(HJC/REF(HJC,20)-1)*100;
HJD:=(HJC/HHV(HJC,120)-1)*100;
HJ2:=IF(HJ20<=-10,2,IF(HJ20<=-5,1,0))+IF(HJD<=-18,2,IF(HJD<=-10,1,0));
BR:=("880005$CLOSE");
BRP:=BR/5400*100;
{环境档位映射到11-15, 输出到右轴}
环境:HJ2+11,COLOR00CCFF,LINETHICK2,AXIS1;
{广度%曲线输出到右轴(0-100映射到11-21), 虚线}
广度%:BRP*0.1+11,COLOR00FFFF,DOTLINE,AXIS1;
窗口:IF(HJ2>=3,1,0),NODRAW;
{档位变化处标注文字}
HJB:=HJ2<>REF(HJ2,1);
DRAWTEXT(HJB,HJ2+11.3,IF(HJ2=4,'极端',IF(HJ2=3,'重点',IF(HJ2=2,'可做',IF(HJ2=1,'观察','禁做'))))),COLOR00CCFF;
{════ H. 沪深风格读数 (2026-10-20, 纯读数不参与任何判断; 若跨品种引用报错, 删掉这一节即可) ════}
SHP:=("1A0001$CLOSE");
SZP:=("399001$CLOSE");
{>0=深证跌得比上证多(小盘更弱)}
沪深差:(SZP/REF(SZP,20)-SHP/REF(SHP,20))*100,NODRAW;逻辑:档位≥2顶部亮灯,B/G只在窗口期显示
{════ 通达信 · 技术指标 海底捞月 (副图) ════}
{安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定}
{B绿=小振幅出手(振幅<6%,含深筛) | B黄=大振幅非深筛 | G红=大振幅+深筛(王牌,同日多只优先)}
{柱: 黄橙空心=观察 | 黄橙实心=关注 | 红实心=提示 | 绿=离场(收盘WZ20>=80次日开盘卖) | 紫=热度预警 | 灰=灾难线-30%}
{三条线: 红=得分线 | 黄橙=深度线 | 顶部彩线=环境强度(0-4档) | 字符标在y=1.2}
{配色: 红#FF3B4E 金#FFCB2E 绿#2BFF88 墨绿#00D68F 紫#BA4DFF}
{!! 纯代码文件, 勿再加长注释(通达信单公式有字数上限)}
MA5:=MA(CLOSE,5);
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
MV5:=MA(VOL,5);
RSI14:=SMA(MAX(CLOSE-REF(CLOSE,1),0),14,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),14,1)*100;
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)+0.0001)*100;
K9:=SMA(RSV9,3,1);
D9:=SMA(K9,3,1);
JV:=3*K9-2*D9;
{A. 筹码成本线: 只用 AMOUNT/VOL, 不需要流通股本}
DCP0:=AMOUNT/(VOL+0.0001)/100;
{复权折算: 前复权CLOSE ÷ 原始VWAP 取5日中位数 → 折算到前复权口径}
{(min/max选择网络求中位数, 与生产引擎 rmed 逐位一致; 零成交bar由VALUEWHEN延续)}
RQA:=VALUEWHEN(DCP0>0,CLOSE/(DCP0+0.000001));
RQB:=REF(RQA,1);
RQC:=REF(RQA,2);
RQD:=REF(RQA,3);
RQE:=REF(RQA,4);
RLA:=MIN(RQA,RQB);
RHA:=MAX(RQA,RQB);
RLB:=MIN(RQC,RQD);
RHB:=MAX(RQC,RQD);
RS2:=MIN(MIN(RHA,RHB),MAX(RLA,RLB));
RS3:=MAX(MAX(RLA,RLB),MIN(RHA,RHB));
FQ5:=MIN(RS3,MAX(RS2,RQE));
AMTQ:=AMOUNT*FQ5;
VW20:=SUM(AMTQ,20)/(SUM(VOL,20)+0.0001)/100;
VW60:=SUM(AMTQ,60)/(SUM(VOL,60)+0.0001)/100;
DP20:=(CLOSE/VW20-1)*100;
DP60:=(CLOSE/VW60-1)*100;
{B. 波动线 BD7 (BSTL 波动率分档)}
BG:=3.5;
W1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
W2:=IF(LOW>0.000001,(W1-LOW)/LOW*100,0);
W3:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(CLOSE-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W4:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(OPEN-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W5:=IF(OPEN>0.000001,(CLOSE-OPEN)/OPEN*100,0);
W6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
W7:=IF(W6>0.000001,(HIGH-W6)/W6*100,0);
W8:=MAX(MAX(MAX(W3,W4),MAX(W5,W7)),MAX(W2,MAX(W5+W7,W5+W2)))*1.2;
AVGW:=MA(W8,20);
UPW:=AVGW>BG+0.5;
DNW:=AVGW<BG;
{2026-10-17 修复: 原 LOWW:=BARSLAST(UPW)>=BARSLAST(DNW) 在 UPW 从未成立的低波品种上取无效值,}
{经 BD7 传播使 超跌深度SD 整条无值(深度线消失); 改为最近事件方向的等价式, 全程有效}
EVW:=UPW OR DNW OR (BARSCOUNT(CLOSE)=21);
DIRW:=IF(UPW,-1,1);
LOWW:=VALUEWHEN(EVW,DIRW)>0;
CXL:=(2*CLOSE+HIGH+LOW)/4;
RGL:=HHV(HIGH,34)-LLV(LOW,34);
RG2:=HHV(HIGH,21)-LLV(LOW,21);
RSVL:=IF(RGL>0.000001,(CXL-LLV(LOW,34))/(RGL+0.000001)*100,50);
RSVH:=IF(RG2>0.000001,(CXL-LLV(LOW,21))/(RG2+0.000001)*100,50);
RSLW:=IF(LOWW,RSVL,RSVH);
E13:=EMA(RSLW,13);
E11:=EMA(RSLW,11);
BD7:=IF(LOWW,E13,E11);
{C. 位置}
WZ20:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20)+0.0001)*100;
WZ60:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)+0.0001)*100;
BL5:=(CLOSE/MA5-1)*100;
BL20:=(CLOSE/MA20-1)*100;
RM60:=(CLOSE/HHV(HIGH,60)-1)*100;
{D. 第1层 超跌深度 SD 十条件 (与个股版相同, >=8 进候选池)}
A1:=BL20<=-10;
A2:=BL5<=-5;
A3:=RSI14<=35;
A4:=JV<=20;
A5:=WZ60<=20;
A6:=WZ20<=15;
A7:=RM60<=-25;
A8:=BD7<=30;
A9:=CLOSE<MA60;
A10:=DP60<=-10;
SD:=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10;
{E. 第2层 得分 EF 六条件 (ETF专版: RSI25/DP20-15/连阴4/DP60-20/BL20-15/量环比1.5)}
LYD:=CLOSE<REF(CLOSE,1);
LYN:=BARSLASTCOUNT(LYD);
X1:=RSI14<=25;
X2:=DP20<=-15;
X3:=LYN>=4;
X4:=DP60<=-20;
X5:=BL20<=-15;
X6:=MV5/REF(MV5,1)>=1.5;
EF:=X1+X2+X3+X4+X5+X6;
{F. 四档与深筛标记}
C1:=(SD>=8) AND (EF>=2);
C2:=(SD>=9) AND (EF>=2);
C3:=(SD>=9) AND (EF>=3);
C4:=(SD>=10) AND (EF>=4);
SSB:=(LYN>=5) AND (DP60<=-25) AND (RSI14<=22);
{输出}
得分:EF,COLOR0000FF,LINETHICK2;
超跌深度:SD,COLOR00CCFF,LINETHICK2;
深度门槛:10,COLORAAAAAA,DOTLINE;
满分线:6,COLORC8C8C8,DOTLINE;
SIDANG:=C1 OR C2 OR C3;
{灾难线(两级): 锚点=出手次日开盘 x0.70 即-30%}
CSJ:=BARSLAST(C4);
CSZ:=IF(CSJ>=1,REF(OPEN,MAX(CSJ-1,0)),0)*0.70;
CSG:=(CSJ>=1) AND (CSJ<=40) AND (CLOSE<=CSZ) AND NOT(SIDANG);
CSN:=BARSLAST((CSG)=0);
CSW:=CSG AND (CSN<5);
CSC:=CSG AND (CSN>=5);
STICKLINE(CSW,-1.2,0,2,1),COLORAAAAAA;
STICKLINE(CSC,-1.2,0,2,0),COLORAAAAAA;
{四档分色: 空心黄橙(观察) 实心黄橙(关注) 实心红(提示) 出手标B; 四档互斥只画最强档(实心柱不带边框)}
STICKLINE(C1 AND NOT(C2),-1.2,0,2,1),COLOR00CCFF;
STICKLINE(C2 AND NOT(C3),-1.2,0,2,0),COLOR00CCFF;
STICKLINE(C3,-1.2,0,2,0),COLOR0000FF;
{离场绿柱: WZ20>=80; 贴边空心; 未触发贴边=暗空心}
TIEB:=1.2;
LVTIE:=(WZ20>=80-TIEB) AND (WZ20<80+TIEB);
EXITW:=WZ20>=80;
STICKLINE(EXITW AND NOT(LVTIE),8.8,10,2,0),COLOR00CC00;
STICKLINE(EXITW AND LVTIE,8.8,10,2,1),COLOR00CC00;
STICKLINE(NOT(EXITW) AND (WZ20>=80-TIEB),8.8,10,2,1),COLOR00FFFF;
{紫色=热度层(7.6~8.8): 空心紫=原版紫柱条件; 实心紫=ETF热度版; 同柱实心优先}
LB5:=VOL/REF(MV5,1);
SY:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW+0.0001)*100;
ZF:=(HIGH-LOW)/REF(CLOSE,1)*100;
STT:=ABS(CLOSE-OPEN)/(HIGH-LOW+0.0001)*100;
HRW:=(JV>=95) OR (WZ20>=87);
HRV:=LB5>=1.5;
HRR:=(SY>=35) AND (ZF>=3) AND (LB5>=1.8) AND (STT<=45);
HPUR:=(HRW AND HRV) OR HRR;
HORG:=HRW OR ((SY>=35) AND (ZF>=8) AND (LB5>=1.8) AND (STT<=45));
HKO:=HORG AND NOT(HPUR);
STICKLINE(HKO,7.4,8.6,2,1),COLORFF00FF;
STICKLINE(HPUR,7.4,8.6,2,0),COLORFF00FF;
{B/G字符只在HJ2>=2时显示, 禁做期不标}
{环境强度HJ2预计算(供B/G字符使用)}
HJC:=("880003$CLOSE");
HJ20:=(HJC/REF(HJC,20)-1)*100;
HJD:=(HJC/HHV(HJC,120)-1)*100;
HJ2:=IF(HJ20<=-10,2,IF(HJ20<=-5,1,0))+IF(HJD<=-18,2,IF(HJD<=-10,1,0));
DRAWTEXT(C4 AND ZF<6 AND HJ2>=2,1.2,'B'),COLOR00CC00;
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6 AND HJ2>=2,1.2,'B'),COLOR00CCFF;
DRAWTEXT(C4 AND SSB AND ZF>=6 AND HJ2>=2,1.2,'G'),COLOR0000FF;
{数据量守卫: 序列不足80根时提示(递归线起点漂移)}
SJQ:=BARSCOUNT(CLOSE)>=80;
DRAWTEXT_FIX(NOT(SJQ),0.01,0.06,0,'数据不足80根');
{════ G. 环境强度线 - 方案D1:顶部徽章(极简) ════}
环境强度:HJ2,NODRAW;
BR:=("880005$CLOSE");
BRP:=BR/5400*100;
广度:BRP,NODRAW;
窗口:IF(HJ2>=3,1,0),NODRAW;
{仅档位>=2时画徽章, y=10.5-10.9, 宽度4}
STICKLINE(HJ2>=2,10.5,10.9,4,0),IF(HJ2=4,COLOR0000FF,IF(HJ2=3,COLOR00CCFF,COLORFF00FF));
{徽章内文字: 4极/3重/2可}
DRAWTEXT(HJ2>=2,10.65,IF(HJ2=4,'极',IF(HJ2=3,'重','可'))),COLORFFFFFF;
{════ H. 沪深风格读数 (2026-10-20, 纯读数不参与任何判断; 若跨品种引用报错, 删掉这一节即可) ════}
SHP:=("1A0001$CLOSE");
SZP:=("399001$CLOSE");
{>0=深证跌得比上证多(小盘更弱)}
沪深差:(SZP/REF(SZP,20)-SHP/REF(SHP,20))*100,NODRAW;逻辑:环境≥3时B/G荧光底色
{════ 通达信 · 技术指标 海底捞月 (副图) ════}
{安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定}
{B绿=小振幅出手(振幅<6%,含深筛) | B黄=大振幅非深筛 | G红=大振幅+深筛(王牌,同日多只优先)}
{柱: 黄橙空心=观察 | 黄橙实心=关注 | 红实心=提示 | 绿=离场(收盘WZ20>=80次日开盘卖) | 紫=热度预警 | 灰=灾难线-30%}
{三条线: 红=得分线 | 黄橙=深度线 | 顶部彩线=环境强度(0-4档) | 字符标在y=1.2}
{配色: 红#FF3B4E 金#FFCB2E 绿#2BFF88 墨绿#00D68F 紫#BA4DFF}
{!! 纯代码文件, 勿再加长注释(通达信单公式有字数上限)}
MA5:=MA(CLOSE,5);
MA20:=MA(CLOSE,20);
MA60:=MA(CLOSE,60);
MV5:=MA(VOL,5);
RSI14:=SMA(MAX(CLOSE-REF(CLOSE,1),0),14,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),14,1)*100;
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)+0.0001)*100;
K9:=SMA(RSV9,3,1);
D9:=SMA(K9,3,1);
JV:=3*K9-2*D9;
{A. 筹码成本线: 只用 AMOUNT/VOL, 不需要流通股本}
DCP0:=AMOUNT/(VOL+0.0001)/100;
{复权折算: 前复权CLOSE ÷ 原始VWAP 取5日中位数 → 折算到前复权口径}
{(min/max选择网络求中位数, 与生产引擎 rmed 逐位一致; 零成交bar由VALUEWHEN延续)}
RQA:=VALUEWHEN(DCP0>0,CLOSE/(DCP0+0.000001));
RQB:=REF(RQA,1);
RQC:=REF(RQA,2);
RQD:=REF(RQA,3);
RQE:=REF(RQA,4);
RLA:=MIN(RQA,RQB);
RHA:=MAX(RQA,RQB);
RLB:=MIN(RQC,RQD);
RHB:=MAX(RQC,RQD);
RS2:=MIN(MIN(RHA,RHB),MAX(RLA,RLB));
RS3:=MAX(MAX(RLA,RLB),MIN(RHA,RHB));
FQ5:=MIN(RS3,MAX(RS2,RQE));
AMTQ:=AMOUNT*FQ5;
VW20:=SUM(AMTQ,20)/(SUM(VOL,20)+0.0001)/100;
VW60:=SUM(AMTQ,60)/(SUM(VOL,60)+0.0001)/100;
DP20:=(CLOSE/VW20-1)*100;
DP60:=(CLOSE/VW60-1)*100;
{B. 波动线 BD7 (BSTL 波动率分档)}
BG:=3.5;
W1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
W2:=IF(LOW>0.000001,(W1-LOW)/LOW*100,0);
W3:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(CLOSE-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W4:=IF((BARSCOUNT(CLOSE)>1) AND (REF(CLOSE,1)>0.000001),(OPEN-REF(CLOSE,1))/(REF(CLOSE,1)+0.000001)*100,0);
W5:=IF(OPEN>0.000001,(CLOSE-OPEN)/OPEN*100,0);
W6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
W7:=IF(W6>0.000001,(HIGH-W6)/W6*100,0);
W8:=MAX(MAX(MAX(W3,W4),MAX(W5,W7)),MAX(W2,MAX(W5+W7,W5+W2)))*1.2;
AVGW:=MA(W8,20);
UPW:=AVGW>BG+0.5;
DNW:=AVGW<BG;
{2026-10-17 修复: 原 LOWW:=BARSLAST(UPW)>=BARSLAST(DNW) 在 UPW 从未成立的低波品种上取无效值,}
{经 BD7 传播使 超跌深度SD 整条无值(深度线消失); 改为最近事件方向的等价式, 全程有效}
EVW:=UPW OR DNW OR (BARSCOUNT(CLOSE)=21);
DIRW:=IF(UPW,-1,1);
LOWW:=VALUEWHEN(EVW,DIRW)>0;
CXL:=(2*CLOSE+HIGH+LOW)/4;
RGL:=HHV(HIGH,34)-LLV(LOW,34);
RG2:=HHV(HIGH,21)-LLV(LOW,21);
RSVL:=IF(RGL>0.000001,(CXL-LLV(LOW,34))/(RGL+0.000001)*100,50);
RSVH:=IF(RG2>0.000001,(CXL-LLV(LOW,21))/(RG2+0.000001)*100,50);
RSLW:=IF(LOWW,RSVL,RSVH);
E13:=EMA(RSLW,13);
E11:=EMA(RSLW,11);
BD7:=IF(LOWW,E13,E11);
{C. 位置}
WZ20:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20)+0.0001)*100;
WZ60:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)+0.0001)*100;
BL5:=(CLOSE/MA5-1)*100;
BL20:=(CLOSE/MA20-1)*100;
RM60:=(CLOSE/HHV(HIGH,60)-1)*100;
{D. 第1层 超跌深度 SD 十条件 (与个股版相同, >=8 进候选池)}
A1:=BL20<=-10;
A2:=BL5<=-5;
A3:=RSI14<=35;
A4:=JV<=20;
A5:=WZ60<=20;
A6:=WZ20<=15;
A7:=RM60<=-25;
A8:=BD7<=30;
A9:=CLOSE<MA60;
A10:=DP60<=-10;
SD:=A1+A2+A3+A4+A5+A6+A7+A8+A9+A10;
{E. 第2层 得分 EF 六条件 (ETF专版: RSI25/DP20-15/连阴4/DP60-20/BL20-15/量环比1.5)}
LYD:=CLOSE<REF(CLOSE,1);
LYN:=BARSLASTCOUNT(LYD);
X1:=RSI14<=25;
X2:=DP20<=-15;
X3:=LYN>=4;
X4:=DP60<=-20;
X5:=BL20<=-15;
X6:=MV5/REF(MV5,1)>=1.5;
EF:=X1+X2+X3+X4+X5+X6;
{F. 四档与深筛标记}
C1:=(SD>=8) AND (EF>=2);
C2:=(SD>=9) AND (EF>=2);
C3:=(SD>=9) AND (EF>=3);
C4:=(SD>=10) AND (EF>=4);
SSB:=(LYN>=5) AND (DP60<=-25) AND (RSI14<=22);
{输出}
得分:EF,COLOR0000FF,LINETHICK2;
超跌深度:SD,COLOR00CCFF,LINETHICK2;
深度门槛:10,COLORAAAAAA,DOTLINE;
满分线:6,COLORC8C8C8,DOTLINE;
SIDANG:=C1 OR C2 OR C3;
{灾难线(两级): 锚点=出手次日开盘 x0.70 即-30%}
CSJ:=BARSLAST(C4);
CSZ:=IF(CSJ>=1,REF(OPEN,MAX(CSJ-1,0)),0)*0.70;
CSG:=(CSJ>=1) AND (CSJ<=40) AND (CLOSE<=CSZ) AND NOT(SIDANG);
CSN:=BARSLAST((CSG)=0);
CSW:=CSG AND (CSN<5);
CSC:=CSG AND (CSN>=5);
STICKLINE(CSW,-1.2,0,2,1),COLORAAAAAA;
STICKLINE(CSC,-1.2,0,2,0),COLORAAAAAA;
{四档分色: 空心黄橙(观察) 实心黄橙(关注) 实心红(提示) 出手标B; 四档互斥只画最强档(实心柱不带边框)}
STICKLINE(C1 AND NOT(C2),-1.2,0,2,1),COLOR00CCFF;
STICKLINE(C2 AND NOT(C3),-1.2,0,2,0),COLOR00CCFF;
STICKLINE(C3,-1.2,0,2,0),COLOR0000FF;
{离场绿柱: WZ20>=80; 贴边空心; 未触发贴边=暗空心}
TIEB:=1.2;
LVTIE:=(WZ20>=80-TIEB) AND (WZ20<80+TIEB);
EXITW:=WZ20>=80;
STICKLINE(EXITW AND NOT(LVTIE),8.8,10,2,0),COLOR00CC00;
STICKLINE(EXITW AND LVTIE,8.8,10,2,1),COLOR00CC00;
STICKLINE(NOT(EXITW) AND (WZ20>=80-TIEB),8.8,10,2,1),COLOR00FFFF;
{紫色=热度层(7.6~8.8): 空心紫=原版紫柱条件; 实心紫=ETF热度版; 同柱实心优先}
LB5:=VOL/REF(MV5,1);
SY:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW+0.0001)*100;
ZF:=(HIGH-LOW)/REF(CLOSE,1)*100;
STT:=ABS(CLOSE-OPEN)/(HIGH-LOW+0.0001)*100;
HRW:=(JV>=95) OR (WZ20>=87);
HRV:=LB5>=1.5;
HRR:=(SY>=35) AND (ZF>=3) AND (LB5>=1.8) AND (STT<=45);
HPUR:=(HRW AND HRV) OR HRR;
HORG:=HRW OR ((SY>=35) AND (ZF>=8) AND (LB5>=1.8) AND (STT<=45));
HKO:=HORG AND NOT(HPUR);
STICKLINE(HKO,7.4,8.6,2,1),COLORFF00FF;
STICKLINE(HPUR,7.4,8.6,2,0),COLORFF00FF;
{环境>=3时先画底色块 y=1.1-1.35}
STICKLINE(C4 AND HJ2>=3,1.1,1.35,1.5,0),IF(HJ2=4,COLOR0000FF,COLOR00CCFF);
{字符: HJ2>=3白色, HJ2<3原色}
{环境强度HJ2预计算(供B/G字符使用)}
HJC:=("880003$CLOSE");
HJ20:=(HJC/REF(HJC,20)-1)*100;
HJD:=(HJC/HHV(HJC,120)-1)*100;
HJ2:=IF(HJ20<=-10,2,IF(HJ20<=-5,1,0))+IF(HJD<=-18,2,IF(HJD<=-10,1,0));
DRAWTEXT(C4 AND ZF<6,1.2,'B'),IF(HJ2>=3,COLORFFFFFF,COLOR00CC00);
DRAWTEXT(C4 AND NOT(SSB) AND ZF>=6,1.2,'B'),IF(HJ2>=3,COLORFFFFFF,COLOR00CCFF);
DRAWTEXT(C4 AND SSB AND ZF>=6,1.2,'G'),IF(HJ2>=3,COLORFFFFFF,COLOR0000FF);
{数据量守卫: 序列不足80根时提示(递归线起点漂移)}
SJQ:=BARSCOUNT(CLOSE)>=80;
DRAWTEXT_FIX(NOT(SJQ),0.01,0.06,0,'数据不足80根');
{════ G. 环境强度线 - 方案D1:顶部徽章(极简) ════}
环境强度:HJ2,NODRAW;
BR:=("880005$CLOSE");
BRP:=BR/5400*100;
广度:BRP,NODRAW;
窗口:IF(HJ2>=3,1,0),NODRAW;
{仅档位>=2时画徽章, y=10.5-10.9, 宽度4}
STICKLINE(HJ2>=2,10.5,10.9,4,0),IF(HJ2=4,COLOR0000FF,IF(HJ2=3,COLOR00CCFF,COLORFF00FF));
{徽章内文字: 4极/3重/2可}
DRAWTEXT(HJ2>=2,10.65,IF(HJ2=4,'极',IF(HJ2=3,'重','可'))),COLORFFFFFF;
{════ H. 沪深风格读数 (2026-10-20, 纯读数不参与任何判断; 若跨品种引用报错, 删掉这一节即可) ════}
SHP:=("1A0001$CLOSE");
SZP:=("399001$CLOSE");
{>0=深证跌得比上证多(小盘更弱)}
沪深差:(SZP/REF(SZP,20)-SHP/REF(SHP,20))*100,NODRAW;20日跌幅+120日回撤打分,数据源880003
| 档位 | BGR | 颜色 |
|---|---|---|
| 4极端 | COLOR0000FF | 红 |
| 3重点 | COLOR00CCFF | 黄橙 |
| 2可做 | COLOR00FF00 | 绿 |
| ≤1禁做 | COLORAAAAAA | 灰 |
海底捞月 · 2026-10-20