通达信的选股公式要解决的,是把一个模糊的筛选想法翻译成明确的布尔条件。翻不动的地方,往往不是语法不熟,而是想法本身还没被定义清楚。这篇按「需求拆解、条件书写、结果复核」三段来讲,重点放在那些容易含糊过去的地方。
一、先把筛选想法拆成可判定的条件
「找形态好的股票」不是可判定条件,因为「好」没有落点。可判定条件的特征是能用一组数值比较判断成立或不成立。拆解的过程就是把形容词换成数值关系。
| 模糊表述 | 需要补上的定义 | 可判定形式 |
|---|---|---|
| 量能放大 | 与谁比、放大多少、比几天 | 当日量大于 N 日均量的 M 倍 |
| 价格走强 | 相对什么走强、看几天 | 收盘价高于 N 日前的收盘价 |
| 趋势向上 | 用哪条线判断、几根确认 | 短期均线连续抬高若干根 |
| 回踩企稳 | 回踩到什么位置、怎么算企稳 | 触及均线后收盘价回到均线上方 |
拆解到什么程度算够,判断标准是:换一个人按这条定义去手工筛选,能不能得到同一批结果。能得到,说明定义清楚;每个人筛出来的不一样,说明还差一层。
二、条件的书写:从单项开始
通达信的选股公式,每一条定义先单独写成一行,不要一上来就合并。
{ 量能条件:当日量高于近 20 日均量的 1.5 倍 }
量能比: VOL / MA(VOL, 20);
放量: 量能比 > 1.5;
{ 价格条件:站上 20 日均线 }
均线: MA(CLOSE, 20);
站上均线: CLOSE > 均线;
{ 趋势条件:均线本身在抬高 }
均线向上: 均线 > REF(均线, 1);
分开写的好处是每条都能独立验证。合起来写成一个长表达式,出问题时无法定位是哪一环失效。
三、参数化:让条件可调
把数字直接写死在公式里,后续调整参数就得改源码。把它们提成参数,改动成本和风险都更低。
{ 参数定义 }
参数 量能倍数: 1.5
参数 均线周期: 20
参数 观察根数: 5
{ 在条件中引用 }
量能比: VOL / MA(VOL, 均线周期);
放量: 量能比 > 量能倍数;
站上均线: CLOSE > MA(CLOSE, 均线周期);
参数不宜太多。每多一个,需要验证的组合数就成倍增长。优先把影响最大的两三个提出来,其余先保留常量。
四、条件组合:AND 与 OR 的取舍
多个条件合成一个选股结果,是用「同时满足」还是「满足其一」,直接决定候选集的大小。
{ 同时满足:条件更严,结果更少 }
选股: 放量 AND 站上均线 AND 均线向上;
{ 满足其一:条件更宽,结果更多 }
选股: 放量 OR 站上均线;
{ 分组:用括号明确优先级 }
选股: (放量 AND 站上均线) OR 均线向上;
条件数一多,用括号分层比依赖默认优先级稳妥。默认的运算顺序在不同语境下容易记混,写清楚可以省掉一整轮排查。
五、结果排序与输出
选股公式的输出是「成立或不成立」,不带优劣排序。若来源页面需要看到排序,还要额外配一个排序用的数值。
{ 排序值:越大排越前 }
排名分: 量能比 * 100 + (CLOSE - 均线) / 均线 * 100;
把两个不同量纲的指标相加前,各自先换算成相对值,否则量能比的数值范围会完全压过价差项,排序结果实际只由量能决定。
六、结果复核:四步走
通达信的选股公式跑出结果后,别急着用。按下面四步核一遍,能把大部分问题挡在前面。
| 步骤 | 要确认什么 | 异常信号 |
|---|---|---|
| 单条统计 | 每条条件各自命中多少 | 某条命中为零 |
| 逐层收窄 | 加上第二条、第三条后剩多少 | 加一条就归零 |
| 抽样核对 | 随机几只手工验一遍 | 手工结果与公式不符 |
| 换区间复核 | 换一段时间段重跑 | 结果只在特定区间出现 |
第一步最关键。用 COUNT 或 SUM 把每条条件单独统计一遍,命中数量一目了然。
{ 逐条统计命中数量 }
统计放量: COUNT(放量, 250);
统计站上: COUNT(站上均线, 250);
第二步是逐层收窄。先只留第一条,看候选数量;加上第二条再数一次;加上第三条再数一次。数量在哪一步归零,问题就在那一步。
七、常见失效原因
一是数据不足。均线周期 20 意味着序列开头 20 根没有值,考察区间如果太短,条件无法成立。先确认数据长度超过最长周期。
二是复权口径不一致。除权日附近的价格比较会出现偏差,尤其在涉及跨除权日的价格差计算时。统一复权口径后重跑。
三是引用位置写错。该取前一根的地方写成当根,或者反过来,会出现恒成立或恒不成立。这类错误不报错,只能靠统计命中数量发现。
四是周期不匹配。条件是按日线写的,公式挂到了分钟周期上,参数含义完全不同。
这四点里,前两点属于数据问题,后两点属于写法问题。按「先数据后写法」的顺序排查,比两边同时改更高效。
八、从想法到可用的完整链条
需求拆解 → 单项书写 → 参数化 → 组合 → 排序 → 复核,这六步是选股公式的完整过程。跳过拆解直接写,后面会在复核环节反复返工;跳过复核直接使用,问题会带到实际筛选里。
相关的语法基础见 公式编写教程;条件判断的更多形态可对照 量价形态与信号拆解;参数如何影响结果数量见 指标原理与参数;验证方法见 选股公式与预警。
选股公式的价值不在写得多复杂,而在定义得多清楚。拆到能被手工复现的那一层,公式才真正为需求服务。
