通达信涨停回踩缩量选股公式:BARSLAST函数实战与参数调优
1. 涨停回踩策略的底层逻辑与设计思路1.1 为什么“涨停后缩量回踩”是值得关注的形态做短线的人大多有过这种经历某只票突然拉出一个涨停板第二天冲高回落第三天继续阴跌你以为是洗盘就冲进去了结果一路被套而另一些票同样涨停后回调两三天却突然再次放量拉升走出连板行情。这两种走势在K线图上看起来差不多但结果天差地别。核心区别在哪里就在回调时的量能结构和回调的幅度与时间上。涨停本身代表有资金愿意用涨停价扫货说明当天多方力量压倒性占优。但涨停之后获利盘和套牢盘都会产生兑现冲动所以回调是正常的。关键在于如果回调过程中成交量大幅萎缩说明抛压并不重主力资金没有大规模出逃只是在用时间换空间清洗浮筹而如果回调时放量下跌那大概率是资金在出货这种票就要回避。通达信里做这类选股核心工具就是BARSLAST这个函数。它的作用是统计“上一次条件成立到现在的周期数”配合涨停判断、量能比较、价格位置约束就能把“涨停后缩量回踩”这个形态量化出来。我自己的实盘经验是这个形态选出来的票第二天直接低吸的胜率明显高于追涨尤其适合震荡市和结构性行情。1.2 策略设计的三个核心约束把“涨停回踩”翻译成公式语言需要同时满足三个条件缺一不可。第一个约束是涨停的确认。通达信里判断涨停不能简单用C/REF(C,1)1.095因为不同板块涨停幅度不同主板10%、创业板和科创板20%、ST股5%。更稳妥的做法是用CZTPRICE(REF(C,1),0.1)这类函数或者用C/REF(C,1)1.095 AND CH来近似判断。我一般用后者因为它在日线级别足够稳定而且不依赖板块参数。第二个约束是回调的时间窗口。涨停之后不能无限期等待通常回调3到8个交易日是比较合理的区间。太短1到2天洗盘不充分太长超过10天说明资金关注度已经下降。用BARSLAST可以精确控制这个窗口BARSLAST(涨停条件)返回的就是距离上次涨停的天数。第三个约束是缩量的量化标准。什么叫“缩量”不能凭感觉。我的做法是回调期间某天的成交量小于涨停日成交量的某个比例比如40%到60%之间。同时回调期间的最低价不能跌破涨停日开盘价太多一般以涨停日实体的一半作为支撑参考。这三个约束组合起来就能过滤掉大部分假信号。下面这张表是我在实盘中总结的参数对照可以直接参考参数项推荐取值说明涨停判定幅度≥9.5%且收盘最高主板适用创业板可调至19%回调天数窗口3~8天用BARSLAST控制缩量比例回调日量/涨停日量 0.5越缩越健康回调支撑位涨停日开盘价至涨停价一半跌破则放弃均线参考不破10日线为佳辅助判断1.3 BARSLAST函数到底怎么用很多人对BARSLAST的理解停留在“上次条件成立到现在几天”但实际用起来有几个细节容易踩坑。BARSLAST(X)返回的是上一次X成立到当前周期的间隔数。如果当天X就成立返回0如果昨天成立今天不成立返回1以此类推。注意它返回的是“上一次成立”不是“第一次成立”也不是“最近一次成立”的累计。这个特性决定了它非常适合做“涨停后第N天”的判断。举个例子BARSLAST(C/REF(C,1)1.095 AND CH)返回的就是距离最近一次涨停的天数。如果今天是涨停后第3天这个值就是3。那么BARSLAST(...)3 AND BARSLAST(...)8就框定了回调窗口。但这里有个坑如果一只票在20天前涨停过一次5天前又涨停过一次BARSLAST返回的是5而不是20。所以它天然就是“最近一次涨停”的逻辑这正好符合我们做短线回踩的需求——只关注最近的涨停太早的涨停已经失效了。还有一个细节BARSLAST在条件从未成立时返回的是0还是无效值实测下来如果整个数据区间内条件从未成立它返回的是一个很大的数通常是上市以来的周期数所以配合BARSLAST(...)8这种上界约束是安全的不会误选从未涨停的票。2. 核心公式拆解与逐段编写要点2.1 涨停条件的稳健写法写涨停条件新手最容易犯的错是直接用C/REF(C,1)1.1。这个写法在主板股票上问题不大但遇到除权除息、新股上市首日、ST股就会出问题。除权日的前收盘价是调整过的直接除会得到错误的比例。更稳的写法是结合ZTPRICE函数。通达信内置了ZTPRICE(REF(C,1),0.1)它会根据股票所属板块自动计算涨停价。但要注意这个函数在部分老版本通达信里可能不支持所以我的习惯是写一个兼容版本{涨停条件兼容写法} ZT : CZTPRICE(REF(C,1),0.1) AND CH; {备用写法适用于不支持ZTPRICE的版本} ZT2 : C/REF(C,1)1.095 AND CH AND REF(C,1)0;实际使用时我会先用ZT如果回测发现某些票漏选再检查是不是函数不支持换成ZT2。另外CH这个条件很重要它确保是“封死涨停”而不是“盘中触板后回落”。有些票盘中摸到涨停但收盘没封住这种不算强势涨停回踩后的爆发力也弱很多。还有一个经验连续涨停的票BARSLAST会返回0因为当天就满足涨停条件这时候公式会自动排除不会重复计算。如果你想做“二连板后回踩”那需要另外处理不在本文讨论范围内。2.2 回调窗口与缩量判断的组合有了涨停条件接下来就是框定回调窗口和缩量标准。{距离上次涨停的天数} T : BARSLAST(ZT); {回调窗口3到8天} HJ : T3 AND T8; {缩量判断回调期间某天量能小于涨停日量能的50%} VOL_ZT : REF(V,T); {涨停日的成交量} VOL_HD : V; {当前回调日的成交量} SL : VOL_HD VOL_ZT*0.5;这里有个关键点REF(V,T)取的是涨停日的成交量因为T就是距离涨停的天数所以REF(V,T)正好回溯到涨停那天。这个写法比用HHV或LLV更精确因为它锁定的是涨停日那根K线的量而不是区间最大量。缩量比例设多少合适我试过0.3、0.4、0.5、0.6几个档位。0.3太严格很多票缩不到这个程度会漏掉机会0.6太宽松容易混入出货形态。0.5左右是比较平衡的既能过滤掉放量下跌的票又不会把正常洗盘的票排除在外。如果你做的是创业板20%涨停的票因为基数大缩量比例可以适当放宽到0.6。另外回调期间不一定每天都要缩量只要“至少有一天明显缩量”就可以。所以更实用的写法是用LLV取回调期间的最小量{回调期间最小量小于涨停日量的一半} SL2 : LLV(V,T) VOL_ZT*0.5;这样只要回调过程中出现过地量就算满足条件。实测下来SL2比SL的选股数量多30%左右但胜率并没有明显下降因为地量本身就是一个强烈的洗盘结束信号。2.3 价格支撑与均线辅助光有缩量还不够还要看价格有没有守住关键位置。如果一只票涨停后一路阴跌量是缩了但价格已经跌破涨停日开盘价那说明多头完全放弃抵抗这种票不能碰。{涨停日开盘价和涨停价} ZT_OPEN : REF(O,T); ZT_CLOSE : REF(C,T); {回调期间最低价不跌破涨停日实体的一半} SUPPORT : LLV(L,T) ZT_OPEN - (ZT_CLOSE-ZT_OPEN)*0.5;这个支撑判断的逻辑是涨停日实体的一半是多空分水岭跌破一半说明空方已经占据主动。更严格的做法是要求不跌破涨停日开盘价但那样会过滤掉很多票适合保守型选手。均线辅助也很重要。我一般会加一条当前收盘价在10日线之上或者10日线向上。这样能确保大趋势没有走坏。{均线辅助收盘价在10日线之上} MA10 : MA(C,10); MA_COND : CMA10 OR MA10REF(MA10,1);把以上所有条件组合起来最终的选股公式就成型了。下一节我会给出完整代码和逐行注释。3. 完整公式实现与参数调优实录3.1 可直接复制的完整选股公式下面是我实盘用了两年多的版本代码不复杂但每个条件都经过反复验证。你可以直接复制到通达信的“条件选股公式”里使用。{涨停回踩缩量选股公式} {一、涨停条件} ZT : C/REF(C,1)1.095 AND CH AND REF(C,1)0; {二、距离上次涨停的天数} T : BARSLAST(ZT); {三、回调窗口3到8天} HJ : T3 AND T8; {四、涨停日量能} VOL_ZT : REF(V,T); {五、缩量条件回调期间最小量小于涨停日量的一半} SL : LLV(V,T) VOL_ZT*0.5; {六、价格支撑回调最低价不跌破涨停日实体一半} ZT_OPEN : REF(O,T); ZT_CLOSE : REF(C,T); SUPPORT : LLV(L,T) ZT_OPEN - (ZT_CLOSE-ZT_OPEN)*0.5; {七、均线辅助} MA10 : MA(C,10); MA_COND : CMA10 OR MA10REF(MA10,1); {八、排除ST和停牌} NOT_ST : NOT(NAMELIKE(ST) OR NAMELIKE(*ST)); NOT_SUSP : V0; {最终选股} XG: HJ AND SL AND SUPPORT AND MA_COND AND NOT_ST AND NOT_SUSP;这段代码在通达信里新建一个“条件选股公式”把上面内容粘贴进去编译通过后就可以在“选股器”里调用。选股周期建议用日线盘后运行第二天开盘观察。3.2 参数调优我踩过的坑和最终取值公式写出来只是第一步参数调优才是决定实战效果的关键。我前后调整过几十次下面这几个坑印象最深。第一个坑涨停幅度设得太死。一开始我用C/REF(C,1)1.1结果发现很多主板票涨停是9.98%、9.97%根本选不出来。后来改成1.095覆盖了绝大多数情况。但创业板注册制之后20%涨停的票用这个条件就完全失效了。解决办法是分市场写两个公式或者用ZTPRICE动态判断。我现在是主板和创业板分开选互不干扰。第二个坑回调天数窗口太窄。最初我设的是3到5天结果选出来的票经常是“回调还没结束就买入”买进去还要再跌两天。后来放宽到3到8天并且加了“缩量地量”条件效果好很多。核心逻辑是时间窗口要给足但量能必须缩到位。时间不够可以用量来补但量不缩就绝对不能碰。第三个坑支撑位设得太宽松。有段时间我用“不跌破涨停日开盘价”作为支撑结果选出来的票要么不涨要么涨一点点就回落。后来改成“不跌破实体一半”选股数量增加了但胜率反而提高了。原因是实体一半是更真实的成本区主力洗盘通常不会打到自己的成本线以下。第四个坑忽略了大盘环境。这个公式在震荡市和上升市效果很好但在单边下跌市里选出来的票第二天低开的概率很大。所以我现在会加一个大盘过滤如果上证指数在20日线之下且20日线向下就暂停使用这个公式。这个经验是用真金白银换来的。下面这张表是我最终确定的参数组合供参考参数取值调整方向影响涨停幅度≥9.5%创业板改19%太低会混入大阳线回调窗口3~8天震荡市可缩至3~6太长资金关注度下降缩量比例0.5创业板可放宽至0.6太严会漏掉机会支撑位实体一半保守者可改开盘价太松会选到弱势票均线10日线可改20日线周期越长越稳健3.3 盘中预警与盘后选股的差异处理这个公式既可以盘后选股也可以盘中预警但两者有区别。盘后选股用的是当天收盘数据C、V、H、L都是确定的选出来的票第二天开盘操作。这是我最常用的方式因为信号稳定不会因为盘中波动而闪烁。盘中预警则需要把C换成DYNAINFO(7)最新价V换成DYNAINFO(8)总手但这样会有信号闪烁的问题——上午满足条件下午可能就不满足了。我的做法是盘中预警只作为观察名单不直接下单等尾盘14:50之后再确认一次。如果尾盘仍然满足条件才考虑第二天操作。还有一个细节盘后选股时如果当天是回调窗口的最后一天比如第8天但量能还没有明显萎缩那第二天可能就超出窗口了。所以我会在选股结果里手动看一下T的值优先选择T在4到6天之间的票这些票的回调时间适中爆发概率更高。4. 常见问题排查与实战避坑指南4.1 选股结果太多或太少怎么办这是最常见的问题。选出来几十只票说明条件太宽松一只都选不出来说明条件太严格。结果太多时优先收紧缩量比例。把LLV(V,T) VOL_ZT*0.5改成*0.4或*0.35能过滤掉一批量能不够萎缩的票。其次可以收紧支撑位把“实体一半”改成“不跌破开盘价”。最后可以加一条回调期间不能有单日跌幅超过5%的K线这样能排除掉急跌洗盘的票。结果太少时反过来放宽。先把缩量比例放到0.6再把回调窗口扩到3到10天支撑位改成“不跌破涨停日最低价”。如果还是很少那可能是大盘环境太差这时候不应该强行选股而是空仓等待。我自己的习惯是每天选出来的票控制在5到15只之间比较合理。太少说明市场没有符合形态的标的太多说明条件需要收紧。这个数量区间是经过大量回测得出的经验值。4.2 信号出现后第二天怎么操作选股公式只负责“选出目标”不负责“买卖点”。第二天怎么操作才是决定盈亏的关键。我的做法是第二天开盘先看竞价。如果高开超过3%不追等回踩分时均线再考虑如果平开或低开且分时图在开盘半小时内站稳昨日收盘价可以轻仓介入。止损位设在涨停日实体一半的下方跌破就走。还有一种情况第二天直接低开低走跌破支撑位。这时候不要幻想“再等等”直接放弃。公式选出来的是“候选”不是“必涨”市场永远是对的。提示这个公式最适合在震荡市和结构性行情中使用单边下跌市中信号失效率会明显上升。建议配合大盘环境判断不要无脑执行。4.3 常见问题速查表问题现象可能原因排查方法解决方式选不出任何票条件太严或大盘太差逐步放宽缩量比例先放宽到0.6测试选出几十只票缩量条件太松检查LLV是否生效收紧到0.4以下信号后次日大跌支撑位判断失效检查是否跌破实体一半加均线过滤涨停日判断错误除权导致比例失真查看复权设置使用前复权数据创业板票选不出涨停幅度参数不对检查是否用1.095单独写20%版本盘中信号闪烁用了动态数据检查是否用DYNAINFO改为盘后选股4.4 几个容易被忽略的细节复权设置很关键。通达信默认可能是不复权但除权日的价格跳空会导致涨停判断错误。一定要在“系统设置”里把数据改为“前复权”这样历史K线才是连续的。我见过有人用不复权数据选股结果除权那天被误判为涨停选出一堆莫名其妙的票。停牌票要排除。停牌期间V0BARSLAST的计算会出问题。所以公式里加了V0这个条件确保只选正常交易的票。新股要谨慎。上市不满60天的票历史数据太少BARSLAST可能返回无效值。虽然公式里有上界约束但新股本身的波动规律和老票不同建议手动排除。不要迷信单一信号。这个公式选出来的是“形态符合”的票但形态只是概率优势不是确定性。我自己的仓位管理是单票不超过总仓位的20%同时持有不超过3只这样即使某只票失败整体回撤也可控。5. 公式的扩展思路与个人实战体会5.1 从单一日线到多周期共振这个公式目前是日线级别但可以扩展到周线做辅助判断。比如日线选出信号后再看周线是否处于上升趋势周线MACD金叉或周线收盘价在5周线之上。如果周线也配合信号的可靠性会明显提升。具体写法是在公式末尾加一句{周线辅助周线收盘价在5周线之上} W_MA5 : MA.MA1#WEEK(C,5); W_COND : C#WEEK W_MA5;注意跨周期引用需要通达信支持部分版本可能不兼容。如果不能用就手动切到周线图看一眼不费事。5.2 结合板块效应提高胜率单独一只票涨停回踩和整个板块一起涨停回踩意义完全不同。如果选出来的票属于当天热点板块且板块内有其他票也出现类似形态那胜率会高很多。我的做法是选股结果出来后按行业分类看一下如果某只票所在的板块当天涨幅排名前10就优先关注。这个不需要写进公式手动判断即可。5.3 我个人的实战体会这个公式我用了两年多最大的体会是它帮你缩小范围但不帮你做决定。选出来的票最终买不买、买多少、什么时候卖还是要看盘面。公式是工具不是圣杯。另外任何公式都有失效期。当市场风格切换、监管趋严、或者涨停板制度发生变化时参数都需要重新调整。我一般每季度会重新回测一次看看当前的参数组合是否还适用。这不是一劳永逸的事情但只要你理解了BARSLAST和缩量回调的底层逻辑调整起来并不难。最后分享一个小技巧如果你觉得每天选股太麻烦可以把公式设成“预警条件”在盘中自动监控。但记住预警只是提醒不是买入指令。真正的决策还是要等收盘后冷静判断。