在期货和外汇交易的30分钟周期中,如何快速判断趋势方向并把握入场时机?今天介绍的这款30分钟主图多空开关指标,通过三重技术指标复合验证,为你提供清晰直观的多空方向判断。
指标原理
本指标采用三重技术指标复合判断,确保信号可靠性:
1. HMA(34) – 希尔均线
- 使用EMA2近似WMA计算,减少滞后性
- 通过斜率判断趋势方向:HMA斜率>0为上升趋势
2. KAMA(20) – 自适应移动平均
- 采用DMA(变系数)计算,根据市场效率调整平滑常数
- 价格位于KAMA之上为多头市场,之下为空头市场
3. ADX(14) – 平均趋向指数
- 自编ADX计算,衡量趋势强度
- ADX>18表示趋势足够强劲,值得参与
多空开关规则
允许做多条件(绿色区域):
- HMA斜率 > 0 (趋势向上)
- 收盘价 > KAMA(20) (处于自适应均线之上)
- ADX > 18 (趋势强度足够)
允许做空条件(红色区域):
- HMA斜率 < 0 (趋势向下)
- 收盘价 < KAMA(20) (处于自适应均线之下)
- ADX > 18 (趋势强度足够)
指标优势
- 三重验证:避免单一指标的假信号
- 直观可视化:色条背景直接显示允许交易区域
- 自适应市场:KAMA根据市场波动率调整灵敏度
- 趋势强度过滤:ADX排除震荡市,专注趋势行情


文华财经指标源码:
// ===============================
// 30M 主图指标:HMA/KAMA/ADX 放行开关 (V1.1)
// 说明:HMA 用 EMA2 近似 WMA;KAMA 用 DMA(变系数);ADX 自编
// 建议周期:30分钟(本指标只做方向与开关)
// ===============================
N_HMA:=34;
ERPERIOD:=20;
N_ADX:=14;
M_ADX:=14;
TH_ADX:=18;
SHOW_BG:=1; // 1=显示放/禁行色条;0=不显示
// —- HMA(34) —-
WMA_N := EMA2(CLOSE, N_HMA);
WMA_HALF := EMA2(CLOSE, INTPART(N_HMA/2));
HMA34 := EMA2( 2*WMA_HALF – WMA_N, INTPART(SQRT(N_HMA)) );
HMASLOPE := HMA34 – REF(HMA34,1);
// —- KAMA(20) —-
CHANGE := ABS(CLOSE – REF(CLOSE, ERPERIOD));
VOLAT := SUM(ABS(CLOSE – REF(CLOSE,1)), ERPERIOD);
ER := IFELSE(VOLAT=0, 0, CHANGE / VOLAT); // 0~1
FAST := 2/(2+1); // 快=2
SLOW := 2/(30+1); // 慢=30
SC := SQUARE( ER*(FAST – SLOW) + SLOW );
KAMA20 := DMA(CLOSE, SC);
// —- ADX(14)(WILDER DMI 强度)—-
TR1:=HIGH-LOW;
TR2:=ABS(HIGH-REF(CLOSE,1));
TR3:=ABS(LOW-REF(CLOSE,1));
TR := SUM( MAX(MAX(TR1,TR2),TR3), N_ADX);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP := SUM( IFELSE(HD>0 AND HD>LD, HD, 0), N_ADX );
DMM := SUM( IFELSE(LD>0 AND LD>HD, LD, 0), N_ADX );
PDI := DMP*100/TR;
MDI := DMM*100/TR;
ADX := MA( ABS(MDI-PDI)/(MDI+PDI)*100, M_ADX );
// —- 放/禁行条件(30M 层)—-
ALLOW_LONG := (HMASLOPE>0) AND (CLOSE>KAMA20) AND (ADX>TH_ADX);
ALLOW_SHORT := (HMASLOPE<0) AND (CLOSE<KAMA20) AND (ADX>TH_ADX);
// ========= 绘图(主图叠加) =========
HMA34, COLORWHITE, LINETHICK2;
KAMA20, COLORYELLOW, LINETHICK2;
// 允许区域着色:用“底部色条”模拟背景着色(通用、兼容性好)
BASEBAR := REF(LOW,1)*0.998;
BASEBAR2:= REF(LOW,1)*0.997; // 窄条,不遮挡K线
STICKLINE(SHOW_BG AND ALLOW_LONG , BASEBAR, BASEBAR2, 8, 0), RGB(0,160,0);
STICKLINE(SHOW_BG AND ALLOW_SHORT, BASEBAR, BASEBAR2, 8, 0), RGB(200,40,40);
// HMA 颜色强调(可视化更清晰)
HMA_UP : IFELSE(ALLOW_LONG , HMA34, NULL), RGB(0,200,0), LINETHICK3;
HMA_DN : IFELSE(ALLOW_SHORT, HMA34, NULL), RGB(220,50,50), LINETHICK3;
// 提示文字(出现开关切换时打标)
DRAWTEXT(ALLOW_LONG AND NOT (REF(ALLOW_LONG,1)), LOW, ‘允许做多’), RGB(0,180,0);
DRAWTEXT(ALLOW_SHORT AND NOT (REF(ALLOW_SHORT,1)), HIGH, ‘允许做空’), RGB(200,0,0);
// 可在标题显示当前状态(若版本支持 DRAWTEXT_FIX)