Generated by Answer me with HTML 0.5.5 · 2026-10-20 12:04 · ★ Star on GitHub

环境强度 · 通达信公式版(回测依据 + 代码)

宽基等权走势形态 vs 策略轮次 · 880698 / INDEXC / INDEXADV 三源

source16,266 轮 · 2015-2026 · 全A等权代理 880698 · 纯公式无需外部数据
A

结论 · 能不能直接放进通达信

能,三个源都能在公式里取到

宽基 "880698$CLOSE"、上证 INDEXC、涨跌家数 INDEXADV/INDEXDEC 都是通达信内置函数或跨品种引用, 不需要外部导入、不需要每天更新数据。 唯一前提:880698 在你的通达信里能跨品种引用(下面给了诊断行,跑一次就知道)。

但 880698 我这边没有历史数据

本地库只有 4,385 只个股 + 上证,没有 880698 的 K 线。回测用「全A等权指数」当它的代理 (如果 880698 是全A等权宽基,两者走势接近;如果它是沪深300类市值加权,数值会不一样)。 正式上指标前先跑诊断行,看 EW20 的数值是否符合你看到的宽基跌幅。

B

一、暴跌日 vs 阴跌段 vs 反弹段(分清了才知道标什么)

按全A等权平均股价的走势分类,同一批 B/H/G 信号的表现完全不同:

走势形态 定义 轮数 轮均 胜率 盈亏比
急跌日 当日等权跌 ≥2% 10414 +9.78% 81.6% 5.13
下跌中 20日跌 ≥4%,当日仍跌 2330 +8.16% 82.0% 4.35
阴跌段 20日跌 ≥4%,当日温和 1804 +7.25% 69.8% 2.82
反弹段 20日跌 ≥4%,但5日已涨 ≥2% 130 +3.61% 58.5% 1.62
震荡 20日在 ±4% 内 1333 -0.30% 53.7% 0.95
上行段 20日涨 ≥3% 255 -2.57% 41.6% 0.68
关键分界:反弹段要降级

同样是"20 日跌 4% 以上",5 日还没反弹时是 +8.16%~+9.78%,5 日已反弹 2% 以上就掉到 +3.61%/58.5%。 急跌日 vs 非急跌日:+9.78%/81.6% vs +5.39%/69.5%。 所以环境标注不能只看"跌了多少",还要看"跌完了没有"。

C

二、三档在各走势下的表现

形态 B 轮均/胜率 H 轮均/胜率 G 轮均/胜率 G 轮数
急跌日 +8.14% / 75.6% +9.90% / 82.5% +12.98% / 88.3% 623
下跌中 +5.29% / 77.5% +9.62% / 85.2% +27.55% / 94.0% 67
阴跌段 +2.23% / 63.3% +9.65% / 73.2% +27.11% / 90.1% 71
反弹段 +0.73% / 52.3% +7.97% / 70.0% -11.22% / 0.0% 5
震荡 -0.72% / 52.7% +0.10% / 54.5% +2.55% / 62.2% 37
上行段 -3.23% / 39.4% -1.28% / 45.9% -2.39% / 40.0% 5
阴跌段 B 档几乎失效

阴跌段 B 只有 +2.23%/63.3%,H 是 +9.65%/73.2%,G 是 +27.11%/90.1%。 小振幅出手在阴跌里买的是"没跌透的票",和 H/G 不是一回事。环境差时 B 应该直接不出。

D

三、三种环境刻度的区分度对比

刻度 最好档 最差档 跨度
宽基 20 日跌幅 <−12% +13.48%/86.6% >+3% −2.41%/44.1% 15.9pp
宽基距 60 日高点回撤 <−20% +15.11%/87.6% 新高区 −5.63%/33.3% 20.7pp
单日等权跌幅 ≤−4% +11.23%/84.8% −1~+1% +3.75%/66.1% 7.5pp
上证 20 日跌幅 <−8% +12.81%/85.5% 0~+2% +1.72%/60.8% 11.1pp
上涨家数占比 15-30% +10.05%/76.8% 45-60% +4.67%/65.2% 5.4pp
生产 C/u >20% +11.67%/86.5% 关闸 −0.03%/53.6% 11.7pp
优先级:60日回撤 > 20日跌幅 > 上证20日 > 单日跌幅 > 涨跌家数

宽基距 60 日高点回撤跨度最大(20.7pp),且"新高区"是唯一明确该禁做的区间。 涨跌家数占比跨度最小(5.4pp),只适合做辅助确认,不适合单独定档。

E

四、通达信公式(纯公式 · 无外部数据)

text
{==== 环境强度 ENV 0-4 · 五色令/海底捞月 副图附加层 ====}{0=禁做 1=观察 2=可做 3=重点 4=极端}EW20:=("880698$CLOSE"/REF("880698$CLOSE",20)-1)*100;EW5 :=("880698$CLOSE"/REF("880698$CLOSE",5)-1)*100;EWDD:=("880698$CLOSE"/HHV("880698$CLOSE",60)-1)*100;SH20:=(INDEXC/REF(INDEXC,20)-1)*100;ADR :=INDEXADV/(INDEXADV+INDEXDEC)*100;ENV0:=IF(EW20>=3,0,IF(EW20>=-4,1,IF(EW20>=-8,2,IF(EW20>=-12,3,4))));{反弹段降级:20日跌但5日已反弹2%以上,回退一档}ENV1:=IF(EW20<=-4 AND EW5>=2,MAX(ENV0-1,1),ENV0);{深回撤加分:宽基距60日高点跌超20%,升一档}ENV :=IF(EWDD<=-20 AND ENV1<4,ENV1+1,ENV1);DRAWTEXT_FIX(ENV=4,0.005,0.005,0,'环境4 极端 可重仓'),COLOR0000FF;DRAWTEXT_FIX(ENV=3,0.005,0.005,0,'环境3 重点 半仓上'),COLOR00CCFF;DRAWTEXT_FIX(ENV=2,0.005,0.005,0,'环境2 可做 半仓'),COLOR00AAFF;DRAWTEXT_FIX(ENV=1,0.005,0.005,0,'环境1 观察 轻仓'),COLOR808080;DRAWTEXT_FIX(ENV=0,0.005,0.005,0,'环境0 禁做 空仓'),COLOR00AA00;
F

五、先跑这一行,确认 880698 能引用

text
{诊断行:装到任意副图,看左上角数值}EW20:=("880698$CLOSE"/REF("880698$CLOSE",20)-1)*100;EWDD:=("880698$CLOSE"/HHV("880698$CLOSE",60)-1)*100;DRAWTEXT_FIX(1,0.005,0.005,0,STRCAT('EW20=',CON2STR(EW20,1))),COLORWHITE;DRAWTEXT_FIX(1,0.005,0.06,0,STRCAT('EWDD=',CON2STR(EWDD,1))),COLORWHITE;
三个可能的报错与改法

① 报「未知字符串 880698」→ 你的版本不支持该板块指数跨品种引用,把 "880698$CLOSE" 全部换成 INDEXC(跟随标的所属市场)。 ② EW20 显示 0.0 或恒定不变 → 引用到了空数据,同样换 INDEXC。 ③ 数值合理但要统一用上证 → "880698$CLOSE" 换 "999999$CLOSE"(通达信上证指数跨品种写法)。

G

六、装到副图后会占多少地方

  • 只加 5 行 DRAWTEXT_FIX,全部固定在左上角,不占坐标轴、不破坏纵轴自适应。
  • 不加线、不加柱带 —— 你的副图已经有三段柱带(紫/绿/四档),再加会糊。
  • 想看历史环境变化(哪天是极端日),再单独做一个「环境强度」副图指标(一条 ENV 折线 + 5 档色块),不影响海底捞月。

回测口径:4,385 只可交易池、2015-2026、16,266 轮;买 = 信号次日开盘,卖 = WZ20≥60 次日开盘,−30% 灾难线,费用 0.15% + 滑点 0.1%/边。全A等权指数 = 4,385 只当日涨跌幅等权平均后累乘,作为 880698 的代理。形态分类用的是信号日收盘时点的数据,无前视。