简介:本资源是一份面向股票量化分析初学者与通达信公式开发者的实用技术文档,提供13类主流技术指标(含MA、RSI、MACD、DMI、CCI、W%R、OSC、MTM、DPO、布林线、BRAR、VR、WVAD等)的完整通达信公式源码及信号逻辑说明。每类指标均包含原始计算公式与标准化买卖信号输出(如P01-P23),便于直接导入通达信软件调试使用或作为学习模板理解指标原理。资源为单文件Word文档(.doc),大小192KB,结构清晰、注释详尽,涵盖移动平均、动量、趋势、波动率、成交量五大分析维度,适合自学研究、策略验证与教学参考。目前已有1869人学习下载,内容可直接用于实盘辅助决策或指标二次开发,是通达信用户快速掌握多因子信号合成逻辑的高价值入门资料。
1. 决策曲线不是画出来的,是用通达信公式语言“算”出来的
很多刚接触通达信指标公式的用户,看到“决策曲线”四个字,第一反应是找现成的图形模板、下载带图标的.doc文件,甚至试图用 Word 打开源码——结果发现全是乱码或空文档。实际上,“决策曲线通达信指标公式源码.doc”这个标题里藏着一个关键事实:它根本不是文档,而是对一类特定逻辑指标的命名性描述;所谓“.doc”,极大概率是误传后缀,真实内容应为纯文本格式的 TDX 公式代码(.tni或.tn6)。这类指标不依赖外部数据接口或插件,完全基于通达信内置函数(如REF,MA,CROSS,SUM)对行情数据做多周期嵌套运算,最终输出一条能动态反映价格主导方向的平滑曲线。它常被用于替代传统 MACD 的零轴穿越信号,尤其适合在震荡市中过滤假突破。适用人群非常明确:有基础公式阅读能力的个人交易者、需要复用逻辑做二次开发的量化初学者、以及正在从同花顺/大智慧迁移至通达信平台的策略工程师。
2. 通达信决策曲线的核心逻辑:三阶平滑 + 动态阈值判定
通达信中“决策曲线”并非官方定义术语,而是社区对一类具备方向识别+趋势确认双重功能的自定义指标的统称。其本质是将价格序列经三次不同粒度的移动平均处理,并引入波动率自适应机制,使输出曲线既不过度滞后,也不过度敏感。理解这一逻辑,是读懂任何“决策曲线源码”的前提。
2.1 为什么必须用三阶平滑?单MA或双MA为什么不够?
单周期简单移动平均(如MA(C,20))响应快但噪声大,在窄幅震荡中频繁金死叉;双周期组合(如DIFF:=MA(C,12)-MA(C,26))虽引入差值概念,但固定周期无法适配不同品种波动特性。而决策曲线采用“短周期趋势锚定 + 中周期滤波 + 长周期基准校准”的三层结构:
- 第一阶:
A1 := MA(C, 5)—— 捕捉日内主力动作,对跳空缺口敏感; - 第二阶:
A2 := MA(A1, 10)—— 平滑掉单日异常波动,保留3–5日节奏; - 第三阶:
A3 := MA(A2, 20)—— 构建月线级趋势参照系,作为动态零轴。
提示:这里的
5/10/20是典型参数组合,非固定值。实际使用中需根据标的流动性调整:创业板个股可缩为3/6/12,上证50ETF 可扩至8/16/32。核心原则是保持阶间倍数关系(通常为2倍),避免相位抵消。
2.2 动态阈值如何实现?用STD替代固定百分比
传统指标常用“上涨超3%触发信号”这类静态阈值,但在通达信公式中极易失效。决策曲线普遍采用标准差(STD)构建动态边界:
// 通达信公式语法(.tni 格式) N := 20; MID := MA(C, N); DEV := STD(C, N); // N日收盘价标准差 UPPER := MID + 1.5 * DEV; LOWER := MID - 1.5 * DEV; DECISION_LINE := (C - LOWER) / (UPPER - LOWER) * 100; // 归一化到0–100区间这段代码的关键在于:DEV随市场波动率自动放大或收缩阈值范围。当连续涨停时DEV增大,UPPER上移,避免追高信号;当地量横盘时DEV缩小,LOWER下压,增强底部识别灵敏度。这正是“决策”二字的技术落脚点——不是被动跟随价格,而是依据当前状态主动重设判断标尺。
2.3 如何验证公式是否真正“通达信原生”?看三个硬性特征
一份合格的通达信决策曲线源码,必须满足以下三点,缺一不可:
| 特征 | 正确表现 | 错误表现 | 验证方法 |
|---|---|---|---|
| 函数调用 | 全部使用REF,HHV,LLV,BARSLAST等内置函数 | 出现GetStockData(),HttpQuery()等扩展函数 | 在公式管理器中粘贴后点击“检测”,报错即含非法函数 |
| 无外部依赖 | 不含DATA、FILE、READ类文件操作指令 | 存在READTEXT("C:\xxx.txt")或类似语句 | 搜索关键词READ,WRITE,FILE |
| 绘图指令规范 | 使用DRAWLINE,DRAWICON,STICKLINE等标准绘图函数 | 出现PlotSeries(),AddChart()等非TDX语法 | 查看绘图段是否以DRAW开头且参数为数值序列 |
若某份所谓“源码.doc”中混杂 Python 语法(如def decision_curve():)或 Excel 公式(如=AVERAGE(B2:B21)),则属于误传或教学演示稿,不可直接导入通达信。
3. 从“.doc”误传文件还原真实公式:三步清洗与重构
标题中“.doc”后缀是最大干扰项。现实中,90%以上的“决策曲线源码.doc”实为用户将.tni文件错误保存为 Word 格式,或用 Office 打开纯文本公式导致编码错乱。下面给出可立即执行的还原方案。
3.1 第一步:用记事本打开并识别原始结构
将.doc文件拖入 Windows 记事本(不要用 Word 或 WPS),观察首行内容:
- 若显示乱码(如
PK...)→ 实为 ZIP 压缩包,需用 7-Zip 解压后查找.tni文件; - 若显示中文但排版错乱(如“公式名称:决策曲线”后接大量空格)→ 实为 ANSI 编码文本,需转为 UTF-8;
- 若首行为
PARK:="决策曲线";或{决策曲线}→ 确认为通达信公式,但可能含 Word 自动插入的不可见字符(如 ,​)。
注意:通达信公式文件必须为ANSI 编码(非 UTF-8),否则导入后中文注释会显示为方块。Windows 记事本另存时请选择“ANSI”,Notepad++ 则在编码菜单中选“转为 ANSI”。
3.2 第二步:清除 Word 特有控制符与格式残留
即使看似是纯文本,Word 保存的.doc常嵌入隐藏控制符。用正则批量清理(推荐 Notepad++):
| 查找内容 | 替换为 | 作用 |
|---|---|---|
\r\n\r\n | \r\n | 合并多余空行(通达信不支持连续空行) |
| (全角空格) | (半角空格) | 避免公式解析失败 |
()【】『』 | ()[]<> | 统一括号为 ASCII 字符 |
//.*$(正则) | 空 | 删除单行注释(通达信不支持//,仅支持{}或;) |
清理后应得到如下典型结构:
{决策曲线 V1.0} PARK:="决策曲线"; SHORT:=MA(C,5); MID:=MA(SHORT,10); LONG:=MA(MID,20); DECISION:(SHORT+MID+LONG)/3,COLORSTICK;3.3 第三步:补全缺失绘图指令与参数声明
原始.doc常遗漏关键声明。完整决策曲线公式必须包含:
{决策曲线 V1.0 —— 支持主图/副图切换} PARK:="决策曲线"; INPUT:N(20,5,120,5),K(1.5,0.5,3,0.1); // 参数声明:N为基准周期,K为波动率倍数 // 主体计算 MID := MA(C, N); DEV := STD(C, N); UPPER := MID + K * DEV; LOWER := MID - K * DEV; DECISION_LINE := (C - LOWER) / (UPPER - LOWER) * 100; // 绘图指令(副图模式) STICKLINE(DECISION_LINE>50,50,DECISION_LINE,0,0),COLORRED; STICKLINE(DECISION_LINE<=50,50,DECISION_LINE,0,0),COLORGREEN; DRAWLINE(DECISION_LINE>=REF(DECISION_LINE,1),DECISION_LINE,DECISION_LINE<REF(DECISION_LINE,1),REF(DECISION_LINE,1),0),COLORBLUE;INPUT行定义可调参数,导入后可在公式管理器中滑动修改;STICKLINE实现红绿柱状填充,直观显示多空强弱;DRAWLINE连接连续上升/下降段,形成真正“曲线”视觉效果。
4. 在通达信中正确加载与调试:避开公式管理器的三大陷阱
即使源码已清洗完毕,直接导入仍可能失败。通达信公式管理器(F7)对文件格式、路径、权限极为敏感,以下是高频问题及解法。
4.1 陷阱一:“公式已存在”却无法覆盖?清空缓存再试
通达信会将公式编译后的.tn6文件缓存在T0002\signals目录下。若旧版本存在,新导入的同名公式不会更新。解决步骤:
# 1. 关闭通达信客户端 # 2. 进入安装目录(如 C:\newtdx\T0002\signals) # 3. 删除所有以 "决策曲线" 开头的 .tn6 文件(例:决策曲线.tn6、决策曲线_1.tn6) # 4. 重启通达信,再执行导入提示:
.tn6是通达信编译后的二进制文件,不可编辑。每次修改.tni源码后,必须重新导入才能生效。
4.2 陷阱二:主图显示异常?检查绘图属性与坐标系
决策曲线若设为主图指标,需确保其数值范围与价格匹配。常见错误是直接绘制DECISION_LINE(0–100区间),导致K线被压缩成一条细线。修正方法:
// 错误写法(主图模式下) DECISION_LINE,COLORBLUE; // 直接输出0–100值,与股价单位不匹配 // 正确写法(主图模式) BASE_PRICE := REF(C, N); // 以N日前收盘价为基准 OFFSET := (DECISION_LINE - 50) * BASE_PRICE * 0.01; // 每1单位=1%偏移 PLOT1: BASE_PRICE + OFFSET, COLORBLUE; // 叠加在K线附近副图模式则无需此转换,直接使用DECISION_LINE即可。
4.3 陷阱三:信号不触发?验证CROSS与BARSLAST的时序逻辑
用户常抱怨“明明价格穿过曲线却不发信号”,根源在于通达信的CROSS(A,B)函数要求A前一日≤B前一日,且A当日>B当日。若用CROSS(C, DECISION_LINE),因DECISION_LINE是计算值而非价格,易出现相位偏差。稳妥做法是:
// 定义辅助变量,确保严格时序 CURVE_UP := REF(DECISION_LINE,1) <= REF(DECISION_LINE,2) AND DECISION_LINE > REF(DECISION_LINE,1); CURVE_DOWN := REF(DECISION_LINE,1) >= REF(DECISION_LINE,2) AND DECISION_LINE < REF(DECISION_LINE,1); // 信号输出(副图中用图标标记) DRAWICON(CURVE_UP, DECISION_LINE, 1),COLORRED; // 红色箭头 DRAWICON(CURVE_DOWN, DECISION_LINE, 2),COLORGREEN; // 绿色箭头该写法绕过CROSS对历史值的隐式引用,显式定义上升/下降条件,兼容所有周期(1分钟至月线)。
5. 进阶技巧:将决策曲线转化为选股条件与预警规则
决策曲线的价值不仅在于图形展示,更在于其数值序列可直接参与条件筛选。这是区别于普通技术指标的核心优势——它输出的是标准化强度值(0–100),而非相对位置。
5.1 构建“趋势启动”选股公式:三日连续上升且突破阈值
以下公式可每日扫描全市场,找出决策曲线由弱转强的标的:
{决策曲线趋势启动选股} INPUT:N(20,5,120,5),K(1.5,0.5,3,0.1); MID := MA(C, N); DEV := STD(C, N); LOWER := MID - K * DEV; DECISION_LINE := (C - LOWER) / (MID + K * DEV - LOWER) * 100; // 条件:连续三日上升 + 当日值>60(强势区) UP3 := DECISION_LINE > REF(DECISION_LINE,1) AND REF(DECISION_LINE,1) > REF(DECISION_LINE,2) AND REF(DECISION_LINE,2) > REF(DECISION_LINE,3); STRONG := DECISION_LINE > 60; UP3 AND STRONG;在通达信“功能 → 分析家 → 选股器”中加载此公式,设置周期为“日线”,即可一键获取当日符合条件的股票列表。
5.2 设置实时预警:当决策曲线跌破40并放量时触发通知
通达信支持基于公式值的实时预警。配置步骤:
- 打开“系统 → 预警系统 → 新建预警”;
- 选择“公式预警”,粘贴以下代码:
INPUT:N(20,5,120,5); MID := MA(C, N); DEV := STD(C, N); LOWER := MID - 1.5 * DEV; DECISION_LINE := (C - LOWER) / (MID + 1.5 * DEV - LOWER) * 100; VOL_RATIO := V / REF(MA(V,5),1); // 当日成交量/5日均量 DECISION_LINE < 40 AND VOL_RATIO > 1.8; - 设置预警方式为“声音+弹窗”,触发条件选“满足条件时”。
该预警捕捉的是“弱势确认+资金异动”组合信号,在下跌末期常领先于MACD底背离出现。
5.3 与主力追踪指标联动:用决策曲线过滤假突破
单纯主力增仓信号(如主力净流入>0)胜率不足50%。加入决策曲线可大幅提升质量:
| 场景 | 主力信号 | 决策曲线值 | 联动结论 | 操作建议 |
|---|---|---|---|---|
| 主升初期 | 净流入↑↑ | >70 且上升 | 真突破 | 加仓 |
| 震荡诱多 | 净流入↑ | <50 且走平 | 假突破 | 观望 |
| 下跌抵抗 | 净流出↓ | 30–40 区间企稳 | 底部吸筹 | 分批建仓 |
实现该逻辑的副图公式片段:
// 主力资金流(简化版,实际需调用LXJZ函数) ZL_FLOW := (C-REF(C,1))/REF(C,1)*V; // 决策曲线强度 DC_STRENGTH := DECISION_LINE; // 联动信号(输出0/1) SIGNAL := IF(ZL_FLOW>0 AND DC_STRENGTH>65, 1, IF(ZL_FLOW<0 AND DC_STRENGTH<35, -1, 0)); DRAWTEXT(SIGNAL=1, 90, '真多'),COLORRED; DRAWTEXT(SIGNAL=-1, 10, '真空'),COLORGREEN;此联动模型不增加计算负担,却将单一因子决策升级为多维状态机,这才是“决策曲线”在实战中不可替代的底层价值。
本文还有配套的精品资源,点击获取