{════ 通达信 · 技术指标 海底捞月 (副图) ════} {安装: 公式管理器→技术指标→新建→名称海底捞月→画线方法副图→粘贴→确定} {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=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=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;