指标源码
VAR1:=(C-REF(C,1))/REF(C,1);
VAR2:=(INDEXC-REF(INDEXC,1))/REF(INDEXC,1);
个股:=EMA(SUM(VAR1,20),5);
大盘:=EMA(SUM(VAR2,20),5);
领涨:=(个股-大盘)>=0;
VAR3:=(C-LLV(L,125))/(HHV(H,125)-LLV(L,125))*100;
VAR4:=SMA(VAR3,72,1);
VAR5:=SMA(VAR4,34,1);
中线趋势:=3*VAR4-2*VAR5;
中线趋势升:=(中线趋势-REF(中线趋势,1))>=0;
均五升:=(MA(C,5)-REF(MA(C,5),1))>=0;
均十升:=(MA(C,10)-REF(MA(C,10),1))>=0;
STICKLINE(均五升 AND 均十升 AND 中线趋势升,0+0.5,0-0.5,6,1),COLORFFFF00,LINETHICK1;
强势:IF(均五升 AND 均十升 AND 中线趋势升 AND 领涨,4,0),COLORRED;
VAR6:=(2*C+H+L)/4;
VAR7:=LLV(L,27);
VAR8:=HHV(H,27);
操作:EMA((VAR6-VAR7)/(VAR8-VAR7)*100,13)-50,LINETHICK1,COLORYELLOW;
趋势:EMA(0.618*REF(操作,1)+0.382*操作,3),COLORGREEN,LINETHICK1;
STICKLINE(操作>趋势 AND 操作>=REF(操作,1),操作+5,趋势-1,3.5,0),COLORRED,LINETHICK2;
STICKLINE(操作>=趋势,趋势,趋势,3.5,0),COLORYELLOW,LINETHICK2;
STICKLINE(操作<趋势,趋势+0.5,趋势-0.5,3.5,0),COLORFFFF00,LINETHICK2;
STICKLINE(强势=4,操作+6,趋势-1,4,0),COLORFF99FF;
强弱界:0,COLORWHITE;
STICKLINE(操作>=趋势 AND 均五升 AND 均十升 AND 中线趋势升,趋势-3,趋势-7,4,0),COLOR64A0E6;
运动:=IF(操作>=趋势 AND 均五升 AND 均十升 AND 中线趋势升 AND 趋势<0,1,0);
买进:IF(运动=1 AND COUNT(运动=1,5)=1,8,0),COLORGREEN,LINETHICK1;
DRAWTEXT(买进=8,操作,'买进'),COLORYELLOW;
BIAS1:=(C-MA(C,6))/MA(C,6)*100;
BIAS2:=(C-MA(C,12))/MA(C,12)*100;
BIAS3:=(C-MA(C,24))/MA(C,24)*100;
BIAS:=(BIAS1+2*BIAS2+3*BIAS3)/6;
乖离:=MA(BIAS,3);
准备:STICKLINE(乖离<-6 AND 乖离>=-12,-6,0,6,1 ),COLOR33FFCC;
抄底一:IF(乖离<-12 AND 乖离>=-18,-12,0),
,STICK;
STICKLINE(乖离<-12 AND 乖离>=-18,-12,0,6,0) ,COLOR33CCCC;
抄底二:IF(乖离<-18,-18,0),
,STICK;
STICKLINE(乖离<-18,-18,0,6 ,0) ,COLOR3399CC;
抄底:IF(买进=8 AND COUNT(乖离<-12,10)>=1,10,0),LINETHICK0,COLORRED;
STICKLINE(抄底=10,10,0,10,1),COLORRED;
DRAWTEXT(抄底=10,10,'&LARR;抄底'),COLORYELLOW;
DRAWTEXT(CROSS(操作,趋势) AND (操作>-30),操作,'▲'),COLORRED;
DRAWTEXT(CROSS(趋势,操作) AND (操作>-20),操作,'▼' ),COLOR00FF00</FONT>
<FONT COLOR="#FF00FF">;</FONT>
一、整体思路概述
这段代码是 通达信(TDX) 的 副图指标(即不直接叠加在 K 线,而是放在单独的副图窗口)。
它的核心是把 “个股‑大盘相对强弱”、“自定义中线趋势”、“短期均线方向”、“自定义振荡器(操作)” 与 “BIAS(乖离)” 等多个因子组合在一起,形成一套 “买入‑抄底‑卖出” 的信号体系。
适合 日线(也可用于周线/分钟线),对 指数的对比数据 有一定依赖(下面会说明)。
下面先把代码逐行翻译、标注,然后说明每个模块的作用、参数的含义、如何在软件里加载以及实战解读方法。
二、代码逐段解析(带注释)
为了方便阅读,我把原始代码重新排版,并在每行后面加入中文解释。
//开头的内容为说明,不是代码。
// 1️⃣ 个股‑大盘相对强弱
VAR1:=(C-REF(C,1))/REF(C,1); // 当日个股涨幅(%)
VAR2:=(INDEXC-REF(INDEXC,1))/REF(INDEXC,1); // 当日指数涨幅(%)
个股:=EMA(SUM(VAR1,20),5); // 20 日累计涨幅的 5 日 EMA → 个股平滑累计涨幅
大盘:=EMA(SUM(VAR2,20),5); // 同上,得到指数的平滑累计涨幅
领涨:=(个股-大盘)>=0; // 个股累计涨幅 ≥ 指数累计涨幅 → 领涨(布尔值);
// 2️⃣ 自定义中线趋势(类似 MACD 的思路)
VAR3:=(C-LLV(L,125))/(HHV(H,125)-LLV(L,125))*100; // 价格在近 125 日最高‑最低之间的位置(0‑100)
VAR4:=SMA(VAR3,72,1); // 72‑日简单均线 → 第一次平滑
VAR5:=SMA(VAR4,34,1); // 34‑日简单均线 → 第二次平滑
中线趋势:=3*VAR4-2*VAR5; // 3*快线‑2*慢线,类似 MACD 的 DIF
中线趋势升:=(中线趋势-REF(中线趋势,1))>=0; // 中线趋势向上否(布尔值)
// 3️⃣ 短期均线方向
均五升:=(MA(C,5)-REF(MA(C,5),1))>=0; // 5 日均线上升
均十升:=(MA(C,10)-REF(MA(C,10),1))>=0; // 10 日均线上升
// 4️⃣ 标记“强势”区间(黄色竖条 + 红色数值)
STICKLINE(均五升 AND 均十升 AND 中线趋势升,
0+0.5,0-0.5,6,1),COLORFFFF00,LINETHICK1; // 背景黄色竖条
强势:IF(均五升 AND 均十升 AND 中线趋势升 AND 领涨,4,0),COLORRED; // 4 表示满足全部强势条件
// 5️⃣ 操作(自定义振荡器) 与 趋势(信号线)
VAR6:=(2*C+H+L)/4; // 典型价(加权收盘)
VAR7:=LLV(L,27); // 27 日最低价
VAR8:=HHV(H,27); // 27 日最高价
操作:EMA((VAR6-VAR7)/(VAR8-VAR7)*100,13)-50, // 类似随机%K → EMA13 → 中心化到 -50~+50
LINETHICK1,COLORYELLOW;
趋势:EMA(0.618*REF(操作,1)+0.382*操作,3), // 0.618/0.382 是斐波那契加权EMA,周期 3
COLORGREEN,LINETHICK1;
// 6️⃣ 绘图:操作 vs 趋势 的交叉、强势区间
STICKLINE(操作>趋势 AND 操作>=REF(操作,1),
操作+5,趋势-1,3.5,0),COLORRED,LINETHICK2; // 上升段(红)
STICKLINE(操作>=趋势,趋势,趋势,3.5,0),
COLORYELLOW,LINETHICK2; // 持平(黄)
STICKLINE(操作<趋势,趋势+0.5,趋势-0.5,3.5,0),
COLORFFFF00,LINETHICK2; // 下降段(黄)
STICKLINE(强势=4,操作+6,趋势-1,4,0),COLORFF99FF; // 强势时出现粉色竖条
// 7️⃣ “强弱界” – 0 线
强弱界:0,COLORWHITE;
// 8️⃣ 进一步过滤的“运动”信号(买进的雏形)
STICKLINE(操作>=趋势 AND 均五升 AND 均十升 AND 中线趋势升,
趋势-3,趋势-7,4,0),COLOR64A0E6; // 蓝色竖条(买入区)
运动:=IF(操作>=趋势 AND 均五升 AND 均十升 AND 中线趋势升 AND 趋势<0,1,0);
// 9️⃣ 正式买入信号(买进)
买进:IF(运动=1 AND COUNT(运动=1,5)=1,8,0),COLORGREEN,LINETHICK1;
DRAWTEXT(买进=8,操作,'买进'),COLORYELLOW;
// 🔟 BIAS(乖离) 与 抄底信号
BIAS1:=(C-MA(C,6))/MA(C,6)*100; // 6 日乖离
BIAS2:=(C-MA(C,12))/MA(C,12)*100; // 12 日乖离
BIAS3:=(C-MA(C,24))/MA(C,24)*100; // 24 日乖离
BIAS:=(BIAS1+2*BIAS2+3*BIAS3)/6; // 加权乖离(1、2、3 倍)
乖离:=MA(BIAS,3); // 3 日平滑
// ① 乖离的三个层次(准备、抄底一、抄底二)
准备:STICKLINE(乖离<-6 AND 乖离>=-12,-6,0,6,1),COLOR33FFCC; // 浅绿 → 预警
抄底一:IF(乖离<-12 AND 乖离>=-18,-12,0),STICK;
STICKLINE(乖离<-12 AND 乖离>=-18,-12,0,6,0),COLOR33CCCC; // 深青 → 第一次抄底区
抄底二:IF(乖离<-18,-18,0),STICK;
STICKLINE(乖离<-18,-18,0,6,0),COLOR3399CC; // 深蓝 → 第二次抄底区
// ② 合并“买进”+“乖离”得到“抄底”
抄底:IF(买进=8 AND COUNT(乖离<-12,10)>=1,10,0),LINETHICK0,COLORRED;
STICKLINE(抄底=10,10,0,10,1),COLORRED;
DRAWTEXT(抄底=10,10,'&LARR;抄底'),COLORYELLOW;
// ③ 交叉箭头(买卖提示)
DRAWTEXT(CROSS(操作,趋势) AND (操作>-30),操作,'▲'),COLORRED;
DRAWTEXT(CROSS(趋势,操作) AND (操作>-20),操作,'▼'),COLOR00FF00;
说明
INDEXC必须有对应的指数收盘价,否则领涨永远为 0(后面有解决办法)。- 代码里出现的 4、8、10 主要是用来在副图中绘图的数值,对分析意义不大,只是为了让
STICKLINE/DRAWTEXT能够显示。- 所有
STICKLINE都是 副图 中的竖条或色块;DRAWTEXT用来在副图上标注文字或符号。
三、模块功能拆解
| 编号 | 模块 | 关键变量 | 作用/意义 |
|---|---|---|---|
| 1 | 相对强弱 | 领涨 |
判断 个股 20‑日累计涨幅是否超过 指数(默认是上证指数),是 → 领涨,代表相对强势。 |
| 2 | 中线趋势 | 中线趋势, 中线趋势升 |
依据 125‑日区间位(VAR3)的 72‑日/34‑日 SMA 组合,生成一个类似 MACD DIF 的指标。上升表示中期趋势向上。 |
| 3 | 均线方向 | 均五升, 均十升 |
5 日、10 日均线的 方向,用于捕捉短期动能。 |
| 4 | 强势 | 强势 |
当 均线向上 + 中线上升 + 领涨 同时满足,标记为 强势(数值为 4)。 |
| 5 | 操作(振荡器) | 操作 |
类似 随机 %K(0‑100) → EMA13 → 中心平移(‑50),范围约 ‑50~+50。 |
| 6 | 趋势(信号线) | 趋势 |
操作的 EMA(0.618/0.382 加权),周期 3,起平滑作用。 |
| 7 | 交叉信号 | ▲, ▼ |
操作 上穿 趋势(且 操作>-30) → 买入箭头;下穿(且 操作>-20) → 卖出箭头。 |
| 8 | 运动 | 运动 |
当 操作≥趋势、均线向上、中线上升 且 趋势<0(超卖区)时,记为 运动(1),是潜在的买入雏形。 |
| 9 | 买进 | 买进 |
运动 首次出现(过去 5 根 bar 内没有运动)时触发,值为 8。配合文字 “买进”。 |
| 10 | 乖离(BIAS) | BIAS、乖离 |
价格相对 6/12/24 日均线的偏离度,做 3 日平滑。用来判断 超买/超卖。 |
| 11 | 抄底 | 抄底 |
满足 买进 且 过去 10 天内出现至少一次乖离 <‑12(即明显超卖),标记为 抄底(数值 10),并在副图上显示 “←抄底”。 |
| 12 | 乖离分层 | 准备、抄底一、抄底二 |
用颜色区分 ‑6~‑12(准备),‑12~‑18(第一次抄底),<‑18(深度抄底),供直观判断超卖程度。 |
四、在通达信里如何加载
以下步骤以 通达信 6.x / 7.x 为例,略有差异请自行对应。
-
打开股票(或ETF、期货)日线(也可以是周线、分钟线)。
-
加载对应的指数(上证指数 / 深证成指 / 沪深 300 等),否则
INDEXC为 0,领涨 永远为 0。- 在行情页面 → 功能 → 对比指数(或 “设置 → 对比指数”),勾选 “上证指数”(代码 000001)或你想对比的指数。
- 加载后,系统会把指数的收盘价命名为
INDEXC,公式里直接使用即可。
-
新建指标
- 菜单 “功能” → “公式系统” → “公式编辑器”。
- 在左侧树形目录里选择 “新建” → “副图指标”。
- 给指标起个名字,例如 “舍不得发指标(副图)”。
-
粘贴代码
- 将上面的完整代码(不含
<FONT>标签)粘贴到 “代码” 文本框。 - 检查是否有语法错误(通达信会自动检查并提示)。
- 将上面的完整代码(不含
-
保存 → 关闭。
-
在行情界面右键 → “副图指标” → 选择 “舍不得发指标(副图)”。
-
查看
- 副图窗口出现 操作(黄线)、趋势(绿线)、各种 竖条、箭头、文字。
- 可以右键副图 → “指标属性” 对 线条颜色/粗细 进行微调。
常见问题
- 没有 “INDEXC”:请确认已 加载指数,或在公式里自行定义
INDEXC:=CLOSE('SH000001');(需要把指数代码改成对应的指数代码)。- 信号太多:可自行在 “运动” 或 “买进” 前加入成交量、均线多头排列等过滤条件。
- 不显示文字:有时 TDX 的
DRAWTEXT在副图里会被截断,确保副图高度足够(右键副图 → “属性” → “高度”)。
五、信号解读与实战用法
以下建议 仅作参考,实际交易请结合 仓位管理、止损/止盈、宏观经济 等因素。
| 信号 | 出现位置 | 含义 | 操作建议 |
|---|---|---|---|
领涨 = 1(领涨) |
副图的数值(不显示图形) | 个股累计涨幅已超过指数,说明相对大盘强。 | 只做 领涨 为 1 的标的,以提高胜率。 |
强势 = 4(强势) |
副图数值(红色 4) | “均线上升 + 中线上升 + 领涨” 同时满足。 | 视为 强势股,可考虑 顺势买入(如出现 ▲ 或 买进)。 |
操作 上穿趋势 (▲) |
操作线从下往上穿过趋势线,且 操作 > -30 |
短期动能转强,买入信号。 | 可 轻仓买入,设止损在 近期最低点 略下方。 |
| 运动 = 1 | 副图数值(不显示) | 同时满足 操作≥趋势、均线向上、中线向上、趋势<0(趋势仍在负区),表示 低位反弹。 | 关注,后续出现 买进 则确定性更高。 |
| 买进(文字 + 竖条) | 买进=8 位置 |
运动 首次出现(过去 5 根K线没有运动),且 趋势仍 < 0,是 “低位启动” 的明确买入点。 | 买入,止损可设在 近期最低 或 趋势线 下方 2~3%。 |
| 抄底(文字 “←抄底”) | 抄底=10 位置 |
买进 发生后 10 天内 出现过 乖离 <‑12(即明显超卖),表明 “在深度超卖后重新上涨”。 | 加仓(或全仓)信号,止损同上。 |
乖离三层(准备、抄底一、抄底二) |
副图竖条颜色不同 | -6 ~ -12(准备)→ 预警 -12 ~ -18(抄底一)→ 第一次抄底区 <-18(抄底二)→ 深度超卖 |
关注 乖离 进入这些区间,随后出现 买进/抄底 时买入成功率更高。 |
操作 下穿趋势 (▼) |
操作 从上往下穿过趋势,且 操作 > -20 |
短期动能转弱,可能出现回调。 | 可考虑 减仓 或 止损,若持有 空头 可考虑 开空。 |
| 强弱界 = 0 | 白线 | “操作” 的零轴,代表 多空平衡点。 | 结合 操作 与 趋势 的相对位置判断 偏多/偏空。 |
组合过滤示例(提高信号的可靠性)
// 只在以下条件全部满足时产生买入信号
买入条件 = 领涨=1 // 相对强于大盘
AND 强势=4 // 均线+中线+领涨 同时成立
AND CROSS(操作,趋势) // 操作上穿趋势
AND 操作 > -30 // 操作已经在负区不太深
AND 乖离 < -6; // 已经有轻微超卖(准备区)
上述过滤可自行写成一个 新指标(如
买入过滤),或者直接在 “买进” 前加AND条件。
六、关键参数 & 可调节的地方
| 参数 | 位置 | 默认值 | 调整建议 |
|---|---|---|---|
| 相对强弱累计天数 | SUM(VAR1,20)、SUM(VAR2,20) |
20 | 如想更快反应可改为 10~15;想更稳健可改为 30。 |
| 中线趋势的周期 | LLV(L,125) / HHV(H,125) |
125 | 对中期趋势敏感度有要求可改为 90、150。 |
| 中线趋势的 SMA 参数 | VAR4 72、VAR5 34 |
72、34 | 数值越大越平滑,可改为 60/30、80/40 等。 |
| 操作的周期 | (VAR6‑VAR7)/(VAR8‑VAR7)*100 的 EMA 13 |
13 | 想更快可改为 9、10;想更稳可改为 20。 |
| 趋势的加权 | 0.618*REF(操作,1)+0.382*操作 |
0.618/0.382(斐波那契) | 可改为 0.5*REF(操作,1)+0.5*操作(等权)或自定义系数。 |
| BIAS 的均线周期 | 6、12、24 | 6、12、24 | 可改为 5、10、20(更敏感)或 7、14、28(更平滑)。 |
| 乖离的平滑 | MA(BIAS,3) |
3 | 想更平滑可改为 5、7。 |
| 抄底判定的乖离阈值 | COUNT(乖离<-12,10)>=1 |
-12(10 天内出现一次) | 若想更严格可改为 <-15;若想更宽松可改为 <-10。 |
提醒:修改任何参数后 一定要重新回测,观察信号的频率与实际走势的匹配程度,再决定是否实盘使用。
七、常见的实战组合(可选)
| 组合指标 | 作用 | 备注 |
|---|---|---|
| 成交量(VOL) + MA(VOL,5) | 验证买入信号的成交量放大 | 只在 VOL > MA(VOL,5) 时才认可 买进 / 抄底,防止假突破。 |
| MACD(DIF、DEA) | 辅助判断中线趋势方向 | 当 MACD 金叉且 操作 上穿趋势时,可视为 双金叉,信号更可靠。 |
| KDJ(J) | 判别超买/超卖 | 当 J<20 且出现 买进/抄底,可增强抄底信号的把握。 |
| 布林带(BOLL) | 判断价格是否触底 | 当价格跌破 下轨 且 乖离<-12,随后出现 买进,可视为 布林带底背离。 |
| 均线多头排列(5>10>20>60) | 过滤逆势股 | 只在 均线多头 且 领涨=1 时使用 强势=4。 |
只要在 公式编辑器 中新增 “组合指标”(例如
买入验证),把上面的逻辑写进去,然后和本指标一起放在副图,即可实现多指标联合信号。
八、完整的“舍不得发指标”使用流程(示例)
- 打开上证指数(000001)并 加载指数(如 “对比指数 → 上证指数”)。
- 打开目标个股(如 平安银行)。
- 在副图加载本指标。
- 观察:
- 领涨 为 1 → 表示该股近期累计涨幅跑赢上证。
- 强势 为 4 → 同时满足均线向上 + 中线向上。
- 操作(黄线)在 趋势(绿线)之上并且出现 ▲(红箭头),且 操作 > -30,可考虑 轻仓买入。
- 随后出现 买进(绿色竖条 + “买进” 文字),且 趋势 仍在 0 以下(负区),说明在 低位 启动。
- 乖离 已进入 准备区(‑6~‑12) 甚至 抄底一区(‑12~‑18),且 10 天内 出现 乖离 <‑12,随后出现 抄底(红竖条 + “←抄底”),可以 加仓。
- 若 操作 下穿 趋势 并出现 ▼(绿箭头),且 操作 > -20,可考虑 减仓 或 止盈。
实战技巧
- 止损:若买入后 操作 跌破 趋势 且 操作 < -40,建议 止损。
- 止盈:当 操作 远离 趋势(例如 操作 > +30)且出现 逆向交叉(下穿)时,可 部分止盈。
- 仓位:单只股票不超过 总资金的 10%;抄底 信号出现后,可适当加到 15%,但仍要保留足够现金。
九、结论
- 这是一套 多因子 的 副图 指标,融合了 相对强弱、自定义中线趋势、短期均线方向、随机类振荡器 与 BIAS 乖离 四大模块。
- 核心买点是:
操作上穿趋势+领涨+均线向上+中线向上→ 产生 买进;若后续出现 乖离<-12(即深度超卖)则形成 抄底,是“低位启动 + 超卖反弹” 的强信号。 - 使用要点:
- 必须先加载指数(
INDEXC才有值),否则领涨与强势失效。 - 信号较多,建议配合 成交量、MACD、KDJ 等过滤。
- 参数可自行调节,但要通过 回测 验证效果。
- 遵守止损/止盈纪律,防止单笔亏损侵蚀整体收益。
- 必须先加载指数(