尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

通达信金牛暴起选股公式:源码拆解、条件选股与盘中预警配置

通达信金牛暴起选股公式:源码拆解、条件选股与盘中预警配置 上周末整理旧文件翻出一版三年前写的选股公式文件名就叫“金牛暴起”。当时是为了捕捉那种长期横盘后突然放量启动的个股断断续续调了一周参数后来工作一忙就搁置了现在回头看这套思路其实挺有意思也很适合作为通达信源码的练手项目。这篇文章就把金牛暴起的完整思路和源码一步步拆开讲。内容面向两类人一是刚接触通达信公式、想自己写选股条件的朋友二是已经有使用经验、但想搞明白“一个复合条件指标”到底是怎么从想法落到代码、再到实战验证的老手。我会把每一步的“为什么要这么写”讲透而不是甩一段代码让你自己猜。1. 金牛暴起到底在捕捉什么指标背后的量价逻辑先别急着看代码。任何一个能经得起复盘检验的指标背后一定有一个明确的市场逻辑。金牛暴起这个名字听起来很玄但它本质上只做一件事捕捉一只股票在相对低位出现放量异动、同时短期均线刚形成多头排列的启动时机。1.1 为什么很多“启动信号”其实是马后炮这年头网上搜通达信源码一抓一大把但大部分都经不起实盘考验。一个非常普遍的问题是“未来函数”——简单说就是公式里用了当天收盘以后才能知道的数据导致历史图上信号完美得不得了一到实盘就失灵。典型的坑是BACKSET、ZIG这类函数它们会把后面的走势“画”到前面去让信号看起来每次都精准抄底逃顶。金牛暴起在设计之初就立了一条规矩只用当前K线及其之前的数据不允许回头偷看后面的K线。这意味着信号出现的位置就是你当天收盘后、或者当天盘中能实际确认的位置而不是马后炮。1.2 启动三要素位置、量能、斜率我把“金牛暴起”拆成了三个维度每个维度对应一组条件位置股价必须在相对低位区间而不是已经涨了好几倍的位置。低位启动和高位放量是两种完全不同的性质前者可能是主力入场后者更可能是出货。量能成交量必须出现明显放大通常要求放量达到五天均量的1.8到2倍以上。没有量能配合的上涨就像没有燃料的火箭很难持续。斜率短期均线5日、10日、20日必须形成多头排列代表短期的攻击方向已经向上而不是还在均线缠绕的震荡状态。这三个维度缺一不可。我见过太多人只看单一指标比如只看MACD金叉结果买在山腰上或者只看放量结果买在涨停板打开的一瞬间。金牛暴起把这三个条件叠加起来就是为了过滤掉那些“看起来有机会实际很鸡肋”的信号。打个比方一只股票就像一辆准备上高速的车。位置相当于车所在的路段不能在悬崖边上量能相当于油门的深浅不踩油门车走不动斜率相当于车头朝哪个方向车头还是朝下的时候就猛踩油门结果肯定是更危险。三个条件都满足才是我眼里“金牛暴起”的时刻。2. 源码逐段拆解从裸量价到复合条件的四层过滤下面进入正题。金牛暴起的通达信源码可以分成四段每一段解决一个具体问题。我会把每一行的逻辑讲明白方便你根据自己的习惯修改。2.1 第一步定义“量能异动”的阈值先看第一段N:5; 量比:VOL/MA(VOL,N); 放量异动:量比1.8 AND CO;这里先定义了一个参数N默认是5意思是以5日均量作为基准。为什么选5而不是10因为5日均量更能反映短期资金的异动10日线会把最近几天的放量平均掉导致信号迟钝。如果你希望信号更敏感可以改成3更迟钝可以改成8我这里用5是取一个相对中庸的平衡点。“量比1.8”是什么意思就是当日成交量是最近5日均量的1.8倍以上。为什么不是2倍或者3倍如果阈值太高比如3倍信号会非常稀少可能一个月都选不出几只票而且3倍以上的放量往往伴随着涨停一字板根本买不进去。如果阈值太低比如1.2倍信号会非常频繁大部分是普通波动噪音太大。1.8倍是我回测下来相对合理的分界线能筛掉大部分“小打小闹”的温和放量同时又不至于全部错过。“CO”是阳线条件收盘价大于开盘价。这个条件加上去是为了确保放量当天是真金白银的买盘推动而不是放量下跌。2.2 第二步均线多头排列的三种写法均线多头排列意思就是5日线在最上面10日线在中间20日线在最下面形成一种“1 2 3”的向上阶梯结构对应代码MA5:MA(C,5); MA10:MA(C,10); MA20:MA(C,20); 均线多头:MA5MA10 AND MA10MA20;这里有个细节值得说别小看这三行代码均线周期的选择直接决定了指标的定位。如果你用5日、10日、20日那金牛暴起本质上是一个“短线偏中线”的信号适合一周到一个月周期的操作。如果你想让它更“暴”可以把均线周期改成3日、5日、10日信号会提前但误报率也会增加。反过来如果你用的是20日、40日、60日信号会非常滞后虽然成功率看起来高但等你介入时肉已经吃得差不多了。还有一种写法是用EMA指数移动平均替代MA。EMA对近期价格变化更敏感信号会更早但也会更“神经质”。我个人习惯用MA因为简单可靠而且回测的时候不容易过拟合。2.3 第三步位置过滤——什么才叫“低位”这个条件非常重要也是金牛暴起和很多普通启动指标最大的区别。M:60; 区间高度:(HHV(H,M)-LLV(L,M))/LLV(L,M)*100; 低位:CLLV(L,M)(HHV(H,M)-LLV(L,M))*0.4;这段含义是把过去60个交易日作为一个观察窗口算出这个窗口内股价的最高价和最低价然后判断当前收盘价是否处于这个区间的偏低位置。“CLLV(L,M)(HHV(H,M)-LLV(L,M))*0.4”的意思是当前收盘价不能超过60日高低点区间的40%位置。换句话说如果一只股票从10元跌到5元然后又反弹到7元那7元大约在区间的一半位置会触发过滤掉而如果股价在6元附近就处于偏低位可能触发信号。为什么用0.4而不是0.3或者0.50.5意味着允许股价到达区间中部太宽松。0.3太严格很多真正启动的股票在信号出现时已经越过了30%的位置。0.4是我在多个样本中试出来的折中值。当然没有过滤器是完美的。低位并不等于便宜也不等于不会继续跌。这里只是一个概率筛选器把高位的危险品种提前排除掉。2.4 第四步动量确认与完整源码最后一步是动量确认它的作用是等趋势“自己点头”动量:SMA((C-LLV(L,M))/(HHV(H,M)-LLV(L,M))*100,5,1); 动量向上:动量REF(动量,1);这个“动量”其实就是很多指标书里说的“随机振荡指标”的变体通俗地说它衡量的是当前价格在60日区间中的相对位置然后用SMA做了一次平滑。SMA(X,5,1)是通达信里一个特别的平均算法第三个参数1是权重数字越小曲线越平滑。这里取1是为了让动量线不要那么剧烈地抖动。“动量REF(动量,1)”意思是当天的动量值比前一天大证明相对位置在抬高资金正在往里进。把最后四段条件合在一起金牛暴起的完整信号就是金牛暴起:放量异动 AND 均线多头 AND 低位 AND 动量向上; STICKLINE(金牛暴起,C,O,3,0),COLORRED; DRAWICON(金牛暴起,L*0.97,1);STICKLINE会在满足条件的那根K线上画一根红色实体柱DRAWICON会在K线下方画一个图标这样你可以在主图上直观地看到信号位置。整个公式下载到通达信里大约就是这么个样子。下面从实际安装开始走一遍完整流程。3. 落地到通达信公式管理器、选股器与盘中预警的完整配置代码再漂亮装不进通达信等于零。这一节把从新建公式到盘中自动预警的完整链路写一遍包括我踩过的几个坑。3.1 新建指标公式的完整流程打开通达信客户端按快捷键CtrlF打开公式管理器。在弹出的窗口左侧选择“技术指标公式”点“新建”然后在编辑器里粘贴上面那段完整源码。有三个细节必须注意公式名称可以用中文“金牛暴起”但不要用特殊字符比如空格、括号这些在选股时会报错。画线方法如果你希望信号直接标记在K线图上选“主图叠加”如果希望单独显示成一个副图选“副图”。金牛暴起因为要画图标和柱体建议选“主图叠加”。如果你只是想看看动量线可以另建一个副图版本。参数设置N和M这两个参数可以写在“参数”栏里也可以直接写死在代码里。写在参数栏的好处是可以随时调整不必每次进编辑器改源码对于测试不同周期特别方便。第一次写完点“测试公式”通达信会给出编译结果。如果代码里有语法错误它会提示是哪一行出了问题。最常见的错误是中文标点混入了代码、或者变量名以数字开头——通达信的变量名必须以字母或下划线开头中文变量名虽然在较新版本里被支持但我还是建议用英文或拼音兼容性最好。3.2 主图叠加与副图显示的区别实际上我在调试金牛暴起的时候用的是两套公式一套是主图叠加版信号直接用STICKLINE和DRAWICON标记在K线上方便肉眼观察信号后一段时间的走势一套是副图版把“量比”“动量”这些中间变量输出成曲线方便观察条件逐步成立的过程。这个过程很建议你也做一遍。因为光看最终信号你不知道这个信号是怎么一步步成立的而一旦你看到“量能先放大了、然后均线才多头排列、动量最后才跟上”你对这个指标的信任度会明显不一样。副图版很简单把源码里的STICKLINE和DRAWICON那两行去掉把关键中间变量比如量比、动量的赋值语句改成输出语句就可以。比如量比:VOL/MA(VOL,5); 动量:SMA((C-LLV(L,60))/(HHV(H,60)-LLV(L,60))*100,5,1);这两行去掉冒号后面的等号就变成了输出曲线。3.3 条件选股与盘中预警的配置金牛暴起的一大用途是每天收盘后自动选股。操作路径是功能-选股器-条件选股。在条件选股窗口里左侧公式列表选到你刚建的“金牛暴起”前提是它被建成了“条件选股公式”而不是“技术指标公式”。这里有一个新手很容易卡住的点在技术指标公式的编辑页面里写出来的公式默认是不能直接用于条件选股的。你需要在公式管理器左侧选“条件选股公式”然后新建一个公式把金牛暴起最后那个信号表达式输出出来放量异动:VOL/MA(VOL,5)1.8 AND CO; MA5:MA(C,5); MA10:MA(C,10); MA20:MA(C,20); 均线多头:MA5MA10 AND MA10MA20; 低位:CLLV(L,60)(HHV(H,60)-LLV(L,60))*0.4; 动量:SMA((C-LLV(L,60))/(HHV(H,60)-LLV(L,60))*100,5,1); 金牛暴起:放量异动 AND 均线多头 AND 低位 AND 动量REF(动量,1);注意最后一行用的是冒号而不是等号这样它才能作为一个可输出的选股条件。选股范围那里默认是“上证A股、深证A股”你可以按自己的需要勾选板块。执行选股之前记得先下载最新的日线数据——我无数次因为没下载数据选出来的结果是几天前的老数据白忙活半天。盘中预警的配置路径是功能-预警系统-条件预警设置。在“条件”标签页添加公式“金牛暴起”然后设置监控板块。盘中预警对数据源要求比较高通常需要开通实时行情否则预警会延迟。实际用小盘股测试下来未开通Level-2的普通行情也能做到接近实时的触发完全可以满足日常观察需求。3.4 公式的保存、导入与导出写好的公式可以通过公式管理器里的“导出”功能保存成文件方便备份或者换电脑时迁移。通达信支持导出为 .tn6 和 .txt 两种格式。tn6 是通达信自己的加密格式适合直接给别人用txt 是明文代码方便交流。如果你想把自己的公式分享给朋友我建议用 txt 格式导出后发给他这样他可以在通达信的“导入公式”中选择 txt 文件导入后直接在公式编辑器里查看和修改源码。而 tn6 格式没办法查看源码如果对方想学你的思路就没法从里面借鉴了。4. 用历史数据复盘金牛暴起误报场景与参数调节经验写好了公式选出了信号下面就是最关键的验证环节。这部分没有捷径只能把信号逐条调出来看它出现之后股价到底怎么样了。4.1 回看历史信号把“好看”的图和真实走势对比我第一次跑完金牛暴起选出了十几只股票乍一看信号位置都在相对低位后面也确实有一段涨幅。但当我逐一点开发现一个扎心的事实信号出现后第2天、第3天很多股票回落了5%到8%。也就是说金牛暴起的“胜率”并没有我最初以为的那么高。为什么会这样我复盘后总结出一个模式金牛暴起要捕捉的是“启动瞬间”但很多股票在满足条件的那天实际上只是下跌趋势中的一次超跌反弹。放量有了均线多头还没有完全形成股价也只是在60日区间的低位但中期趋势仍然是向下的。这说明位置过滤器还不够强。有一个简单的改进办法把“低位”这个条件改成“中期趋势走平或向上”比如要求60日均线不再下降中期趋势:MA(C,60)REF(MA(C,60),3);加上这个条件会过滤掉一批“还在下跌通道里勉强反弹”的股票。副作用是在熊市里金牛暴起几乎选不出票——但这不是坏事强势环境本身就是金牛暴起的适用环境。4.2 一字涨停板的陷阱信号出来了但你买不进去复盘时你会发现很多金牛暴起信号出现在一字涨停板上尤其是那种连续跌了很久、突发利好的股票。当天成交量剧增均线也即将多头排列低位条件也满足于是一根红色的STICKLINE打在K线上。但在实盘里你根本买不进去。一字涨停板意味着开盘即涨停卖单极少普通散户在集合竞价阶段挂单也排在很后面成交概率极低。等第二天开盘能买进去了往往已经是高位放巨量风险骤增。我后来给金牛暴起加了一个“非一字板”过滤条件非一字板:HL;这个条件排除了最高价等于最低价的K线也就是一字板形态。加上之后信号数量会少一些但每个信号的可操作性有了明显提升。4.3 参数调优别为了漂亮曲线过度优化金牛暴起有两个核心参数N量能基准周期和M位置计算周期。如果你用通达信自带的“参数优化”功能去扫参数确实可以找到一组历史表现最漂亮的组合但我要泼一盆冷水历史表现最漂亮的参数组合往往实盘表现最差。原因很简单这是过拟合。你把参数调得太贴合历史走势就相当于把公式的记忆能力调到了最强但根本没有泛化能力换一段行情或者换一批股票效果立刻崩溃。我的经验是参数只要在一个合理区间内保持稳定就好没必要追求极致。比如N取4到8都行M取40到80都行。真正重要的是把参数固定下来之后至少去复盘20只以上不同类型股票的历史信号而不是只看几只涨得好的票。4.4 实盘观察中最常被忽略的坑信号之后必须看量能能否持续金牛暴起的信号只是一次“起爆”但起爆之后能不能走成趋势取决于后续量能能否持续。你在复盘时会发现有些股票信号出现后成交量持续放大股价一路向上还有些股票信号出现后的第三天成交量就萎缩了股价缩量阴跌最终又回到起爆点附近。这里我总结了一个口诀“信号当天看放量次日看承接第三天看延续。”信号出现当天放量到位次日不能大幅低开最好平开或者高开盘中回踩不破前日最低第三天量能不能比次日缩小超过一半。如果第三天就缩量一半以上基本可以判断这波启动失败。当然这套口诀本质上是经验值并不具备严谨统计意义。但它至少帮我躲过了不少“一根大阳线、之后连跌一周”的陷阱。5. 从金牛暴起到一个可用的交易体系组合与风控思路最后一个部分我想聊聊金牛暴起作为一个小工具怎么放进更大的交易体系里。单独一个公式永远只是体系的一小块拼图。5.1 把金牛暴起和量能饱和度、板块热度放在一起用通达信自带很多基础指标也可以自己写一些辅助指标来叠加。我这里特别想提“量能饱和度”这个概念——网上现在很流行一种副图指标用圆圈在1.00附近标识量能的饱和程度。它的原理大致是把当前的量能放到一个更大的历史区间里做归一化用于判断量能释放是否过猛。金牛暴起选出的信号如果叠加量能饱和度来看通常有两种情况量能饱和度在0.6到0.9之间说明量能在合理放大还有继续释放的空间这类信号我更愿意跟踪。量能饱和度已经到0.95以上说明量能在短期内释放得过于猛烈后市很容易出现量能接力不上我一般会放弃或格外小心。板块热度也很重要。如果金牛暴起在同一天选出了同一个板块的好几只股票说明这个板块整体在异动这种群体性的信号比个股单打独斗可靠得多。通达信里有板块指数你可以把板块指数作为背景参考如果板块指数还没有走出弱势个股的启动很容易被拖累。5.2 买入之后的退出标准止损与分批卖出的草根玩法信号选出来了买了然后呢这才是大多数人真正欠缺的部分。我比较朴素的止损规则是以信号K线的最低价作为参考收盘价跌破这个价格就止损离场不纠结、不补仓。因为信号本身就建立在放量上涨的基础上如果这个基础没几天就失效了说明判断错了止损是第一位的。止盈方面我的做法是分批。涨到一定幅度时先卖一部分再持有剩下的看趋势。具体来说从信号入场价算起涨到5%附近先卖掉三分之一。涨到10%附近再卖掉三分之一。剩下的三分之一用5日均线或者10日均线作为跟随线只要不破就拿着破了就走。这个策略听起来很简单但执行起来很难因为人性的贪婪和恐惧总会让你在错误的时间做错误的事。我在这方面的体会是再弱的止盈计划也强过没有计划。5.3 交易日志与复盘金牛暴起的自我迭代最后一个建议做一本属于自己的交易日志。每次金牛暴起选出的股票不管买没买都记录下来内容包括信号出现的日期、当时的量比、股价在60日区间的位置、后续5日和20日的涨跌幅、你是否买入、买入后的心理感受。纸面的复盘比脑子的复盘可靠得多。我前前后后记录了两百多个样本之后才慢慢总结出前面提到的那些过滤条件和避坑经验。如果只是靠感觉你永远说不清“这个指标到底灵不灵、什么时候不灵”。我现在每次优化金牛暴起都是先翻交易日志找到最近几个月里失败的信号然后把失败样本的共同点总结出来再改成过滤条件。这个流程其实比改参数重要得多。指标世界里没有圣杯金牛暴起也一样。它只是在量、价、位置、动量四个维度上帮我把主观的盘感翻译成可执行的规则。文章里所有代码和经验都是这几年在通达信上一步步试出来的你可以直接照抄也可以按照自己的习惯去改参数、加过滤条件。改完之后再去翻历史数据看看信号出现后到底发生了什么那时候你才会真正明白这个指标能做什么、不能做什么。
返回列表