通达信选股公式怎么写?常用函数、实例与调试教程

通达信选股公式常用函数与实例教程封面

最后更新:2026年8月18日。通达信条件选股公式的核心,是把若干条件组合成一个最终输出。满足条件时输出 1,不满足时输出 0,再由条件选股器按股票范围和周期批量计算。

本文从公式结构和常用函数入门。所有示例只用于说明语法,不代表有效交易策略,更不代表未来收益。

一、选股公式的基本结构

常见写法是先定义中间变量,最后输出一个条件:

A1:=MA(CLOSE,5);
A2:=MA(CLOSE,20);
XG:CROSS(A1,A2);

:= 用于给变量赋值,通常不直接显示;最后的 XG: 是输出条件。条件选股公式应尽量保持一个明确输出,方便测试和排错。

二、常用数据和运算符

写法 含义
CLOSE 或 C 收盘价;当前K线未结束时仍可能变化
OPEN 或 O 开盘价
HIGH 或 H 最高价
LOW 或 L 最低价
VOL 或 V 成交量
AND、OR、NOT 并且、或者、条件取反
>、<、>=、<= 大小比较

三、CROSS:判断两条线是否上穿

M5:=MA(CLOSE,5);
M20:=MA(CLOSE,20);
XG:CROSS(M5,M20);

CROSS(A,B) 表示 A 在当前周期从下方向上穿过 B。它只描述一个交叉事件,不代表交叉后一定上涨。盘中使用当前K线时,交叉状态可能随价格变化。

四、COUNT:统计一段时间内满足了几次

XG:COUNT(CLOSE>OPEN,5)>=3;

这段示例表示最近 5 个周期中,收盘价高于开盘价的次数不少于 3。COUNT(条件,N) 适合表达“最近 N 周期出现至少几次”。

五、EVERY:连续多个周期都满足

M20:=MA(CLOSE,20);
XG:EVERY(CLOSE>M20,3);

EVERY(条件,N) 表示最近 N 个周期全部满足条件。这里仅说明连续条件的写法,不意味着站上均线就具备确定性。

六、EXIST:一段时间内至少出现过一次

M5:=MA(CLOSE,5);
M20:=MA(CLOSE,20);
XG:EXIST(CROSS(M5,M20),10);

EXIST(条件,N) 表示最近 N 个周期中至少有一次满足。它与 COUNT 的区别是只关心有没有出现,不关心具体次数。

七、REF:引用之前的历史数据

YC:=REF(CLOSE,1);
XG:CLOSE>YC;

REF(CLOSE,1) 表示上一周期的收盘价,是正常的历史引用。不要把正周期 REF 与未来引用混为一谈;也不要使用负周期或任何读取后续K线的变相写法。更多判断方法见通达信未来函数与信号漂移检测教程

八、组合条件示例

M5:=MA(CLOSE,5);
M20:=MA(CLOSE,20);
C1:=CROSS(M5,M20);
C2:=VOL>MA(VOL,5)*1.5;
C3:=CLOSE>OPEN;
XG:C1 AND C2 AND C3;

组合公式时建议把每个条件拆成 C1、C2、C3,再逐个测试。这样如果结果数量异常,可以临时只输出某一个条件,快速找到过严、过松或写错的部分。

九、怎样在通达信中创建和测试

  1. Ctrl+F 打开公式管理器。
  2. 选择“条件选股公式”,点击新建。
  3. 填写名称、参数并粘贴源码。
  4. 点击测试公式,先解决所有语法和引用错误。
  5. 保存后按 Ctrl+T 打开条件选股,选择公式、周期和股票范围。
  6. 补齐行情数据后运行,记录实际结果数量。

若手里是 TN6/TNE 文件或复制来的源码,可先看通达信公式导入与安装教程

十、调试公式的实用方法

  • 从少到多:先让一个条件正常输出,再逐项增加。
  • 检查周期:日线公式在分钟周期运行,含义会完全不同。
  • 检查括号和标点:网页复制的全角冒号、逗号和引号常导致报错。
  • 记录样本:不要只看少数成功案例,也要检查没有触发和触发失败的日期。
  • 避免偷看未来:信号整体使用可获得的数据,并区分盘中条件与收盘确认。

十一、常见误区

公式测试通过,就说明公式有效?

测试通过只代表语法能够运行,不代表逻辑合理,更不代表有稳定收益。

选出来的股票越少,公式越精准?

结果少可能只是条件过严。精度需要用独立样本、真实信号时间和交易成本验证,不能用数量代替。

把更多条件叠加在一起会更好吗?

条件越多越容易针对历史样本过度拟合。优先使用含义清楚、可解释、能单独验证的条件。

更多基础操作可返回通达信基础使用教程中心

风险提示:本文示例只用于学习公式语言和软件操作,不构成选股建议或投资建议。