
这两年问“主力吸筹猛攻指标源码”的人特别多有的拿别处抄来的公式来找我帮忙看哪里有坑有的问通达信里怎么装还有的直接把条件选股结果丢过来问为什么信号总失真。问得多了我干脆把自己在通达信里反复打磨的一套公式整理出来连同设计逻辑、安装步骤和实战中踩过的坑一起说清楚。这篇文章不吹“震荡行情精准抄底”那种神话只讲一套完整可用的主力吸筹猛攻指标源码是怎么来的每一行在做什么以及你把它装进通达信之后该怎么用、不该怎么用。如果你手上已经有一份别人给的源码或者你正准备自己学写指标公式这篇文章都适用。我会尽量避免堆专业术语但涉及到源码的部分必须严谨该给代码的时候直接给代码。有一点先说清楚技术指标永远只是概率工具它能帮你把“感觉主力在吸筹”变成“有依据地等信号”但它代替不了仓位管理和风险控制。1. 想用好主力吸筹猛攻指标先搞懂它要抓的量价形态1.1 吸筹和猛攻在K线上长得完全不一样我接触过的很多朋友有个误解以为“主力吸筹猛攻”是一个信号出现就能买入。实际上这个名字描述的是两个完全不同的市场阶段吸筹阶段的特征股价波动收窄、量能温和、重心缓慢上移偶尔一根大阴线砸下来但过几天又收回去低点在抬高。这个阶段就像有人在场外偷偷囤货K线形态在多数人眼里是“无趣的横盘”。猛攻阶段的特征平台突破、放量拉涨、短期均线多头排列连续大阳线甚至直接涨停。这是吸筹完成后主力动真格的时候也是市场注意力开始集中的时候。如果用一句生活化的话来概括吸筹是暗地里囤货猛攻是开仓促销。囤货时怕被人发现所以量价尽量不显眼开仓时恨不得让所有人都看见所以又放量又突破。你要抓的就是“囤完货之后开仓”的那一下。1.2 很多“猛攻”信号失败问题不是指标本身而是逻辑太单一市面上很多所谓“猛攻指标”其实只做了一件事股价突破N日高点就画信号。这种指标在单边行情里看着很准一旦进入震荡市突破之后往往立刻回落信号频繁到让人崩溃。问题出在哪它只抓了“突破”这个结果没有验证突破之前到底有没有“吸筹”这个过程。一只票如果已经连跌两个月突然放量反弹突破5日高点你能说这是主力吸筹后的猛攻吗大概率只是超跌反弹弹完继续跌。所以我设计这套源码时把指标分成了两段逻辑第一段判断“有没有人在低位耐心收集筹码”第二段判断“收集完成之后是否已经启动”。两段都成立才输出最终的猛攻信号。这也是整套公式最核心的设计思路。1.3 三个支撑整个公式的设计原则这套源码里的每一个条件本质上都围绕下面三个原则展开第一量能异动必须有一个可靠的基准。看放量不能光看“今天比昨天大”要跟过去一段时间的平均量能比而且这个基准不能把今天自己算进去否则量能信号会被钝化。第二横盘不等于吸筹。真正有资金介入的横盘会伴随着重心缓慢上移。如果只是价格死水一潭地横着说明没人管它那叫无人问津不叫吸筹。第三猛攻要有明确的平台参照物。突破的必须是“昨天之前已经成型的平台”而不是今天盘中刚碰出来的高点。这听起来是细节但决定了信号是提前还是滞后。这三个原则会直接体现在源码里。你理解了它们后面看代码就不会一头雾水。2. 源码逐段拆解从量能基准到猛攻信号2.1 通达信公式基础五条规则看懂任何源码在贴完整代码之前先花两分钟把通达信公式的基本规则说清楚。不然很多人复制了代码进去报错根本看不懂提示。通达信公式语言有五个关键规则用:赋值的语句是中间变量不会在副图上画线不带:的语句会直接输出为一条指标线。变量名可以用中文也可以直接用字母但不能以数字开头。每个语句末尾要用分号结束而且必须用英文半角分号。中文输入法状态下打分号编译必报错。注释用{}括起来大括号里的内容不参与编译适合写备注。常用函数要先记住MA求均线REF取N周期前的值HHV/LLV求N周期内最高最低值SUM求和IF条件判断STICKLINE画柱线DRAWICON在指定位置画图标。拿到任何一份源码先找“不带 : 的语句”那就是最终输出。再从输出逆推它依赖哪些变量整个指标的逻辑很快就能捋清楚。2.2 量能异动模块为什么量比基准要“排掉今天”先看整个公式的量能部分量5:MA(VOL,5); 量比:VOL/REF(量5,1);这里量5是最近5个交易日的平均成交量量比是当天成交量相对于“昨天计算出的5日均量”的倍数。关键点在于分母用了REF(量5,1)也就是取昨天的5日均量而不是直接用今天重新计算的MA(VOL,5)。为什么要多此一举因为如果直接写VOL/MA(VOL,5)当某天突然放量3倍时这个放量本身会把分母拉高导致比值被稀释。我举个例子假设过去5天每天的成交量都是100今天突然变成300。如果直接用VOL/MA(VOL,5)分母会变成(100100100100300)/5 140量比只有300/140 ≈ 2.14。但用昨天的均量100当基准量比就是300/100 3。两者差距很大。真实的量能异动被均线“自己算自己”的方式钝化了猛攻信号的敏感度会显著下降。这里对“温和放量”和“放量突破”的区分也很重要温和放量:量比1 AND 量比2.5;吸筹阶段的量能应该是“有人买但不想惊动市场”所以量比大于1但小于2.5。超过2.5往往意味着突发消息、情绪躁动或者大资金出逃不像是耐心收集。2.3 吸筹区识别振幅、位置、重心三个条件缺一不可接下来是整套公式里最有含金量的一段——吸筹区识别区间振幅:(HHV(HIGH,20)-LLV(LOW,20))/LLV(LOW,20)*100; 位置:(CLOSE-LLV(CLOSE,60))/(HHV(CLOSE,60)-LLV(CLOSE,60))*100; 横盘:区间振幅20 AND 区间振幅5; 重心上移:MA(CLOSE,20)REF(MA(CLOSE,20),5); 吸筹区:横盘 AND 温和放量 AND 位置70 AND 重心上移;先看区间振幅。它计算的是过去20个交易日里最高价和最低价之间的波动幅度。振幅小于20%说明股价整体处于横盘同时我要求它必须大于5%因为如果振幅太小说明这只股票完全没有交易热情可能是在阴跌而不是被资金控制。低于5%的横盘在A股里多半是流动性极差的老庄股不是普通散户能参与的品种。再看位置。这个公式把当前股价放在过去60个交易日的价格区间里换算成0到100的位置。位置小于70确保我们关注的吸筹区不是在已经大涨之后的高位。这个条件解决了一个非常现实的问题很多股票高位横盘后也会“放量突破”但那是二次冲顶追进去就是接盘。最后是重心上移也就是20日均线比5天前高。这配合了我前面说的原则横盘不等于吸筹。如果一只票横了一个月20日均线还在缓慢往下走说明资金整体是在流出。只有20日均线抬头的横盘才说明有资金在慢慢把筹码价格抬高。四个条件同时满足才在副图上标记“吸筹区”。条件够苛刻所以信号不频繁但每个信号背后都有比较扎实的逻辑支撑。2.4 主力强度与猛攻确认三条件共振才是买点吸筹区画出来了下一步是等猛攻信号。这部分的源码更关键上涨量:SUM(IF(CLOSEREF(CLOSE,1),VOL,0),20); 总成交量:SUM(VOL,20); 主力强度:上涨量/总成交量*100; 放量突破:量比2 AND CLOSEREF(HHV(HIGH,20),1); 均线共振:短均中均 AND CLOSE中均 AND 中均趋势线; 强度确认:主力强度50 AND 主力强度REF(主力强度,1); 猛攻:放量突破 AND 均线共振 AND 强度确认;主力强度这个变量计算的是过去20个交易日里收阳线那天的成交量加总占20天总成交量的百分比。简单理解如果这个数值超过50说明这20天里上涨的量比下跌的量多多方在整体上占优。这个指标不依赖单日大涨也不依赖换手率纯粹从量能结构上看多空力量对比所以能过滤掉不少单日脉冲式异动。猛攻信号需要同时满足三个条件。仔细看一下每个条件的角色放量突破量比大于2且收盘价突破了昨天之前20天的最高价。这里用REF(HHV(HIGH,20),1)是为了保证突破的是一个已经成型的平台而不是今天盘中刚创出的新高。如果直接用HHV(HIGH,20)会把今天最高价也算进去等于“自己突破自己”信号就失效了。均线共振短期均线在中期均线之上收盘价站上中期均线中期均线又在60日趋势线之上。这个条件确保中期趋势已经转多避免在下跌中继的反弹里被假突破骗进去。强度确认主力强度大于50且比前一天高说明多方的量能优势不仅存在还在继续增强。刚走到50附近就开始萎缩的强度说明多方后劲不足。三个条件共振对吸筹区里出现的信号尤其有意义。这样整个逻辑链就完整了有人吸筹吸筹区多方量能占优且增强主力强度价格突破平台放量突破趋势已转多均线共振。任何一环缺失信号都不会出现。2.5 完整源码汇总与导入说明下面把完整源码贴出来副图版本。名称我建议叫ZXCM主力吸筹猛攻的拼音首字母方便之后在通达信里快速调用。{主力吸筹猛攻指标 副图} {逻辑先识别吸筹区再捕捉放量突破的猛攻信号} N:20; 量5:MA(VOL,5); 量比:VOL/REF(量5,1); 短均:MA(CLOSE,5); 中均:MA(CLOSE,10); 趋势线:MA(CLOSE,60); 区间振幅:(HHV(HIGH,N)-LLV(LOW,N))/LLV(LOW,N)*100; 位置:(CLOSE-LLV(CLOSE,60))/(HHV(CLOSE,60)-LLV(CLOSE,60))*100; 温和放量:量比1 AND 量比2.5; 横盘:区间振幅20 AND 区间振幅5; 重心上移:MA(CLOSE,N)REF(MA(CLOSE,N),5); 吸筹区:横盘 AND 温和放量 AND 位置70 AND 重心上移; 上涨量:SUM(IF(CLOSEREF(CLOSE,1),VOL,0),N); 总成交量:SUM(VOL,N); 主力强度:上涨量/总成交量*100; 放量突破:量比2 AND CLOSEREF(HHV(HIGH,N),1); 均线共振:短均中均 AND CLOSE中均 AND 中均趋势线; 强度确认:主力强度50 AND 主力强度REF(主力强度,1); 猛攻:放量突破 AND 均线共振 AND 强度确认; 吸筹柱:IF(吸筹区,主力强度,0),COLORYELLOW,LINETHICK2; 主力强度线:主力强度,COLORWHITE; 分界线:50,COLOR00FFFF,POINTDOT; DRAWICON(猛攻,主力强度*1.03,1); DRAWTEXT(猛攻,主力强度*1.1,猛攻),COLORRED;副图上你会看到四样东西黄色柱体代表当天满足吸筹区条件柱子的高度就是主力强度值。白色线是主力强度看它是否在50分界线上方运行。蓝色点线是50分界线多空分水岭。红色向上箭头和“猛攻”文字是最终交易信号。如果你想调参数直接改第一行N:20。N越小信号越灵敏但越容易误报N越大信号越稳定但越滞后。我个人默认用20不推荐新手频繁去改。3. 装进通达信并真正跑起来副图、主图与自动选股3.1 公式管理器安装步骤与常见报错先把源码装进通达信。步骤很简单打开通达信按下键盘上的CtrlF会弹出公式管理器窗口。左侧选择“技术指标公式”下的“其他类型”或者你习惯的分类目录点击“新建”。公式名称填ZXCM公式类型选“副图”把上面的代码完整粘贴进编辑框。点击“测试公式”看右下角的编译结果。如果显示“测试通过”就说明没问题。点“确定”保存然后在任意股票的K线图界面输入ZXCM回车指标就会加载到副图。安装中常见的报错无非三种提示“缺少分号”或者“未定义的变量名”绝大多数是粘贴时中文标点和英文标点混用了。通达信只认英文半角的分号和括号中文输入法状态下打的和都会导致编译失败。检查方法是把报错行附近的符号全部删掉切换到英文输入法重新输入。提示“行0: 无法识别的函数”通常是公式名或者变量名用了系统保留字。比如你给变量起名CYS或者主力有时候会和系统冲突换成ZX前缀基本能解决。提示“测试失败”但没有具体行号这种多半是漏写了括号或者AND关键字。耐心数括号是否成对把条件拆成多段赋值分步编译定位。3.2 主图覆盖版把信号直接画在K线上副图适合观察主力强度的变化过程但真正做交易决策时大部分人更习惯盯着主图K线看。所以我额外写了一个主图覆盖版本最核心的变化是不再输出主力强度和50分界线这些需要独立坐标的线条只保留吸筹区和猛攻信号的可视化标记。{主力吸筹猛攻指标 主图覆盖版} N:20; 量5:MA(VOL,5); 量比:VOL/REF(量5,1); 短均:MA(CLOSE,5); 中均:MA(CLOSE,10); 趋势线:MA(CLOSE,60); 区间振幅:(HHV(HIGH,N)-LLV(LOW,N))/LLV(LOW,N)*100; 位置:(CLOSE-LLV(CLOSE,60))/(HHV(CLOSE,60)-LLV(CLOSE,60))*100; 温和放量:量比1 AND 量比2.5; 横盘:区间振幅20 AND 区间振幅5; 重心上移:MA(CLOSE,N)REF(MA(CLOSE,N),5); 吸筹区:横盘 AND 温和放量 AND 位置70 AND 重心上移; 上涨量:SUM(IF(CLOSEREF(CLOSE,1),VOL,0),N); 总成交量:SUM(VOL,N); 主力强度:上涨量/总成交量*100; 放量突破:量比2 AND CLOSEREF(HHV(HIGH,N),1); 均线共振:短均中均 AND CLOSE中均 AND 中均趋势线; 强度确认:主力强度50 AND 主力强度REF(主力强度,1); 猛攻:放量突破 AND 均线共振 AND 强度确认; STICKLINE(吸筹区,OPEN,CLOSE,3,0),COLORYELLOW; DRAWICON(猛攻,LOW*0.97,1); DRAWTEXT(猛攻,LOW*0.93,猛攻),COLORRED;安装方式一样区别是公式类型选“主图叠加”。主图上黄色实体的K线代表处于吸筹区红色箭头和“猛攻”文字则是买点信号。这样一眼扫过去哪些票在蓄势、哪些票已经启动非常直观。3.3 把“猛攻”变成条件选股一键扫全市场看盘是一回事每天盯着一两千只票找信号人眼根本忙不过来。通达信的条件选股功能可以帮我们把全市场的股票过一遍。新建公式的时候把公式类型选成“条件选股公式”然后粘贴下面这段{主力吸筹猛攻-条件选股} N:20; 量5:MA(VOL,5); 量比:VOL/REF(量5,1); 短均:MA(CLOSE,5); 中均:MA(CLOSE,10); 趋势线:MA(CLOSE,60); 区间振幅:(HHV(HIGH,N)-LLV(LOW,N))/LLV(LOW,N)*100; 位置:(CLOSE-LLV(CLOSE,60))/(HHV(CLOSE,60)-LLV(CLOSE,60))*100; 温和放量:量比1 AND 量比2.5; 横盘:区间振幅20 AND 区间振幅5; 重心上移:MA(CLOSE,N)REF(MA(CLOSE,N),5); 吸筹区:横盘 AND 温和放量 AND 位置70 AND 重心上移; 上涨量:SUM(IF(CLOSEREF(CLOSE,1),VOL,0),N); 总成交量:SUM(VOL,N); 主力强度:上涨量/总成交量*100; 放量突破:量比2 AND CLOSEREF(HHV(HIGH,N),1); 均线共振:短均中均 AND CLOSE中均 AND 中均趋势线; 强度确认:主力强度50 AND 主力强度REF(主力强度,1); 选股:放量突破 AND 均线共振 AND 强度确认 AND 吸筹区;要特别注意条件选股公式里只能有一个输出就是最后的选股:这一句它返回的是一个真/假值。前面的中间变量全部用:赋值不能多输出任何线。选股方法菜单栏点“功能 → 选股器 → 条件选股”左侧找到ZXCM加入条件执行选股。系统就会在全部A股里扫描把当天同时满足吸筹和猛攻信号的股票选出来。我实测下来行情好时一天可能选出三五只行情冷清时经常一只都没有。选出来只是“候选池”还必须人工二次确认。4. 实战两个月我遇到的三类信号失真与过滤方法4.1 第一次翻车连续金叉后的“假突破”这套公式我自己用了不少时间中间踩过不少坑。印象最深的一次是一只股票在副图上连续出现了几根黄色吸筹柱然后某个周五放量突破前高红色箭头信号触发。我当时按“信号当天收盘前介入”的思路买进去周一直接高开低走后面连续阴跌三天最终止损出局。复盘时我把K线切到周线一看就明白了虽然日线级别均线刚刚形成多头排列但周线上这只票前面已经反弹到相对高位日线的“突破”其实是在周线压力位下方完成的。日线均线共振只能说明短期趋势刚转多一旦放到更大的周期里看压力位近在眼前。这个案例给我的教训是任何日线指标都不能脱离更大周期单独使用。如果你看日线出现猛攻信号至少切到周线扫一眼确认股价没有顶到明显的周线压力区间。这套指标不是不能用而是要在合适的周期环境里配合使用。4.2 大盘环境不对信号会系统性失真还有一种情况比个股问题更棘手大盘整体不好的时候指标会出现系统性失灵。吸筹区正常标记主力强度也正常走高猛攻信号也触发了但股价就是不涨甚至横盘几天后直接破位往下走。原因是所谓“主力吸筹”只是资金意愿当大盘环境持续恶化时主力也不傻会暂停拉升计划甚至先撤出来等环境稳定。个股的吸筹形态再漂亮也扛不住整个市场泥沙俱下。这种情况不是指标BUG是任何量价指标都无法摆脱的系统性风险。我现在使用这套指标时给自己定了几条纪律先看上证指数或深证成指的趋势指数在20日均线下方运行时选出的猛攻信号只观察、不操作指数站上20日均线时指标信号的成功率会明显高很多。这个过滤条件不花一分钱但能帮你避开大量无效交易。4.3 分时图上做二次确认能过滤掉不少伪信号日线级别的信号有一个天然短板滞后。猛攻信号当天收盘前才会确认而股价往往已经涨了五六个点这时候追进去的性价比不高。我的做法是盘中看到候选票有启动迹象时打开分时图重点看两个细节分时量能柱是否在持续放大。真正的资金猛攻分时图上会出现明显的放量推动股价一浪高过一浪。如果股价拉升但分时量能柱是萎缩的多半是诱多不是猛攻。回调时是否缩量。一笔拉升之后的小幅回调如果量能迅速萎缩说明抛压不大后续还有可能再拉如果回调时量能反而放大说明卖盘在涌出日线信号即使成立也要谨慎。通常我会在分时回调缩量的位置介入而不是追着分时高点跑。这个习惯帮我过滤掉了至少一半的伪信号也让我在信号出现当天能拿到一个更好的入场价格。4.4 几个不推荐的使用姿势最后说几个常见错误用法都是真人和我交流时暴露出来的问题一是无脑追高。信号触发时股价已经上涨超过5%甚至涨停仍然按信号追进去。指标的目的是给一个相对合理的介入时机不是让你在信号出现时无视价位。信号出来时涨幅过大不如等回踩再找机会。二是信号当天满仓。再好的量价逻辑也可能遇到系统性风险任何概率工具都不值得你单次下注过重。我的个人习惯是信号出现先建三成仓位有效突破加仓跌破突破平台则走人。三是频繁修改参数去“拟合”历史。有些人看到某个参数组合在过去的行情里收益很高就赶紧改进去结果下次行情一变化立刻失效。参数是用来表达逻辑的不是用来做后视镜优化的。改参数之前先问自己我到底想让它适应什么市场状态如果答不上来就别动。四是完全忽略基本面雷区。量价指标反映的是交易行为但一只面临退市风险的股票也可以做出非常漂亮的吸筹突破形态。任何技术指标都替代不了基本面排雷这是底线问题。我自己用这套指标最大的体会是它帮我把“等待”这件事变得有依据。以前看盘容易手痒总想找点事做现在我会先看候选池里有没有处于吸筹区的股票再等突破确认然后按纪律分批介入。指标不会替你赚钱但它能让你每次下单前都想明白两个问题——这里到底有没有资金在吸筹启动的条件是否已经齐了。想清楚这两个问题至少能避开大部分最明显的坑。后续我还会继续在通达信里把这个公式做成可一键切换不同周期的版本但那是另一个话题了先把这一版跑起来再说。