{====================================================================
 三重奏 BTS — 副图指标 (通达信版)
 买点B / 止盈预警T / 终卖S 三信号体系
 波动率自适应二段式: 低波慢档 ↔ 高波快档, 非对称迟滞防抖
 THS→TDX: BARSCOUNT→CURRBARSCOUNT, 无DRAWTEXT_FIX
=====================================================================}

{===== 参数 =====}
GATE:=3.5;
HHUP:=0.5;
HHDN:=0.0;
UP_THRESH:=GATE+HHUP;
DN_THRESH:=GATE-HHDN;
SWITCH_BAR:=120;
OFFSET:=4.5;

{===== 1. 当日波动率 C2 =====}
B1:=IF(CLOSE<=OPEN,CLOSE,OPEN);
B2:=(B1-LOW)/LOW*100;
B3:=IF(CURRBARSCOUNT>1,(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100,0);
B4:=IF(CURRBARSCOUNT>1,(OPEN-REF(CLOSE,1))/REF(CLOSE,1)*100,0);
B5:=(CLOSE-OPEN)/OPEN*100;
B6:=IF(CLOSE>=OPEN,CLOSE,OPEN);
B7:=(HIGH-B6)/B6*100;
B8:=B5+B7;
B9:=B5+B2;
C1:=B7+B2;
C2:=MAX(MAX(MAX(MAX(B3,B4),B5),MAX(B7,B2)),MAX(C1,MAX(B8,B9)))*1.2;
AVGVOL:=IF(CURRBARSCOUNT<20,SUM(C2,0)/CURRBARSCOUNT,MA(C2,20));

{===== 2. 档位状态机: 非对称迟滞 + 新股兼容 =====}
UP:=AVGVOL>UP_THRESH;
DN:=AVGVOL<DN_THRESH;
BU:=BARSLAST(UP);
BD:=BARSLAST(DN);
ST_低波档:=BU>=BD;
ST_高波档:=NOT(ST_低波档);
NOST_低波档:=AVGVOL<GATE;
NOST_高波档:=NOT(NOST_低波档);
足够数据:=CURRBARSCOUNT>=SWITCH_BAR;
低波档:=IF(足够数据,ST_低波档,NOST_低波档);
高波档:=IF(足够数据,ST_高波档,NOST_高波档);

{===== 3. 吸货线 =====}
A1:=REF(LOW,1);
A2:=SMA(ABS(A1-LOW),3,1);
A3:=SMA(MAX(LOW-A1,0),3,1);
A4:=IF(A3>0.000001,A2/A3*100,100);
A5:=EMA(A4*10,3);
A6:=IF(低波档,LLV(LOW,26),LLV(LOW,21));
A7:=IF(低波档,HHV(A5,26),HHV(A5,21));
A8:=IF(LOW<=A6,(A5+A7*2)/2,0);
吸货线:MIN(EMA(A8,3)/618,25),COLORRED;

{===== 4. 波动线 / 趋势均线 =====}
C5:=(2*CLOSE+HIGH+LOW)/4;
RLL:=LLV(LOW,34); RHL:=HHV(HIGH,34); RGL:=RHL-RLL;
RSVL:=IF(RGL>0.000001,(C5-RLL)/IF(RGL<=0,1,RGL)*100,50);
C7L0:=EMA(RSVL,13);
C7L:=IF(RGL>0.000001,C7L0,50);
RL2:=LLV(LOW,21); RH2:=HHV(HIGH,21); RG2:=RH2-RL2;
RSVH:=IF(RG2>0.000001,(C5-RL2)/IF(RG2<=0,1,RG2)*100,50);
C7H0:=EMA(RSVH,11);
C7H:=IF(RG2>0.000001,C7H0,50);
C7:=IF(低波档,C7L,C7H);
C9:=EMA(0.667*REF(C7,1)+0.333*C7,2);
波动线:C7,COLORWHITE,LINETHICK1;
趋势均线:C9-OFFSET,COLOR808080,LINETHICK1;

{===== 5. 黄金止盈位 =====}
D1:=LLV(LOW,20);
D2:=HHV(HIGH,20);
D3:=IF(D2>D1,(CLOSE-D1)/(D2-D1),0);
黄金止盈位:=D3>=IF(低波档,0.618,0.5);

{===== 6. 买点 B =====}
吸货确认:=吸货线>0.001 OR REF(吸货线,1)>0.001 OR REF(吸货线,2)>0.001;
趋势拐头:=CROSS(C7,C9);
VT:=IF(低波档,2.5,3.5);
波动达标:=C2>=VT;
买点:=吸货确认 AND 趋势拐头 AND 波动达标;

{===== 7. 止盈预警 T / 终卖 S =====}
H13:=HHV(HIGH,13); H11:=HHV(HIGH,11);
C13:=HHV(C7,13); C11:=HHV(C7,11);
价新高:=IF(低波档,HIGH=H13 AND REF(HIGH,1)<REF(H13,1),HIGH=H11 AND REF(HIGH,1)<REF(HIGH,1));
指未新高:=IF(低波档,C7<REF(C13,1),C7<REF(C11,1));
顶背离:=价新高 AND 指未新高 AND C7>65;
止盈预警:=(黄金止盈位 AND 顶背离) OR (C7>IF(低波档,75,78) AND REF(C7,1)>C7);
终卖:=CROSS(C9,C7) AND C7>IF(低波档,55,50);
T_SAME:=止盈预警 AND 终卖;
T_SIGNAL:=止盈预警 AND NOT(T_SAME);

{===== 8. 信号标记 =====}
STICKLINE(买点,C7-4,C7+4,1.2,0),COLORGREEN;
STICKLINE(T_SIGNAL,C7-4,C7+4,1.2,0),COLORYELLOW;
STICKLINE(终卖,C7-4,C7+4,1.2,0),COLORRED;
DIST:=12;
DRAWTEXT(买点,C7+DIST,'B'),COLORGREEN;
DRAWTEXT(T_SIGNAL,C7-DIST,'T'),COLORYELLOW;
DRAWTEXT(终卖,C7-DIST,'S'),COLORRED;
