最近在写一个抓"上升趋势中死叉回踩后放量启动"的选股公式,逻辑想清楚了,写出来却一直报错。记录一下踩坑过程和最终解法,供遇到同类问题的朋友参考。
一、原始思路
想抓的形态是:均线大方向向上(5/10日线都在抬头),但近期出现了死叉(短期回踩),价格压到均线附近,前一天收阴制造恐慌,当天放量。五层条件共振,相当于"洗盘结束、准备拉升"的技术结构。
核心难点在第二步:怎么表达"近N日内发生过死叉"。
二、踩坑:COUNT嵌套CROSS报错
最初的写法是这样的:
BB:=MA(C,5)<MA(C,10) AND COUNT(CROSS(MA(C,10),MA(C,5)),2)=1; |
测试直接报错:"函数 CROSS 的参数个数不应多于 2 个"
原因是通达信的 CROSS(A,B) 函数只接受2个参数(A从下向上穿过B)。把 CROSS(...) 直接塞进 COUNT() 里,编译器会把 COUNT 的括号参数也算到 CROSS 头上,导致参数超标。
这不是个例——凡是 COUNT(CROSS(...), N) 的写法都会触发这个报错。搜了一下论坛,很多人在这里卡过。
三、解法:拆成两个变量
修复思路很简单:把"是否发生死叉"和"统计N日内出现几次"拆成两行。
{拆写法:先定义交叉条件} |
这样 CROSS 只接收2个参数,编译通过。这是通达信公式编写中一个很常见但文档里不写的坑。
四、完整公式源码
修复后的完整选股公式:
{切线多方炮·回踩点火 · 选股} Ctrl+A 全选复制 → 通达信公式管理器 → 条件选股 → 新建 |
五、参数选择说明
为什么COUNT设2而不是3?——死叉后如果第3天还没反应,大概率不是回踩而是真跌,所以只给2天窗口。 |
六、主图+副图配套
选股公式只负责筛选,配合主副图可以直观看到信号位置。主图用白色均线做底,黄色标记死叉回踩日(预警),绿色标记最终点火信号(核心)。副图同步:白色折线看均线方向,黄色柱标记回踩,绿色柱标记点火。
完整主图/副图源码已同步整理,需要的话可以留言,下期贴出来。
📌 本期要点回顾:① COUNT嵌套CROSS必报错,拆两行写即可 ② 参数选择要有逻辑依据,不能拍脑袋 ③ 黑底终端配色优先白黄绿,避免暗色系糊成一片 |
—— 通达信公式编写笔记 · 第118期 · 技术交流 ——

