【风险提示】 本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
我前50个公式都有一个通病:选出来的票三分之一不能买。ST的、停牌的、上市3天的次新、退市整理期的……后来我提炼出4个通用过滤条件,每个公式开头先写这4行,再也没踩过这种低级坑。
一、原版源码拆解
网上最常见的写法:无统一原版,各公式重复写过滤条件。
主要问题有:
① 每个公式都从头写排除条件,容易遗漏
② 没有统一的过滤框架,质量参差不齐
③ 次新股和ST股混入选股结果
二、优化版源码(可直接复制)
下面是我改完的版本,每一行都有改动的理由:
{万能过滤框架:每个公式开头先写这4行}
{— 1. 排除ST/*ST/退市 —}
非ST:=NAMELIKE('ST')=0 AND NAMELIKE('*ST')=0;
{— 2. 排除新股(上市>30个交易日) —}
非新股:=BARSCOUNT(C)>30;
{— 3. 排除停牌(今日有成交量) —}
非停牌:=VOL>0;
{— 4. 趋势过滤(站上20日线) —}
趋势OK:=C>MA(C,20);
{— 过滤组合(后续公式直接引用) —}
基础过滤:=非ST AND 非新股 AND 非停牌 AND 趋势OK;
{— 示例:叠加一个简单条件 —}
示例条件:=C>REF(C,1)*1.03;
XG:
基础过滤
AND 示例条件;
三、这次改了什么?
无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等函数。
核心优化:
1. 4个过滤条件封装成"基础过滤"变量,一处定义处处复用;
2. ST判断覆盖ST和*ST两种情况;
3. 非停牌用VOL>0判断,简单有效;
核心优化:
1. 4个过滤条件封装成"基础过滤"变量,一处定义处处复用;
2. ST判断覆盖ST和*ST两种情况;
3. 非停牌用VOL>0判断,简单有效;
【编者手记】 这4行代码是我写过最有价值的20行之一。它不帮你找到牛股,但它帮你避开垃圾。选股公式的第一原则不是"选出什么",而是"排除什么"。先把不能买的剔干净,剩下的再谈技术面。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。

