指标的核心功能是通过自适应参数动态捕捉市场趋势和动量变化,识别价格与动量的背离现象(如底背离或顶背离),并生成买卖信号。它结合波动率调整均线周期,区分强趋势与震荡市,提供进场点、止损位和目标价参考。操作策略:在强趋势中,当出现底背离、动量金叉且量能放大时买入,初始止损设在动态止损线;达到基于波动率设定的目标价时逐步止盈;卖出信号在顶背离或死叉时触发;震荡市暂停交易以规避风险。整体强调灵活适应市场波动,强化风险控制。
{主图源码如下}
ATRHG:= 14;
真实波幅:= MAX(MAX(H - L, ABS(H - REF(C, 1))), ABS(L - REF(C, 1)));
波动率:= MA(真实波幅, ATRHG) / C * 100, NODRAW;
波动阈值:= 3.0;
动态HG:= IF(波动率 >= 波动阈值, 8, 21);
自适应HG:= ROUND(动态HG * (1 + 波动率 / 20)), NODRAW;
X_:= EMA(C, 自适应HG), COLORWHITE, LINETHICK1;
X_涨速: (X_ - REF(X_, 1)) / REF(X_, 1) * 100, NODRAW;
突破价: REF(EMA(C, 自适应HG), 1), NODRAW;
乖离率: (C - 突破价) / 突破价 * 100, NODRAW;
进场线: IF(X_涨速 >= 0, REF(EMA(C, 自适应HG), BARSLAST(CROSS(X_涨速, 0)) + 1), DRAWNULL), COLORRED, LINETHICK1;
止损线: IF(X_涨速 < 0, REF(EMA(C, 自适应HG), BARSLAST(CROSS(0, X_涨速)) + 1), DRAWNULL), COLORGREEN, LINETHICK1;
涨幅: IF(X_涨速 >= 0, (C - 进场线) / 进场线 * 100, DRAWNULL), NODRAW;
跌幅: IF(X_涨速 < 0, (C - 止损线) / 止损线 * 100, DRAWNULL), NODRAW;
目标系数:= IF(波动率 >= 5, 1.15, IF(波动率 >= 3, 1.10, 1.08));
支撑系数:= IF(波动率 >= 5, 0.85, IF(波动率 >= 3, 0.90, 0.92));
目标1: IF(H >= 进场线 * 目标系数, 进场线 * 目标系数, DRAWNULL), COLORRED, POINTDOT;
目标2: IF(H >= 进场线 * (目标系数 + 0.05), 进场线 * (目标系数 + 0.05), DRAWNULL), COLORRED, POINTDOT;
目标3: IF(H >= 进场线 * (目标系数 + 0.10), 进场线 * (目标系数 + 0.10), DRAWNULL), COLORRED, POINTDOT;
支撑1: IF(L < 止损线 * 支撑系数, 止损线 * 支撑系数, DRAWNULL), COLORGREEN, POINTDOT;
支撑2: IF(L < 止损线 * (支撑系数 - 0.05), 止损线 * (支撑系数 - 0.05), DRAWNULL), COLORGREEN, POINTDOT;
支撑3: IF(L < 止损线 * (支撑系数 - 0.10), 止损线 * (支撑系数 - 0.10), DRAWNULL), COLORGREEN, POINTDOT;
STICKLINE(CROSS(X_涨速, 0), C, O, 2, 0), COLORYELLOW;
STICKLINE(CROSS(0, X_涨速), C, O, 2, 0), COLORGREEN;
STICKLINE(CROSS(X_涨速, 0) OR CROSS(0, X_涨速), REF(EMA(C, 自适应HG), 1), REF(EMA(C, 自适应HG), 1) * 0.998, 2, 0), COLORWHITE;
STICKLINE(ISLASTBAR, REF(EMA(C, 自适应HG), 1), REF(EMA(C, 自适应HG), 1) * 0.998, 5, 0), COLORWHITE;
TR值:= MAX(MAX(H - L, ABS(H - REF(C, 1))), ABS(L - REF(C, 1)));
HD值:= H - REF(H, 1);
LD值:= REF(L, 1) - L;
DMP值:= IF(HD值 > 0 AND HD值 > LD值, HD值, 0);
DMM值:= IF(LD值 > 0 AND LD值 > HD值, LD值, 0);
TR平滑:= MA(TR值, 14);
DMP平滑:= MA(DMP值, 14);
DMM平滑:= MA(DMM值, 14);
PDI值:= DMP平滑 / TR平滑 * 100;
MDI值:= DMM平滑 / TR平滑 * 100;
ADX值:= MA(ABS(MDI值 - PDI值) / (MDI值 + PDI值) * 100, 6);
趋势强度:= ADX值;
强趋势:= 趋势强度 >= 25;
震荡市:= 趋势强度 < 20;
基HG:= IF(波动率 >= 5, 5, IF(波动率 >= 3, 8, 13));
HG1:= ROUND(基HG);
HG2:= ROUND(基HG * 2.618);
HG3:= ROUND(基HG * 4.236);
HG4:= ROUND(基HG * 6.854);
DRAWLINE(H >= HHV(H, HG1), H, L <= LLV(L, HG1), L, 0), COLOR808080;
DRAWLINE(L <= LLV(L, HG1), L, H >= HHV(H, HG1), H, 0), COLOR808080;
DRAWLINE(H >= HHV(H, HG2), H, L <= LLV(L, HG2), L, 0), COLORAAAAAA;
DRAWLINE(L <= LLV(L, HG2), L, H >= HHV(H, HG2), H, 0), COLORAAAAAA;
DRAWLINE(H >= HHV(H, HG3), H, L <= LLV(L, HG3), L, 0), COLORCCCCCC;
DRAWLINE(L <= LLV(L, HG3), L, H >= HHV(H, HG3), H, 0), COLORCCCCCC;
DRAWLINE(H >= HHV(H, HG4), H, L <= LLV(L, HG4), L, 0), COLOREEEEEE;
DRAWLINE(L <= LLV(L, HG4), L, H >= HHV(H, HG4), H, 0), COLOREEEEEE;
HGN:= IF(波动率 >= 3, 7, 10);
动量:= C - REF(C, 1);
TSI值:= 100 * EMA(EMA(动量, HGN), HGN) / EMA(EMA(ABS(动量), HGN), HGN);
TSIX_:= MA(TSI值, 2);
TSI高点:= HHV(TSI值, 20);
TSI低点:= LLV(TSI值, 20);
买阈值:= MAX(0, TSI低点 * 0.3);
卖阈值:= MIN(80, TSI高点 * 0.7);
主趋势:= EMA(C, 55) > EMA(C, 89);
量能X_:= MA(V, 20);
放量确认:= V > 量能X_ * 1.2;
价格新低:= L < REF(LLV(L, 10), 1);
TSI未新低:= TSI值 > REF(LLV(TSI值, 10), 1);
底HG哥:= 价格新低 AND TSI未新低 AND TSI值 < 0;
价格新高:= H > REF(HHV(H, 10), 1);
TSI未新高:= TSI值 < REF(HHV(TSI值, 10), 1);
顶HG哥:= 价格新高 AND TSI未新高 AND TSI值 > 0;
金叉条件:= CROSS(TSI值, TSIX_) AND TSI值 < 0;
死叉条件:= CROSS(TSIX_, TSI值) AND TSI值 > 0;
强买:= 底HG哥 AND 金叉条件 AND 强趋势 AND 放量确认 AND 主趋势;
弱买:= 金叉条件 AND 主趋势 AND NOT(强买) AND NOT(震荡市);
强卖:= 顶HG哥 AND 死叉条件 AND 强趋势 AND NOT(主趋势);
弱卖:= 死叉条件 AND NOT(主趋势) AND NOT(强卖) AND NOT(震荡市);
DRAWICON(FILTER(强买, 8), LOW * 0.98, 7), COLORRED;
STICKLINE(FILTER(强买, 8), C, O, 2, 0), COLORRED;
DRAWICON(FILTER(弱买 AND 强趋势, 5), LOW * 0.99, 5), COLORFF9999;
STICKLINE(FILTER(弱买 AND 强趋势, 5), C, O, 1, 1), COLORFF9999;
DRAWICON(FILTER(强卖, 8), HIGH * 1.02, 8), COLOR00FF00;
STICKLINE(FILTER(强卖, 8), C, O, 2, 0), COLOR00FF00;
DRAWICON(FILTER(弱卖 AND 强趋势, 5), HIGH * 1.01, 6), COLOR99FF99;
STICKLINE(FILTER(弱卖 AND 强趋势, 5), C, O, 1, 1), COLOR99FF99;
DRAWICON(底HG哥 AND NOT(强买), LOW * 0.97, 1), COLORFF6666;
DRAWICON(顶HG哥 AND NOT(强卖), HIGH * 1.03, 2), COLOR66FF66;
DRAWTEXT(底HG哥 AND NOT(强买), LOW * 0.96, '底背'), COLORFF6666;
DRAWTEXT(顶HG哥 AND NOT(强卖), HIGH * 1.04, '顶背'), COLOR66FF66;
DRAWTEXT(震荡市 AND ISLASTBAR, HIGH * 1.05, '震荡市-信号失效'), COLORGRAY;
KDJHG:= IF(波动率 >= 4, 5, IF(波动率 >= 2, 9, 14));
RSV值:= (C - LLV(L, KDJHG)) / (HHV(H, KDJHG) - LLV(L, KDJHG)) * 100;
K值:= SMA(RSV值, 3, 1);
D值:= SMA(K值, 3, 1);
J值:= 3 * K值 - 2 * D值;
超买线:= IF(波动率 >= 4, 70, 80);
J值高位:= HHV(J值, 3) = HHV(J值, 8) AND J值 > 超买线;
风险提示:= IF(CROSS(REF(J值 - 0.01, 1), J值) AND REF(J值高位, 1), 1, 0);
DRAWTEXT(风险提示 AND 强卖 < 1 AND 弱卖 < 1, HIGH * 1.02, '风险'), COLOR00FF00, LINETHICK2;
STICKLINE(风险提示 AND 强卖 < 1 AND 弱卖 < 1, O, CLOSE, 1, 0), COLORYELLOW, LINETHICK2;
显著高点:= H >= HHV(H, 20);
显著低点:= L <= LLV(L, 20);
上次高点位置:= BARSLAST(显著高点);
上次低点位置:= BARSLAST(显著低点);
时间跨度:= IF(上次高点位置 > 上次低点位置, 上次高点位置 - 上次低点位置, 上次低点位置 - 上次高点位置);
时间窗口1:= ROUND(时间跨度 * 0.382);
时间窗口2:= ROUND(时间跨度 * 0.500);
时间窗口3:= ROUND(时间跨度 * 0.618);
时间窗口4:= ROUND(时间跨度 * 1.000);
时间窗口5:= ROUND(时间跨度 * 1.618);
时间窗口6:= ROUND(时间跨度 * 2.618);
DRAWTEXT(CURRBARSCOUNT = 时间窗口1 + 1, L * 0.98, '38%'), COLORAAAAAA;
DRAWTEXT(CURRBARSCOUNT = 时间窗口2 + 1, L * 0.98, '50%'), COLORCCCCCC;
DRAWTEXT(CURRBARSCOUNT = 时间窗口3 + 1, L * 0.98, '62%'), COLORAAAAAA;
DRAWTEXT(CURRBARSCOUNT = 时间窗口4 + 1, L * 0.97, '100%'), COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT = 时间窗口5 + 1, L * 0.97, '162%'), COLORCYAN;
DRAWTEXT(CURRBARSCOUNT = 时间窗口6 + 1, L * 0.97, '262%'), COLORLIMAGENTA;
窗口区间:= (CURRBARSCOUNT >= 时间窗口2 - 2 AND CURRBARSCOUNT <= 时间窗口2 + 2) OR (CURRBARSCOUNT >= 时间窗口3 - 2 AND CURRBARSCOUNT <= 时间窗口3 + 2) OR (CURRBARSCOUNT >= 时间窗口4 - 3 AND CURRBARSCOUNT <= 时间窗口4 + 3) OR (CURRBARSCOUNT >= 时间窗口5 - 3 AND CURRBARSCOUNT <= 时间窗口5 + 3);
STICKLINE(窗口区间 AND 时间跨度 > 10, H * 1.02, L * 0.98, 0, -1), COLOR404040;
信号强度显示:= IF(强买, '强买', IF(弱买, '弱买', IF(强卖, '强卖', IF(弱卖, '弱卖', '观望'))));
信息行1:= STRCAT6('波动:', CON2STR(波动率, 2), '% | ADX:', CON2STR(趋势强度, 1), ' | ', IF(强趋势, '强趋势', IF(震荡市, '震荡', '普通')));
信息行2:= STRCAT6('TSI:', CON2STR(TSI值, 1), ' | 信号:', 信号强度显示, ' | ', IF(放量确认, '放量', '缩量'));
信息行3:= STRCAT6('目标:', CON2STR(目标系数, 2), ' | 支撑:', CON2STR(支撑系数, 2), '', '');
DRAWTEXT_FIX(ISLASTBAR, 0.005, 0.012, 0, 信息行1), COLORWHITE;
DRAWTEXT_FIX(ISLASTBAR, 0.005, 0.050, 0, 信息行2), COLORCYAN;
DRAWTEXT_FIX(ISLASTBAR, 0.005, 0.088, 0, 信息行3), COLORGRAY;
{副图源码如下}
HG1:=BARSLAST(CURRBARSCOUNT=120);
HG2:=CONST(IF(ISLASTBAR=1,HHV(HIGH,HG1),0));
HG3:=CONST(IF(ISLASTBAR=1,LLV(LOW,HG1),0));
HG4:=EMA(CLOSE,3)>EMA(CLOSE,21);
HG5:=EMA(CLOSE,3)< EMA(CLOSE,21);
HG6:=EMA(CLOSE,3)>EMA(CLOSE,8);
HG7:=EMA(CLOSE,3)< EMA(CLOSE,8);
HG8:=EMA(HHV(HIGH,1),8);
HG9:=EMA(C,8)< REF(EMA(C,8),1) AND CLOSE< EMA(C,8);
HG10:=IF(HG8< REF(HG8,1) OR HG9,1,0);
HG11:=SMA(MAX(C-REF(C,1),0),2,1)/SMA(ABS(C-REF(C,1)),2,1)*100;
HG12:=HG11< 45 AND REF(HG11,1)>45;
HG13:=HG11< 20 AND REF(HG11,1)>20;
HG14:=COUNT(HG10=1,4)=3 AND HG10=0 AND O< C;
HG36:=(HG14 AND (C-REF(C,1))/REF(C,1)>0.065)*10>=10;
XG:HG36 OR ((C-REF(C,1))/REF(C,1)>0.065 AND (REF(HG13,1) OR REF(HG12,1)));