简介:这是一份以“高春牛组合”为核心的通达信指标公式源码教程文档,适合有股票技术分析基础、希望自建选股与副图公式的投资者使用。文档将副图公式与选股公式整合在一起,核心逻辑融合金牛、春笋、高精三类买入信号,并结合成交量、均线、成本分布等条件过滤,据描述其历史回溯成功率约百分之九十,且指标不含未来函数。资源为一份Word文档,压缩包大小四百二十五KB,内容以指标公式源码和知识点总结为主,未附带安装录屏或图表。目前已有二百九十三人浏览学习,适用于手动导入通达信、检查公式逻辑,以及理解CAR、DEA、KOV、PIC等中间变量的计算思路。文件不大但源码密度高,既能直接照抄使用,也可作为编写稳健选股公式的参考案例。
1. 通达信指标公式里的“高春牛组合”到底在解决什么问题
在通达信用户群里,“高春牛组合”这个名字出镜率不低。副图盯趋势,选股公式管买点,再配上“成功率90%”的说法,很容易让人把它当成一个装着答案的成熟公式。可真把流传的doc版本加载到K线图上跑一遍,问题就显出来了:同一段上涨里信号出现好几次,前两次买入不动,第三次才涨;有些信号在收盘后会消失,第二天又出现在前一根K线上。前一种多半是参数写得窄,后一种大概率是无未来的检测没过关。这篇文章把这套组合拆成三件事:高春牛副图的趋势斜率、量能确认、强势维持怎么写,选股公式怎么编怎么回测,以及“无未来”三个字到底该怎么自查。
2. 高春牛组合副图公式的信号逻辑与参数设定
先说清楚一件事:高春牛这个命名在通达信圈子里并不指向某一份唯一源码,网盘里流传的doc版本通常只是对同样一批条件换了个包装。所以下面的代码不是对某份原稿的抄录,而是按同类副图指标最常见的做法还原一个可编译版本。理解这套逻辑之后,你拿到任一同名文件都能在五分钟内看懂它到底写的什么。
2.1 组合内核:趋势斜率、量能确认、强势维持的三角条件
高春牛副图能流传开,核心不是画了几条线,而是它把“趋势、量能、强势”三个条件串成了一个可量化信号。这三个条件各自解决一个问题:趋势告诉你方向,量能告诉你资金有没有进场,强势告诉你当前价格站在什么样的筹码结构上。
第一个条件是5日均线上穿20日均线。这是短线趋势转向的第一信号,也是整个组合的触发开关。只靠这个开关远远不够,股价在下跌通道里也会频繁出现金叉,每次金叉都买,止损单会堆成山。所以第二个条件是当日成交量与前5日均量的比值必须大于1.5,也就是放量确认。没有放量的金叉可能是空头回补,也可能是散户情绪修复,后续涨幅往往有限。第三个条件是收盘价站在20日线上方,且20日线在60日线上方,这是强势区的基本定义。股价连20日线都站不上去,再漂亮的均线金叉也只是一次反弹。
“高春牛”这个名字本身也暗示了这套逻辑的偏好:高,指强势区的高位;春,指趋势刚从底部转暖;牛,指放量启动。三个字对应三个条件,这也是为什么它在震荡市里表现一般、在趋势市里信号更干净。很多人把“成功率90%”当成公式自带的属性,其实那是特定行情区间配合特定平仓规则下的回测结果,后面会展开讲。
2.2 副图公式源码与逐段解释
下面是一份可直接粘贴到通达信副图指标里的版本。它的结构分成三段:均线骨架、信号条件、绘图输出。
{高春牛组合-副图版} N1:=5; N2:=20; N3:=60; M:=5; 短线:=MA(CLOSE,N1); 中线:=MA(CLOSE,N2); 长线:=MA(CLOSE,N3); MA5:短线,COLORWHITE; MA20:中线,COLORYELLOW; MA60:长线,COLORGRAY; {量比:当日成交量与前5日均量之比} 量比:=VOL/REF(MA(VOL,M),1); {强势条件:收盘价站上中线,且中线在长线上方} 强势:=CLOSE>中线 AND 中线>长线; {买入信号:短线金叉中线,且放量、处于强势区} 量比阈值:=1.5; 金叉:=CROSS(短线,中线); 买入:=金叉 AND 量比>量比阈值 AND 强势; DRAWICON(买入,LOW*0.97,1); DRAWTEXT(买入,LOW*0.97,'高'),COLORRED;MA5、MA20、MA60三条线是基础骨架,不是信号本身。短线用MA还是EMA都行,但组合里短线和中线必须用同一种计算方式,否则金叉位置和肉眼看到的不一致。量比这里写的是VOL/REF(MA(VOL,M),1),对比的是前5日均量,而不是包含当天的5日均量。这样盘中放量时比值变化更敏感,也更接近“今天到底比平常多出了多少量”这个语义。
信号条件单独抽出来看:金叉是5日线上穿20日线,量比>1.5是放量确认,强势是价格站在中长期均线结构上方。三条同时满足才输出一个箭头。DRAWICON的第三个参数是图标编号,多数版本里1号是一个向上箭头,可以在公式管理器里逐个预览替换。DRAWTEXT在副图对应位置写一个“高”字,方便和普通均线指标区分。
2.3 信号灯、柱体和文字的绘制
很多副图版本不满足于一个箭头,还会叠加柱体和文字来强化视觉效果。常见写法是再加两行:
STICKLINE(买入,0,量比,2,0),COLORRED; DRAWTEXT(买入,LOW*0.94,'春'),COLORYELLOW; DRAWTEXT(买入,LOW*1.02,'牛'),COLORWHITE;绘图函数本身不影响选股条件判定,但能让信号在屏幕上更明显。通达信里这几个绘图函数的作用差异很大,简单列一张表:
| 函数 | 语法 | 作用 |
|---|---|---|
| DRAWICON | DRAWICON(条件,位置,图标编号) | 在固定位置画箭头或图标 |
| STICKLINE | STICKLINE(条件,起点,终点,宽度,空心) | 画柱状线,常用来标量能 |
| DRAWTEXT | DRAWTEXT(条件,位置,'文字') | 在K线附近标注文字 |
| PARTLINE | PARTLINE(条件,数据) | 按条件改变线段颜色 |
副图里能输出多条线,也能写DRAWICON这类绘图语句。但选股公式完全不同,它只能输出一个逻辑条件,绘图语句会被忽略或者直接编译报错。很多新手把副图代码整个复制进选股公式,最后一行没有XG:,于是提示“公式必须有一个输出”,问题就出在这里。
3. 高春牛选股公式的编写与成功率回测方法
副图公式只能看,真正用来筛选股票的是选股公式。把副图里的信号条件抽出来,舍掉绘图语句,换成一个条件输出,就得到了选股版本。
3.1 选股公式源码与参数表
{高春牛组合-选股版} N1:=5; N2:=20; N3:=60; M:=5; 短线:=MA(CLOSE,N1); 中线:=MA(CLOSE,N2); 长线:=MA(CLOSE,N3); 量比:=VOL/REF(MA(VOL,M),1); 强势:=CLOSE>中线 AND 中线>长线; 量比阈值:=1.5; 金叉:=CROSS(短线,中线); 买点:=金叉 AND 量比>量比阈值 AND 强势; XG:买点;选股公式里最后一行必须是XG:买点;。前面的变量全部用:=赋值,属于中间计算;最后一行用:输出,通达信才认这是一个选股条件。如果你把副图里带颜色控制的输出语句整段搬过来,选股器会提示公式格式错误。
下面的参数表是这套组合的调整基础:
| 参数 | 默认值 | 含义 | 常见调整范围 |
|---|---|---|---|
| N1 | 5 | 短期均线周期 | 3-8 |
| N2 | 20 | 中期均线周期 | 10-30 |
| N3 | 60 | 长期均线周期 | 30-120 |
| M | 5 | 量比计算周期 | 5-10 |
| 量比阈值 | 1.5 | 放量确认线 | 1.2-2.0 |
参数改动的方向很直接:N2越短,信号越灵敏,假信号越多;N2越长,信号越滞后,单次信号质量更高但数量变少。量比阈值同样是这个逻辑,震荡市里放到1.2能让信号更容易触发,单边强势行情里放到2.0可以过滤掉缩量回踩。
3.2 用通达信程序交易评测系统回测成功率
标题里写“成功率90%”,这里的成功率不是公式里写死的,也不是那个doc文件自带的数据,而是你自己在通达信里用历史行情跑出来的回测口径。通达信提供了一套现成的回测工具,路径一般在“功能”菜单下的“选股器”和“交易”菜单下的“程序交易评测系统”里,菜单名在不同版本里略有差异。
操作步骤如下:
- 按
Ctrl+F打开公式管理器,新建选股公式,粘贴选股版代码并编译,确认没有语法错误。 - 打开条件选股,先用今天的日线数据跑一次,观察选出的股票数量。普通行情下,在全市场范围内选出的数量在10到80之间比较合理;如果一次选出几百只,说明条件放得太宽。
- 打开程序交易评测系统,在评测公式栏选择刚才保存的“高春牛选股”。
- 建仓规则设为“信号出现后次日开盘买入”,资金量设100万,单笔按全部资金买入。
- 平仓规则先按“持股5日后全部卖出”跑一遍,再按“止盈10%、止损5%”跑一遍,两个结果对比再看。
- 评测区间选2020年1月1日到最近一个完整交易日,价格级别选“日线”,手续费和印花税按默认值,点击开始评测。
提示:回测成功率不等于未来收益率。它只是告诉你,在已经走过的行情里,这套条件配合这种买卖规则的胜率有多高。
评测报告里会给出成功次数、失败次数、成功率、平均盈利、平均亏损这几项核心数据。如果成功率明显高于你手动观察的盘感,先不要高兴,检查评测区间是不是选在了单边上涨段,或者公式里是否混进了未来函数。
3.3 回测结果怎么看:成功率与盈亏比要一起读
通达信评测报告里的“成功率”默认是全部信号中盈利交易的占比,它天生受平仓规则和评测区间影响。同样一份高春牛选股公式,用不同平仓方式跑出来的成功率可能差出二十个百分点。
| 平仓规则 | 成功率含义 | 对应策略 |
|---|---|---|
| 持股5日卖出 | 5天内容易赚到钱的概率 | 超短线 |
| 跌破5日线卖出 | 趋势持仓下的胜率 | 趋势跟踪 |
| 固定止盈止损 | 固定盈亏比下的策略胜率 | 机械交易 |
只看成功率会踩坑:10次交易里6次赚3%、4次亏10%,成功率是60%,但账户整体是亏的。所以还要同时看平均盈利和平均亏损,算一下盈亏比。只有“成功率×平均盈利”大于“失败率×平均亏损”,这个信号组合才具备正期望。
另外,评测区间千万别只挑一段牛市。想验证高春牛组合的真实水平,至少让评测区间覆盖一轮涨跌,比如从2021年开始到最近,里面既有单边下跌也有反弹和震荡,结果才有参考价值。跑完之后如果发现成功率掉到50%以下,也很正常,这只是说明这套组合并不适合所有行情类型。
4. 无未来函数的自查方法与信号漂移验证
“无未来”是高春牛组合的招牌之一,但也是最容易被误读的一句话。很多人把“编译不报错”等同于“没有未来函数”,实际完全不是一回事。
4.1 先查函数表:哪些书写方式会引入未来数据
通达信公式里最典型的未来函数是以下这些:ZIG、PEAK、TROUGH、PEAKBARS、TROUGHBARS、BACKSET,以及REF(CLOSE,-1)这样引用未来K线的写法。
{含未来函数的反面示例} A:=ZIG(3,5); B:=BACKSET(CROSS(MA(C,5),MA(C,20)),3); CC:=REF(CLOSE,-1);这类函数在编写时编译器不一定报错,但在选股器里使用时,最后一根K线尚未收盘前,它们的值会随着行情上下乱跳。ZIG的拐点要等后面K线走出来才能确认,屏幕上画出来的折线从右侧开始翻折,信号会“漂移”。BACKSET更隐蔽,它把某个条件成立后的结论向前赋值到之前的K线上,让历史信号看起来又准又多,但实盘当天根本不知道那里会是底。
4.2 副图叠加检验与信号漂移对比
如果你手里只有一份doc源码,最快的验证方式是把公式加载到日线图上后手动检查。具体做法:
- 把副图公式加载到沪深300成分股的日线图上,让历史信号全部显示出来。
- 用键盘方向键从最右边的K线往左移动,每次移动一根。
- 观察信号点是否随着光标移动而变化。无未来的信号,一旦在当天收盘后确认,位置就固定不动;有未来的信号会“补画”到之前的K线上,或者在你移动光标时突然消失。
- 专门盯住最后三根K线。盘中最后三根K线的信号随实时价格变化是正常的,但收盘后信号位置如果还在变,就要怀疑公式里混进了未来数据。
提示:HHV、LLV、MA、REF 这类函数只引用过去的数据,本身不是未来函数。真正要担心的不是“用没用均线”,而是“最后几根K线的计算结果是否依赖尚未发生的价格”。
部分新版通达信在公式管理器里提供公式检测功能,编译后如果提示“使用未来数据”或“信号有漂移风险”,直接顺着提示的函数名去代码里找,删掉替换成当根K线能确定的值。
4.3 无未来指标不在公式“写不写”,而在“显不显形”
还需要补充一个容易混淆的点:通达信里有几个边界函数,最典型的是XMA。XMA从名字看是均线的一种,但它的一个变体在计算最新值时考虑了后续K线,导致最近几根的值会随着行情推进缓慢修正,属于缓漂移型未来数据。旧版本里它不报错,但实盘盘中信号会慢半拍,历史回测结果却异常漂亮。
判断一份指标公式源码是否“无未来”,有一个实用办法:把所有REF(X,N)、MA、HHV、LLV分离出来,看N是否都为正值。N为0或负数时,已经构成对当前及未来K线的引用;N为正数时,只引用历史。再配合“信号是否漂移”的观察,基本能形成结论。市面上很多号称高春牛的doc文件,问题往往不在均线条件,而在用BACKSET或ZIG把启动点标记到前面K线上,让历史信号看起来特别准。这种写法会让回测成功率普遍虚高,一实盘就会发现信号数量和价格对不上。
另外,未来函数并不只有“明显未来”和“没有未来”两个极端,它存在一个危害分级:
| 类型 | 代表函数 | 实际影响 |
|---|---|---|
| 强未来 | ZIG、BACKSET、PEAK | 历史信号被改写,回测直接失效 |
| 弱未来 | XMA、REF负周期 | 最新值漂移,盘中信号不固定 |
| 非未来 | MA、HHV、LLM、REF正周期 | 收盘后信号固定,回测可信 |
无未来保证的是回测可信,不是本期必涨。同一个公式在牛市里回测出90%,在熊市里掉到40%,这不代表公式失效,只说明它属于趋势跟随类条件,对行情状态有天然依赖。
5. 高春牛组合实战中的参数调整与信号过滤技巧
5.1 不同行情下的参数刻度
默认参数N1=5、N2=20、N3=60适合趋势行情。震荡市里,5日和20日的金叉会频繁出现,信号变多但不连续,这时可以把N2从20提高到30,减少短周期波动造成的假金叉;量比阈值则要从1.5降到1.2,让放量条件更容易满足。单边强势行情里反过来,量比阈值提高到2.0,滤掉连续涨停股反复触发信号的情况。
| 行情状态 | N2 | 量比阈值 | 效果 |
|---|---|---|---|
| 震荡市 | 30 | 1.2 | 减少假金叉 |
| 趋势市 | 20 | 1.5 | 标准配置 |
| 单边强势 | 20 | 2.0 | 过滤缩量回踩 |
大盘股和小盘股也要区别对待。小盘股量比天然容易放大,N3=60对次新股不适用,流通盘特别小的标的可以用N3=120的日线做长线判断;大盘股因为体量大,量比很少超过2,仍然用1.5会觉得信号太少。参数调整后一定要重新回测,不要想当然。
5.2 用换手率和流通市值过滤假信号
放量金叉发生在低换手率股票上时,很多是游资单日对倒,后面没有承接。给选股公式加一层过滤条件会更稳定:
{高春牛组合-带过滤选股版} N1:=5; N2:=20; N3:=60; M:=5; 短线:=MA(CLOSE,N1); 中线:=MA(CLOSE,N2); 长线:=MA(CLOSE,N3); 量比:=VOL/REF(MA(VOL,M),1); 强势:=CLOSE>中线 AND 中线>长线; 金叉:=CROSS(短线,中线); 换手:=VOL/CAPITAL*100; 市值:=CAPITAL*C/1000000; 买点:=金叉 AND 量比>1.5 AND 强势 AND 换手>3 AND 市值>30 AND 市值<300; XG:买点;换手的计算中,VOL和CAPITAL单位都是手,相除后乘以100得到百分比;市值公式里,CAPITAL在通达信中是流通股本,单位是手,所以CAPITAL*C/1000000直接把结果换算成亿元。换手>3意味着当日成交至少换手3%,过滤掉冷门股;市值限制把ST股、微盘股和超大市值股票排除在外。这套附加过滤完全使用当根K线上的数据,不影响无未来属性。
5.3 一个可直接替换的整合版本
把副图版和带过滤选股版分别保存成两个公式,副图负责可视化,选股负责筛选。新建公式时名称直接用“高春牛组合”,不要带特殊符号;编译成功后,先用条件选股跑一次今天的行情,再看程序交易评测系统里的成功率和盈亏比。如果当日信号数量为0,先在参数表里把N2调小或者把量比阈值降到1.2再试,而不是怀疑公式坏了。
如果你拿到的doc版本里信号总和图上的对不上,优先检查它的均线周期和量比周期是不是被改过,而不是盯着“成功率90%”那几个字。
本文还有配套的精品资源,点击获取