大数跨境

通达信COUNT+CROSS嵌套报错?第118期公式踩坑记录

通达信COUNT+CROSS嵌套报错?第118期公式踩坑记录 AI选股器
2026-10-29
8
导读:最近在写一个抓"上升趋势中死叉回踩后放量启动"的选股公式,逻辑想清楚了,写出来却一直报错。

最近在写一个抓"上升趋势中死叉回踩后放量启动"的选股公式,逻辑想清楚了,写出来却一直报错。记录一下踩坑过程和最终解法,供遇到同类问题的朋友参考。

一、原始思路

想抓的形态是:均线大方向向上(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(MA(C,10),MA(C,5));
{再统计}\nBB:=MA(C,5)<MA(C,10) AND COUNT(死叉,2)=1;

这样 CROSS 只接收2个参数,编译通过。这是通达信公式编写中一个很常见但文档里不写的坑。

四、完整公式源码

修复后的完整选股公式:

{切线多方炮·回踩点火 · 选股}
{1.均线多头续行}\nAA:=MA(C,5)>REF(MA(C,5),1) AND MA(C,10)>REF(MA(C,10),1);
{2.近2日死叉回踩}\n死叉:=CROSS(MA(C,10),MA(C,5));
BB:=MA(C,5)<MA(C,10) AND COUNT(死叉,2)=1;
{3.价格压回切线区}\nCC:=OPEN<MA(C,5) AND C<MA(C,10);
{4.昨日阴线恐慌}\nDD:=REF(C,1)<REF(OPEN,1);
{5.放量}\nEE:=VOL/CAPITAL>0.02;
{共振}\nXG:AA AND BB AND CC AND DD AND EE;

Ctrl+A 全选复制 → 通达信公式管理器 → 条件选股 → 新建

五、参数选择说明

为什么COUNT设2而不是3?——死叉后如果第3天还没反应,大概率不是回踩而是真跌,所以只给2天窗口。

为什么换手设2%?——低于2%的"死叉回踩"往往是缩量阴跌,没有资金承接;2%以上说明有真金白银在接。

为什么用 VOL/CAPITAL 而不是 V/REF(V,1)?——换手率看的是相对流通盘的比例,比单纯看量比更稳定,不受个股股本差异影响。

主图配色选白黄绿?——黑底终端上暗色系(如暗紫红)辨识度差,白(结构)+黄(预警)+绿(买点)层级分明,实测最清晰。

六、主图+副图配套

选股公式只负责筛选,配合主副图可以直观看到信号位置。主图用白色均线做底,黄色标记死叉回踩日(预警),绿色标记最终点火信号(核心)。副图同步:白色折线看均线方向,黄色柱标记回踩,绿色柱标记点火。

完整主图/副图源码已同步整理,需要的话可以留言,下期贴出来。

📌 本期要点回顾:① COUNT嵌套CROSS必报错,拆两行写即可 ② 参数选择要有逻辑依据,不能拍脑袋 ③ 黑底终端配色优先白黄绿,避免暗色系糊成一片

—— 通达信公式编写笔记 · 第118期 · 技术交流 ——

【声明】内容源于网络
0
0
AI选股器
致力于让股票分析变得简单易行,使小投资者能够更好地理解市场动态并做出明智的投资决策。加入我们,一起探索AI选股的无限可能!
内容 1949
粉丝 1
AI选股器 致力于让股票分析变得简单易行,使小投资者能够更好地理解市场动态并做出明智的投资决策。加入我们,一起探索AI选股的无限可能!
总阅读70.9k
粉丝1
内容1.9k