资讯详情

资讯详情

换手率核心用法:口径、分位与量价筛选实战

换手率这三个字凡是打开过行情软件的人都见过但真把它当核心工具用的人不多。我做交易研究和策略回测这些年见过太多人盯着成交量柱子数高低也见过不少人把量比当成唯一参考结果换一只标的后完全失效——成交量是绝对数盘子一大一小就没法比。换手率不一样它把成交量除以流通股本做了一次标准化让不同市值、不同板块的标的能放在同一张表里横向比较。这也是我愿意把换手率叫作“最真实的指标”的原因不是它预测最准而是它最不容易被单笔大单扭曲最贴近真实可交易筹码的交换强度。这篇内容我会从计算口径讲起说清楚不同盘子的读数差异、量价怎么配合、一套能直接复现的筛选流程最后把踩过的坑整理成排查表。不管你是刚学看盘的新手还是已经在写策略的老手应该都能拿走点东西。1. 换手率到底在衡量什么1.1 计算口径与三种常见算法换手率的原始定义很朴素一段时间内的成交量除以可交易的股本再乘100%。写成公式就是换手率 成交量 ÷ 流通股本 × 100%。举个具体例子某标的流通股本8亿股当天成交1.6亿股换手率就是20%。这个数字的含义是当天有相当于流通盘五分之一的筹码换了手。它跟我今天买了多少、卖了多少无关衡量的是“筹码交换的剧烈程度”。实际动手时你会发现市面上的口径不止一种至少有三种用总股本算、用流通股本算、用自由流通股本算。总股本口径基本没人用因为限售股根本不能交易算进去等于把分母虚增读数会被系统性压低。流通股本口径最常见通达信、同花顺默认给的多数是这个。自由流通股本口径最贴近真实它把大股东长期锁仓、战略投资者持股、员工持股计划这些“事实上不参与日常交易”的股份从分母里剔掉。同一只标的流通股本8亿股、自由流通股本4亿股日成交量1.6亿股前者算出20%后者算出40%差了整整一倍。我的建议是做短线情绪判断用自由流通口径更准做长期流动性评估用流通股本口径更稳。关键是别在同一份研究里混着用一会看这个一会看那个最后结论自己都圆不上。1.2 为什么“可横比”比“数值大”更重要成交量最大的问题是不可比。某只大盘标的日成交30亿听起来很大但它的流通盘可能是3000亿换手率才1%某只小盘标的日成交3亿看着不起眼流通盘只有30亿换手率10%。如果你只看成交额排序永远会把注意力放在大盘股身上错过真正活跃的小票。量比也常被人拿来替代换手率但它同样有短板。量比是当日每分钟平均成交量与过去五日每分钟平均成交量的比值本质上是个相对自己历史的倍数跨标的不可比。一只长期冷清的标的量比冲到5可能也就成交了几千万说明不了太多一只天天爆量的标的量比0.8也可能依然是全场最活跃的。换手率把分母拉进来直接解决了这个问题。10%就是10%不管这只标的流通盘是30亿还是3000亿这10%代表的筹码交换强度是同一个量级的概念。这就是我说的“可横比”——它是一把统一的尺子能让你在全市场范围里做横向排序。1.3 口径选择的陷阱总股本、流通股本、自由流通股本这里有个特别容易踩的坑股本不是静态的。解禁、增发、送转、可转债转股都会让分母在某个时点突然变化。如果你用的是本地缓存的股本数据没跟着更新换手率就会算出离谱的值。我遇到过最典型的情况是某标的刚做完10转5股本扩大了50%我手上的流通股本字段还是老数据结果连续一周的换手率都被高估了三分之一筛选结果里它天天排在最前面差点误判成有资金在持续介入。后来查公告才发现是除权导致的。所以只要涉及股本变动第一件事就是同步分母。次新股是另一个特殊场景。刚上市时流通盘极小往往只有总股本的10%到25%这时候换手率天然就高日换手30%、50%都不稀奇。你拿这个数字去跟已经全流通的老标的比完全没有意义。我的处理办法是给次新股单独设一档观察期上市不满60个交易日的不看绝对换手率只看它自己上市以来的分位变化。还有一个容易被忽略的点可转债转股会持续增加股本虽然每次增加的量不大但累积几个月下来分母可能已经变了百分之几。做长周期回测的时候这种慢性漂移会悄悄污染你的结果建议每次跑回测前都重新拉一遍股本字段而不是图省事复用旧文件。2. 不同盘子的换手率读数差异2.1 按流通市值分层的经验区间同一个换手率数字放在不同的流通市值身上含义完全不同。我统计过一批标的的日常换手率分布大致可以归纳成这么一张表这是我个人常用的参考区间不是绝对标准但拿来快速定位足够用流通市值区间常态换手率区间明显放量的门槛需要警惕的极端值30亿以下3%~8%10%以上25%以上30亿~100亿2%~5%7%以上18%以上100亿~500亿1%~3%4%以上10%以上500亿~2000亿0.5%~1.5%2.5%以上6%以上2000亿以上0.3%~1%1.8%以上4%以上这张表最直接的用处是防止“看到10%就兴奋”。同样10%的换手率出现在30亿流通盘的标的上属于常态波动出现在2000亿流通盘的标的上就是极端异常两者背后需要的资金体量差了两个数量级。很多新手拿着同一套阈值横扫全市场结果自然是被小盘股的噪音反复打脸。还有一个变量是板块属性。同一市值档位下成长型板块的日常换手率普遍高于价值型板块这是参与者结构决定的不是什么玄学。判断的时候最好拿同板块、同市值档的标的做横向参照而不是拿一只小盘成长标的和一只大盘价值标的直接对比。2.2 用历史分位替代死标准死记阈值有个致命问题市场整体活跃度是会漂移的。行情火热的时候全市场换手率中枢整体上移你按老标准看什么都像放量行情清淡的时候反过来全市场都缩量你的阈值一个都触发不了。我现在更常用的是滚动分位法。取过去250个交易日大约一年的日换手率序列算当前值在其中的百分位。分位超过80%就算显著放量低于20%算显著缩量20%到80%之间是常态区间。这个办法的好处是自动适应市场环境不需要我手动调参数。除了分位我还会算一个标准分Z-score公式是Z (当前换手率 - 250日均换手率) ÷ 250日换手率标准差。分位法看的是“排在第几名”标准分看的是“偏离常态几个身位”。两个指标一起看能避免一些误判比如某标的过去一年换手率一直很平稳某天突然翻倍分位可能直接冲到95%但标准分可能只有2说明虽然创了新高但绝对偏离幅度不算夸张反过来一只波动巨大的标的分位80%对应的标准分可能有3以上那是真正的异常。我的经验是分位负责筛选标准分负责排序。先用分位把放量的标的捞出来再用标准分排个优先级效率会高很多。2.3 四种典型换手状态的市场含义把换手率的高低位和价格位置一结合能得到一个相当好用的二维判断框架。我常用来做快速归类的是这四种状态低位低换手也就是价格处于近一年相对低位、换手率也在20%分位以下。这种状态说明筹码交换极度冷清没人愿意在这个价位卖也没人愿意买。它既可能是底部区域的沉淀期也可能只是下跌中继的暂停。单看这一格不能下结论得看它持续了多久以及有没有量能先于价格企稳的迹象。低位高换手价格在低位但换手率明显放大。这是我最愿意花时间研究的一格因为它意味着在低位区间有大量筹码易手原有的持仓结构在松动。当然也可能是恐慌性抛售所以必须结合价格是否创新低来判断放量但价格不跌和放量且价格继续破位是两件完全不同的事。高位高换手价格在高位、换手率也高。这一格的风险信号最强它意味着大量获利筹码在高位兑现同时有大量资金在接。分歧巨大后面往哪走取决于承接力度。我不说它一定见顶但这一格的持仓性价比通常不高。高位低换手价格在高位但换手率萎缩。这一格容易被误读成“筹码锁定良好”实际上也可能只是没人接盘导致的缩量滞涨。判断的关键看它是不是在创新高以及上涨过程中的换手率是不是一路递减——量价背离越走越远后面的调整往往越急。3. 换手率与量价关系的配合3.1 换手率与价格位置的二维矩阵上一节我提了四种状态实际使用中我把它细化成了一个矩阵判断的时候直接对号入座换手率低位20%分位换手率中位换手率高位80%分位价格低位30%分位无人问津观察期温和回暖可跟踪关注度上升重点研究价格中位缩量整理等方向常态波动不构成信号突破放量观察持续性价格高位70%分位无量上涨警惕背离高位震荡谨慎分歧巨大风险区这张表我只用来做初筛不会直接拿来做决策。因为它缺少一个关键维度时间。同样是“低位高换手”持续一天和持续二十天意义完全不同。前者可能只是单日事件后者才代表资金持续介入。所以我还会加一个持续性条件连续N个交易日中至少有M天换手率超过80%分位。我一般设N10、M4也就是十天里有四天放量。这个条件能过滤掉大部分单日脉冲留下的往往是真有一定持续性的。3.2 换手率均线与放大倍数单日换手率的噪音很大加个均线能平滑掉不少。我用两条5日换手率均线和20日换手率均线。5日均线上穿20日均线代表短期活跃度在抬升反过来则是活跃度在退潮。这个用法跟价格均线类似但作用对象是活跃度而不是价格。比均线更直观的是放大倍数公式是当日换手率 ÷ 过去20日换手率均值。我自己的经验分档是这样的放大倍数含义我的处理方式0.5以下极度缩量观察是否临近变盘0.5~1.2常态不构成信号1.2~2温和放量留意结合价格位置2~4明显放量重点跟踪看持续性4以上异动必须查原因可能是事件驱动4倍以上这一档一定要查原因。可能是业绩公告、可能是行业消息、也可能是大额解禁当天的换手。不查清楚就当成资金介入很容易站错位置。这里也提醒一句上面这些倍数和分位都只是历史统计出来的观察工具不构成任何投资建议市场本身有风险任何指标都有失效的时候。3.3 累计换手率与筹码换手周期除了单日和均线我还经常看累计换手率。算法简单把一段时间的日换手率加总就行。20日累计换手率达到100%意味着流通盘理论上换了整整一遍60日累计换手率达到200%意味着平均每份筹码换了两次手。这个数字的用处是估算筹码换手周期。一只标的的换手率如果长期维持在2%左右那50个交易日左右筹码换一遍如果某段时间换手率突然升到5%以上换手周期直接缩短到20天。换手周期缩短往往意味着参与结构在变化原有的持仓者退出新的资金进来后续的走势特征也会跟着变。我一直觉得累计换手率比单日换手率更能反映“这波行情换了几茬人”。一轮持续两个月的行情如果累计换手率只有120%说明大部分人还在里面筹码没怎么松动如果累计换手率冲到了400%说明已经换了好几轮参与者的平均成本早就抬上去了这时候再谈“低位”就不合适了。4. 一套可直接复现的换手率筛选流程4.1 数据准备与字段说明整个流程的第一步是把数据准备好。我需要的字段不多但每个都必须准确交易日成交量股注意不是手成交额元流通股本股自由流通股本股有最好没有就用流通股本替代这里最容易出错的是成交量单位。有的数据源给的是“手”1手等于100股忘了乘100换手率会直接缩小100倍筛出来的结果全是零。我吃过一次这个亏跑出来的换手率全是0.003%这种数排查了两个小时才发现是单位问题。还有一个细节是停牌处理。停牌期间成交量是0换手率也会是0如果直接扔进滚动窗口会把分位数算偏。我的处理是停牌日直接剔除不参与滚动计算只保留有成交的交易日。4.2 筛选条件与参数设定参数我基本固定成这样一套你可以根据自己的风格微调参数取值说明分位窗口250个交易日约一年兼顾稳定性和敏感度放量阈值80%分位高于此值视为放量缩量阈值20%分位低于此值视为缩量持续窗口N10个交易日观察放量是否持续最少放量天数M4天10天里至少4天放量均线周期5日、20日用于判断活跃度趋势最小流通市值30亿过滤掉流动性过差的标的停牌剔除是停牌日不进滚动窗口筛完之后我一般还会加一个人工复核环节把结果里放大倍数超过4倍的标的单独拉出来看公告确认是不是有事件驱动。这一步没法自动化但能过滤掉相当一部分误判。4.3 代码实现下面这段用pandas实现逻辑很直白主要就是把换手率和分位算出来import pandas as pd import numpy as np # df 需要包含: date, close, volume(股), float_shares(股) df df.sort_values(date).reset_index(dropTrue) # 剔除停牌日成交量必须大于 0 df df[df[volume] 0].copy() # 日换手率单位 % df[turnover] df[volume] / df[float_shares] * 100 # 换手率均线 df[to_ma5] df[turnover].rolling(5).mean() df[to_ma20] df[turnover].rolling(20).mean() # 放大倍数 df[to_ratio] df[turnover] / df[to_ma20].shift(1) # 250日滚动分位当前值在窗口内的百分位 def pct_rank(s): if len(s) 60: return np.nan return pd.Series(s).rank(pctTrue).iloc[-1] df[to_pct] df[turnover].rolling(250, min_periods60).apply(pct_rank, rawFalse) # 250日 Z-score roll_mean df[turnover].rolling(250, min_periods60).mean() roll_std df[turnover].rolling(250, min_periods60).std() df[to_z] (df[turnover] - roll_mean) / roll_std # 价格位置分位近250日收盘价分位 df[price_pct] df[close].rolling(250, min_periods60).apply(pct_rank, rawFalse) # 放量标记 df[is_high_to] df[to_pct] 0.8 df[is_low_to] df[to_pct] 0.2 # 持续性条件10日内至少4日放量 df[high_cnt_10] df[is_high_to].rolling(10).sum() df[sustained] df[high_cnt_10] 4 # 最终筛选 result df[(df[sustained]) (df[to_ratio] 1.5) (df[price_pct] 0.7)] print(result[[date, turnover, to_pct, to_z, to_ratio, price_pct]].tail(20))跑这段的时候有一个点值得注意min_periods我设的是60意思是至少要有60个交易日的数据才开始算分位。设太小分位不稳定设成250又会让次新股全部算不出来。60是一个我试下来比较平衡的值。4.4 回看验证与有效性判断筛出来的结果不能直接用得做回看验证。我的做法是给每个信号日打上之后5日、10日、20日的价格变化然后统计不同分位区间和不同价格位置组合下的胜率和平均收益。这一步没什么技巧就是老老实实把历史数据跑一遍。跑完你会发现一个很现实的情况同样的换手率信号在不同市场环境下表现差异巨大。所以我一般不追求一个能覆盖全时段的参数而是观察它在什么环境下有效、什么环境下失效。比如我自己的回测里低位放量这一格在震荡市中的表现明显好于单边下跌市这个结论就直接写进我的使用说明里——单边下跌市中低位放量的信号可信度要打折。再强调一次这些都是历史统计不代表未来会重复。任何基于换手率的筛选都只是把候选范围缩小最终决策还得靠对具体标的的理解和风险控制。5. 常见问题与排查技巧实录5.1 数值异常排查表换手率算出来不对八成是数据问题。我整理了一张排查表遇到异常先按这个顺序过一遍现象最可能的原因排查方法换手率全部接近0成交量单位是“手”没转成“股”检查是否需乘100换手率突然翻倍解禁、增发、可转债转股导致股本增加查最新股本变动公告换手率突然腰斩送转除权后股本扩大同步最新流通股本某标的换手率长期偏高次新股流通盘小上市满60日后再纳入比较换手率与实际成交明显不符大宗交易、协议转让不计入二级市场成交结合成交额与笔数交叉验证复牌前后数值断层停牌期间数据缺失剔除停牌日不参与滚动同一标的两个软件数值不同口径不一致流通股本 vs 自由流通固定用一套数据源别混用这张表里最值得多说两句的是“对倒导致换手率虚高”。单纯拉高换手率并不难通过自买自卖反复成交就能做到。识别这类情况我一般看三个辅助指标单笔平均成交额是否明显偏小、成交笔数是否异常放大、价格波动是否与成交量严重不匹配。真正的资金介入通常伴随较大的单笔成交和相对连贯的价格走势而对倒往往呈现“量大但单笔小、价格原地打转”的特征。5.2 换手率与成交量背离怎么处理背离是我遇到最多、也最容易判断错的情况。价格上涨但换手率持续走低这种背离说明推动价格上涨所需的成交量在减少参与者在变少。它不一定马上下跌但持续性通常不好。我的处理方式是背离出现后不急着下结论而是设一个观察窗口比如5个交易日内如果换手率不能重新抬升就降低对这个走势的预期权重。反过来价格横盘但换手率持续在高位这种背离往往更有意思。它说明大量筹码在同一个价格区间反复易手原有持仓结构在被重塑。这种状态持续时间越长后面一旦选择方向幅度往往越大。我一般会把这类标的放进重点观察池但不提前预判方向等它自己走出来再说。还有一种容易被忽略的背离是长假前后的。节前最后一个交易日往往缩量换手率天然偏低这时候算出来的分位会失真。我的处理是把节前节后那几个交易日单独标注出来不纳入分位判断。5.3 新手最容易踩的五个坑第一个坑是死记阈值。看到换手率超过10%就觉得是放量完全不看流通盘。这个前面说过了同一套数字在不同市值上含义差了十万八千里。第二个坑是混用口径。今天看软件默认的流通股本换手明天换成自由流通换手两套数字放在一条时间线上比较结论必然是错的。选定一套就一直用下去。第三个坑是只看单日不看趋势。单日换手率受事件影响太大公告日、除权日、指数调整日都可能出异常值。至少要看5日和20日均线看趋势而不是看单点。第四个坑是把高换手等同于好。高换手只是说明交换剧烈交换剧烈既可能是资金进场也可能是资金出逃。方向得靠价格位置和价格走势来判断指标本身给不了方向。第五个坑是忽略流动性成本。换手率低的标的就算信号再漂亮实际进出时的冲击成本也可能吃掉大部分空间。我一般会设一个最低换手率门槛比如20日均换手率不低于0.8%低于这个数的一律不碰不是因为信号不好而是因为不好买也不好卖。这些坑我基本都踩过一遍。最疼的一次是拿一套小盘股的参数直接套到大盘股上筛出来几十个信号回测结果惨不忍睹后来才发现根子就在阈值上。我个人在实际操作中的体会是换手率最大的价值不在于给你一个买卖点而在于帮你快速判断“这个位置有没有人在认真交易”。一个换手率长期趴在0.3%的标的不管它的图形多好看短期内都很难有像样的行情因为根本没有足够的参与者来推动。反过来一个换手率持续处在高分位的标的至少说明它现在是被关注的至于是往哪个方向走那是下一步要解决的问题不是换手率本身能回答的。把这一点想清楚很多纠结就自然消解了。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →