主题
第34章:调仓机制
第33章已经给出了目标持仓:买哪些股票或 ETF、每项占账户多少。但目标表与真实账户之间还隔着几件事:今天就换还是月底再换?只差几百元也要下单吗?旧股卖不掉,新股的钱从哪里来?同一套评分和持仓限制,采用不同的调整规则,最终净收益可能相差很大。
调仓就是通过买卖,让实际持仓向当前目标靠近。 它既包括换掉一只股票,也包括名单不变时调整金额。本章围绕三个问题展开:多久调整一次才值得;哪些变化值得为之付出成本;交易无法完成时,下一步怎样做。下一章再把这些规则放进回测,逐笔核对现金、持仓和净值。
本章的资金与目标核对方法适用于个股和 ETF;涉及公司公告、停牌和股票交易制度时,以 A 股个股为对象。ETF 的差异在相关段落就地说明。以下数值、费率与门槛均为教学示意,不是推荐参数或实际收益预测。
一、多久换一次,要看等下去会错过什么
假设一个信号识别的是公告后几天内的价格反应,你却每季度才调整一次,轮到买入时,机会可能早已过去。反过来,一套看重多年盈利质量的名单,若每天仅因微小名次变化反复更换,也可能多付费用而没有获得多少新信息。调得更勤的价值,来自及时用上仍然有效的信息;代价则是更多交易和对短期噪声的反应。
定期调仓先约定检查目标的日历。日频是每个交易日检查,周频是每周某个约定交易日检查,月频和季频则分别按月、季度检查。它们说的是重新评估和调整的机会,不是到点必须把全部持仓卖掉重买。若目标与实际接近,本次可以没有交易;月频组合也可以连续几个月保留同一只股票。
采用日频,需要证据说明多等几天会损失明显机会;周频可以作为几天到几周信号的候选方案;月频或季频可用于研究变化较慢的投资判断。这些是待比较的起点,不是给因子贴上固定频率标签。 价值因子中的价格每天会变,财务质量也可能因一份新公告改变判断,不能只根据数据名字决定持有多久。
怎样判断晚买几天是否已经太迟
第29章用不同持有期的 IC 观察因子与后续收益排序的关系。IC 衡量两组数的相关性,不能读成收益率;更不能把“持有20日的累计收益仍与原分数相关”理解成“等到第20日再买也来得及”。前几天已经发生的涨幅,仍然包含在那20日累计收益里。
要回答等待的代价,可以固定一个未来收益窗口,只改变信号使用的延迟。例如每个形成日都留下当时的股票分数,分别考察:形成日之后第1—5、第6—10、第11—15个交易日各自的区间收益,并固定相同的收益计算口径。每种延迟都用同一份旧分数与相应的未来收益计算 IC,再跨多个形成日汇总。这样比较的是“旧信息还能不能给接下来这段收益排序”。
若示意结果依次为0.06、0.02、接近0,说明晚用这份信号,其排序能力明显减弱;它值得进入较快调仓方案的检验。若延迟后仍较稳定,低频调整就多了一条依据。但这些数既没有直接给出可赚金额,也没有算成交成本,因此不能仅凭 IC 最高的延迟决定频率。
接着固定股票池、评分和组合构建办法,只改变少量有理由的调仓频率,比较扣费后的组合表现、换手和无法成交比例。若更勤调整增加的收益不足以覆盖新增成本,就没有必要加快。换手很高也不自动意味着亏本,要看留下的净收益;反过来,低换手但信息早已失效,同样不是好方案。
定期调整以外,哪些事情值得临时处理
假设月初刚完成调仓,月中一家公司公告触发了策略事先规定的财务排除条件。等到月底才查看,可能违背了原来的持有理由。这时可以采用信号触发:在约定的检查时点,只要指定条件成立,就重新评估目标,而不等待常规调仓日。
触发条件可以是明确的风险事件,也可以是权重越过预设上限;普通排名变化则可以继续留给定期检查。一个可执行的组合是“每月重排,日常收盘后检查风险条件”。检查频率、重算目标频率和实际交易次数因此可以不同。
规则还必须写清信息与交易的先后。例如“每月最后一个交易日收盘后,用届时已知的数据形成目标,下一交易日开始执行”;临时公告若在收盘后才公布,也不能假设按当天收盘价退出。遇到休市,按交易日历顺延。信号触发并不要求盘中操作,使用盘中条件时则要另行保证数据当时已经可见。
ETF 配置同样可以定期检查或由指数信号触发调整,但研究对象首先是底层指数或资产。ETF 产品出现异常溢价或流动性不足,可能导致暂停买入;这不等于底层市场的投资判断也同时失效。
二、多换一次,究竟多花多少钱
假设100万元账户把甲股票卖出20万元,再买入乙股票20万元。看起来只是把20%的钱换了去处,但券商和市场面对的是两笔成交,共40万元。估算成本之前,必须先说明“换手率”究竟把买卖算一次还是两次,否则成本很容易差一倍。
本章采用双边成交额口径,把一个统计期间内证券买入额和卖出额相加,再除以该期间的平均账户净资产:
上例忽略价格变化,换手率是
为看清量级,暂把每一元买卖成交的综合成本都近似为0.15%,包含费用和执行损耗,则上例成本为40万元乘0.15%,即600元,占账户0.06%。等价地,也可以用20%的完整换手乘0.30%的往返成本,仍是0.06%。两种算法必须配对,不能交叉使用。
若每次都按上述规模交易、账户规模近似不变,一年调12次与52次的差别如下。这张表只比较成本,没有假设调得更勤一定赚得更多。
| 示意方案 | 每次双边换手 | 全年近似双边换手 | 全年成本占账户比例 |
|---|---|---|---|
| 12次调整 | 40% | 480% | 0.72% |
| 52次调整 | 40% | 2080% | 3.12% |
多出的成本约为2.40个百分点。只有更勤调整带来的额外毛收益足以覆盖它,净结果才可能更好。真实策略每次换手不会固定相同,年度成本也应按成交逐笔核算;这里的乘法用于建立判断尺度,不能代替回测。
真实交易中买卖两侧费用可能不同,个股卖出还涉及相应税费,ETF 二级市场买卖通常不征收股票交易印花税。最低佣金、价差和市场冲击又会让成本随单笔金额和流动性变化。因此0.15%只用于本例;股票与 ETF 分别应用自己的历史费用和交易条件,不能因为 ETF 费用较低,就把轮动视为免费。
还要区分第29章的名单更换比例与这里的金额换手:20只股票只换两只,不一定只交易10%的资金;其余18只也可能在恢复等权时发生买卖。反过来,每天检查却几乎不改持仓,可以只有很少的成交。控制成本最终要看实际动了多少钱,不能只数调仓次数或更换代码数。
三、排名变一点、金额差一点,哪些可以先不动
某股目标占账户4.5%,实际占4.4%。在100万元账户中,两者只差1000元。为了这1000元买一小笔,可能受到最低佣金、交易单位和价差影响;第二天价格变化又让这笔微调失去意义。目标是一个参照,并不表示任何微小偏差都值得立即修正。
第33章的排名缓冲已经解决了“要不要换代码”:新股进前20名才有新买资格,旧股留在前30名仍可保留,在有空位时递补。本章再加一层金额偏差缓冲,解决“留下来的股票要不要微调”。两层针对不同问题,不能用“代码没换”推断没有换手。
为了统一比较大小账户,可以先算实际权重与目标权重相差多少:
例如事先规定:普通持仓微调只有在偏差达到0.5个百分点且按当前参考价格计算的差额达到3000元时,才进入下单检查。这就是最小交易阈值,用来过滤金额太小、不值得支付费用的调整。前面的1000元差额不触发;100万元账户里,若目标4.5%、实际3.9%,相差0.6个百分点、金额6000元,就同时过了两条线。真正下单时还要按交易单位取整,再查费用和现金。
一旦触发,还需约定调到哪里。本例选择向目标权重靠近,而不是只调回触发线以内;考虑交易单位后可能留下一点尾差。另一些方案只调到容许区间边缘,交易较少,但之后更容易再次触发。选定一种后固定检验,不能这次采用目标、下次凭感觉采用边缘。
普通微调阈值不应挡住已决定的退出或风险降仓。 本例将新建仓、清仓及风险超限单独处理;小到无法按交易单位实现的新建仓,保留现金并记录,而不是随意放大买入。若把所有指令都套进3000元阈值,一笔只剩2000元、但必须退出的持仓就可能永远留在账户里。
普通调整还可以设置总成交预算,但必须同时规定先做哪些交易,否则“预算用完”会让下单顺序暗中决定持仓。本例不另设总换手预算,只使用前面的缓冲与微调阈值;风险退出也不因普通交易预算而取消。无论采用哪种节省交易的方法,都要同时检查省下的成本与延迟调整错过的收益,不能不断放宽缓冲直到换手最低。
四、分批买入,能解决什么,又会错过什么
某个目标要求买入30万元,而该证券盘中愿意按接近当前价格卖出的数量不多。一次吃掉多档卖单,可能把自己的成交均价推高。将30万元分成几批,可以降低某一时刻的交易压力,也能避免全部资金恰好落在单一成交时点,但会延迟达到目标。
例如计划在三个交易日分别最多买10万元。这是分批建仓:把一个总目标拆到多个时段执行,不是每一天重新追加一个30万元目标。后一天先查已成交多少、最新目标还差多少,再确定剩余买入;若第一天只成交6万元,不能把“第一天剩下4万元”和“当前剩余总需求”当作两份独立订单重复提交。
分批不保证买得更便宜。若价格持续上涨,后两批可能更贵;若信号只在最初两天有效,分到第三天可能已经没有原来的优势。反过来,变化较慢、交易金额较大的目标更有条件逐步完成。具体在开盘还是盘中、用怎样的成交额占比执行,留到第41章的交易执行讨论。
因此分批规则至少要明确总目标、每批上限、执行期限,以及取消后续批次的条件。例如“最多分三日;每天使用最新已确认成交与目标核对剩余需求;信号失效或风险条件触发后停止买入;期限结束不自动追买”。停止买入只取消未完成部分,已买到的持仓仍按退出规则处理。
另有一种分散调仓日期的做法:把资金划成若干部分,在不同日期各自更新。例如四部分分别在不同周调整,每部分大致每四周检查一次。它可以减轻组合对某一个调仓日的依赖,却没有让每部分都更快使用信号,也不自动降低总成本。若采用这种办法,要合并查看所有部分的实际持仓和限额,避免各部分都买同一批股票而超过全账户上限。
ETF 同样可能需要分批,但判断依据是自己的委托规模、盘口深度、价差与折溢价。多分几笔不能消除一直存在的高溢价,也不能替代对产品可交易性的判断。A 股个股和通常实行 T+1 的境内股票 ETF,当天新买入的份额或股份还不能当天卖出;其他 ETF 是否允许日内回转应按具体品种确认,不能统一假设可以当天撤回已成交买入。
五、卖不掉时,现金和下一笔买入怎么安排
假设目标要求卖出旧股甲15万元,买入新股乙15万元,并维持账户10万元现金。甲当天封在跌停附近,卖出委托只成交6万元。如果仍把乙按15万元买满,账户现金只剩1万元,已经偏离了原定现金安排。若回测直接把甲剩余9万元删掉,还会同时抹去一笔真实风险。
就这笔调仓交易而言,发出指令不等于持仓改变,必须等到成交。 停牌意味着不能成交;涨跌停则要按买卖方向与实际对手盘判断,不是触及价格限制就双向禁止交易。封死涨停时买入可能排不到,封死跌停时卖出可能排不到;即使全天有成交,也不说明自己的挂单一定成交。挂单、部分成交与全部成交必须分开记录。
本例事先规定现金底线为10万元,且不借钱。为看清资金关系,假设所有价格不变、暂不计费用,其他证券始终75万元。甲只卖出6万元后,现金从10万元升至16万元,因此最多拿6万元买乙,才能保留10万元现金;真实下单还需预留费用。
| 账户项目(示意) | 调仓前 | 希望达到的目标 | 当日实际结果 |
|---|---|---|---|
| 其他证券 | 75万元 | 75万元 | 75万元 |
| 旧股甲 | 15万元 | 0 | 9万元 |
| 新股乙 | 0 | 15万元 | 6万元 |
| 现金 | 10万元 | 10万元 | 10万元 |
| 合计 | 100万元 | 100万元 | 100万元 |
这张表揭示两件事:目标没有完成,账户却必须如实守恒;甲仍占用资金、承担风险,因此乙只能部分买入。这是本例选择的现金纪律,并不是所有账户都必须先卖再买。若允许动用更多原有现金,规则需事先明确,而且仍要检查买入后仓位与行业上限,不能临时为完成目标找钱。
为了把部分成交后的处理顺序看清,下面将一轮调仓画成流程。沿箭头从目标走到成交回报,再回到实际持仓核对;不能从“发出指令”直接跳到“目标已完成”。
读图时注意“未成交”分支:它产生的是待处理的剩余需求,不是可以提前使用的卖出款,也不是已经增加的新持仓。收到部分成交后,先按确认成交更新账户,再扣除仍有效委托占用的资金或数量,才能计算下一笔可下单金额。
第二天是继续等,还是换一个候选
甲若停牌或继续无法卖出,只能被动持有;仍要按适用估值口径计入净资产、行业权重与风险。停牌期间报价可能不变,并不意味着风险消失。恢复交易时要重新核对条件和可成交价格,不能沿用停牌前的价格假设已经退出。
乙若封在涨停买不进,可以事先选择取消、限期重试,或按排名换下一个合格候选。这三种规则会产生不同持仓,必须在回测前选定,不能等看到谁后来涨得更多才决定。本章示例采用明确的三日执行期:从本次目标首次开始执行的交易日起,普通买入最多执行三个交易日,每只每日最多买入10万元。当日未成交买单撤销;撤单确认后,收盘核对成交、剩余需求与目标是否仍有效,下一执行日再检查是否可以买入。超过三日就停止普通买入重试,余款留现金,等下一次月度目标更新;不自动递补或追价。
这里的每日执行核对,不等于每天重新按因子排名换股:月度目标仍是参照,但当日已知的风险变化可以使它被修订或取消。重新评估时,先确认旧委托已经撤销或失效,再按实际持仓和当前有效目标生成新需求。如果甲已部分卖出,后续只能针对剩余股份;若目标已经变化,也不能盲目继续昨天的买入计划。避免旧单仍有效、新单又重复占用同一笔现金或可卖数量,是“重试”必须带上的条件。
普通卖单同样在三日执行期内逐日撤销未成委托、确认后重新核对;期满仍未卖出的股份如实保留,等下一次目标更新再评估。若保留期间触发风险退出,则转入风险处理,不继续等待月末。
风险退出则与普通调整区分:只要排除条件仍成立,退出意图继续保留,不受普通买入三日期限限制,每日收盘核对剩余可卖数量,下一交易日检查是否能够继续退出;它不因一次未成交而自动变成继续看好。A 股当日新买入股份受 T+1 限制,还要把“持有数量”和“当日可卖数量”分开。ETF 若发生停牌、异常价差或流动性不足,也应按同样的实际成交原则更新账户,并按产品规则处理。
六、让一条调仓规则在遇到意外时仍有答案
“每月调仓”只说了日历,没有说明微调、临时风险和失败订单怎样处理。调仓规则应让两个人面对同一份数据和成交记录,知道何时继续、何时停止以及最多动用多少资金。具体报价与盘中拆单方法留到第41章。下面把前面的选择整理成一份示意约定,用于衔接第33章的目标表;具体参数仍需样本外和成本检验。
| 遇到的问题 | 本例事先约定的处理 |
|---|---|
| 什么时候重排 | 月末最后一个交易日收盘后形成目标,下一交易日开始执行 |
| 月中出现排除条件或风险超限 | 每个交易日收盘后检查;触发则更新目标,下一交易日评估执行,不等月末 |
| 小幅排名或金额变化 | 沿用前20新买、前30保留的排名规则;普通微调须同时达到0.5个百分点与3000元,触发后向目标调整 |
| 阈值是否挡住必要动作 | 新建仓、清仓、风险降仓单独处理;仍受交易单位、资金与可成交性约束 |
| 分几批、执行多久 | 普通买入每只每日最多10万元,从目标首次执行日起最多三个交易日;需求超过每日上限则分批,期满停止,余款留现金 |
| 买不进或卖不出 | 未成普通买卖单当日撤销,确认后每日收盘核对,三日内下一交易日重试;期满保留实际持仓与现金,不自动递补。风险退出逐日核对并继续尝试,不受三日限制 |
| 资金与持仓怎么核对 | 用实际成交、可用现金和可卖数量决定订单;保留现金底线及费用,不借用尚未成交的卖出款 |
这张表不是额外的一套选股模型,而是保证模型到了交易时不会被临时决定改写。检查它是否有效,要把调仓日期、缓冲宽度和失败处理都当成策略的一部分记录。若只改一个调仓日、稍抬一点成本就失去全部优势,应该回到第30章检查稳健性,而不是再挑一个最好看的日期。
本章小结
- 调仓频率取决于等待会损失多少有效信息,以及提速要多付多少成本;检查得勤不等于必须交易得勤。
- 排名缓冲减少更换代码,金额阈值减少小额微调,分批交易分散执行时点。它们都有延迟达到目标的代价。
- 目标是意图,成交才改变账户。失败后从实际持仓、有效委托和可用现金重新出发,不能让未成交订单在回测里自动成功。
第七部分到这里完成了从因子分数、可投资名单到持仓和调仓规则的连接。下一章进入回测系统的金融逻辑:把信息、下单、成交、持仓更新与净值计算按时间排好,检查每一笔收益是否真的可能发生。