通达信底部轨迹选股公式源码
发布日期: 2025-07-14 | 阅读量:4
{ 参数设置 }
周期_RSI := 5;
周期_WR := 10;
周期_KDJ快线 := 3;
周期_KDJ慢线 := 3;
{ === RSI 计算 === }
LC := REF(CLOSE, 1);
涨势 := MAX(CLOSE - LC, 0);
跌势 := ABS(CLOSE - LC);
RSI5 := SMA(涨势, 周期_RSI, 1) / SMA(跌势, 周期_RSI, 1) * 100;
{ === ADX/DMI 计算 === }
TR1 := SUM(MAX(MAX(HIGH - LOW, ABS(HIGH - REF(CLOSE, 1))), ABS(LOW - REF(CLOSE, 1))), 10);
HD := HIGH - REF(HIGH, 1);
LD := REF(LOW, 1) - LOW;
DMP := SUM(IF((HD > 0 AND HD > LD), HD, 0), 10);
DMM := SUM(IF((LD > 0 AND LD > HD), LD, 0), 10);
PDI := DMP * 100 / TR1;
MDI := DMM * 100 / TR1;
ADX := MA(ABS(MDI - PDI) / (MDI + PDI) * 100, 5);
{ === 综合趋势 AV === }
AV := RSI5 + ADX;
{ === 威廉指标 WR10 === }
WR10 := 100 * (HHV(HIGH, 周期_WR) - CLOSE) / (HHV(HIGH, 周期_WR) - LLV(LOW, 周期_WR));
{ === 能量差 NEWVOL === }
NEWVOL := RSI5 - WR10;
{ === XA_1 复合信号 === }
XA_1 := AV + NEWVOL;
{ === XA_2 初步触发信号 === }
XA_2 := IF(CROSS(XA_1, 0), 1, 0);
{ === VAR1~VAR3 平滑处理 === }
VAR1 := SMA(XA_2, 3, 1);
VAR2 := SMA(VAR1, 3, 1);
VAR3 := SMA(VAR2, 3, 1);
VAR4 := 3;
{ === 主力动向 VAR5(MACD 类似)=== }
VAR5 := 3 * SMA((CLOSE - LLV(LOW, 27)) / (HHV(HIGH, 27) - LLV(LOW, 27)) * 100, 5, 1)
- 2 * SMA(SMA((CLOSE - LLV(LOW, 27)) / (HHV(HIGH, 27) - LLV(LOW, 27)) * 100, 5, 1), 3, 1);
{ === 底部启动信号 === }
底部启动 := CROSS(VAR5, VAR4);
{ === 放牛信号 === }
放牛 := CROSS(VAR2, VAR3) AND (VAR2 < 40);
{ === KDJ 指标 === }
RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 50;
K := SMA(RSV, 周期_KDJ快线, 1);
D := SMA(K, 周期_KDJ慢线, 1);
J := 3 * K - 2 * D;
XA_20 := CROSS(J, 3);
底部轨迹 : XA_20 AND 放牛 AND 底部启动;
周期_RSI := 5;
周期_WR := 10;
周期_KDJ快线 := 3;
周期_KDJ慢线 := 3;
{ === RSI 计算 === }
LC := REF(CLOSE, 1);
涨势 := MAX(CLOSE - LC, 0);
跌势 := ABS(CLOSE - LC);
RSI5 := SMA(涨势, 周期_RSI, 1) / SMA(跌势, 周期_RSI, 1) * 100;
{ === ADX/DMI 计算 === }
TR1 := SUM(MAX(MAX(HIGH - LOW, ABS(HIGH - REF(CLOSE, 1))), ABS(LOW - REF(CLOSE, 1))), 10);
HD := HIGH - REF(HIGH, 1);
LD := REF(LOW, 1) - LOW;
DMP := SUM(IF((HD > 0 AND HD > LD), HD, 0), 10);
DMM := SUM(IF((LD > 0 AND LD > HD), LD, 0), 10);
PDI := DMP * 100 / TR1;
MDI := DMM * 100 / TR1;
ADX := MA(ABS(MDI - PDI) / (MDI + PDI) * 100, 5);
{ === 综合趋势 AV === }
AV := RSI5 + ADX;
{ === 威廉指标 WR10 === }
WR10 := 100 * (HHV(HIGH, 周期_WR) - CLOSE) / (HHV(HIGH, 周期_WR) - LLV(LOW, 周期_WR));
{ === 能量差 NEWVOL === }
NEWVOL := RSI5 - WR10;
{ === XA_1 复合信号 === }
XA_1 := AV + NEWVOL;
{ === XA_2 初步触发信号 === }
XA_2 := IF(CROSS(XA_1, 0), 1, 0);
{ === VAR1~VAR3 平滑处理 === }
VAR1 := SMA(XA_2, 3, 1);
VAR2 := SMA(VAR1, 3, 1);
VAR3 := SMA(VAR2, 3, 1);
VAR4 := 3;
{ === 主力动向 VAR5(MACD 类似)=== }
VAR5 := 3 * SMA((CLOSE - LLV(LOW, 27)) / (HHV(HIGH, 27) - LLV(LOW, 27)) * 100, 5, 1)
- 2 * SMA(SMA((CLOSE - LLV(LOW, 27)) / (HHV(HIGH, 27) - LLV(LOW, 27)) * 100, 5, 1), 3, 1);
{ === 底部启动信号 === }
底部启动 := CROSS(VAR5, VAR4);
{ === 放牛信号 === }
放牛 := CROSS(VAR2, VAR3) AND (VAR2 < 40);
{ === KDJ 指标 === }
RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 50;
K := SMA(RSV, 周期_KDJ快线, 1);
D := SMA(K, 周期_KDJ慢线, 1);
J := 3 * K - 2 * D;
XA_20 := CROSS(J, 3);
底部轨迹 : XA_20 AND 放牛 AND 底部启动;
