Skip to content

第33章:组合构建 ​

第31章把多个因子合成了一个分数,第32章决定哪些个股、哪些 ETF 可以进入候选名单。但同一份排名交给两个人,一个只买前5只,另一个买前50只,最终账户可能完全不同:前者更容易被一家公司影响,后者可能持有更多分数一般的股票。排名只表达“更看好谁”,还没有回答“愿意让谁影响多少钱”。

本章解决三个问题:怎样把排名变成持仓和金额;怎样避免买了很多只却仍押在同一个方向;怎样把旧持仓与 ETF 一起放进这套规则。最后交付的是一份有日期、有约束、有现金余额的目标持仓表。第34章再讨论多久调整一次、何时触发交易,以及交易失败后怎么办。

前四节以 A 股个股为主,第五节加入沪深上市 ETF,第六节串起完整过程。以下数字均为教学示意,不是推荐持股数量、仓位或限额。

一、排名靠前的股票,究竟买多少只 ​

假设过滤后的股票池有500只,你已按综合分从高到低排好。最直接的做法是取前20只,这就是 Top N 选股:从排序中选前 N 只,N 是计划持有的数量。它容易检查,也让资金集中在模型最看好的部分,因此适合作为第一套比较方案。

可是,第20名和第21名未必有什么实质差别。分数只差0.1分,名次却决定了一个可以买、另一个不能买。更重要的是,这20只可能有12只都在电子行业。此时“选到了高分股票”和“主动重押电子”一起发生了,单看排名无法把两件事分开。

若你的目标是“在多个行业内部挑公司”,可以先给行业分配名额,再分别按分数选股,这叫分层选股。例如,示意股票池只有三个行业,目标持有20只,事先分配8、7、5个名额,然后在各行业内取相应数量。这样解决的是“某个行业包揽名单”的问题,但也可能让某行业中较低分的公司挤掉另一行业的高分公司。

两种方法各自表达不同判断:全池 Top N 更愿意让分数决定行业分布;分层选股先约束行业分布,再让分数挑公司。分层名额应由事先声明的目标决定,例如参照基准行业比例;不能看哪个行业过去涨得好,就回头多分名额。若各股金额不同,仅限制名额还不够,第三节还要检查行业资金占比。

多买几只,能分散哪一种风险 ​

先看一家公司出事的影响。假设其他持仓价格不变、没有交易费用,一只占账户20%的股票跌50%,会使账户损失10%;若它只占5%,同样跌幅使账户损失2.5%。把钱分给更多公司,通常能减轻单家公司经营出问题带来的损失。

但若20只股票都是同一产业链上的公司,下游需求萎缩时它们可能一起下跌。把20只扩到40只,却仍在同一条产业链里挑,增加的是代码数量,未必增加独立的收益来源。公司自身的风险可以通过分散减轻,市场整体下跌和共同的行业冲击不会因为代码变多就消失。

持股太少,账户容易被个别事件左右;持股更多,单家公司影响通常变小,代价则是纳入排名更靠后的公司,以及小账户中每笔金额变小、整手交易和最低佣金更难忽略。数量增加也不必然降低换手,关键还要看名单和权重变动。

选择 N 时,先固定其他规则,比较少量相邻方案,如20、30、40只:扣费后的收益是否相近,最重的几只和几个行业占多少,单股意外能造成多大损失,资金是否足够按交易单位买入。若只有精确到某一个 N 才赚钱,回到第30章检查参数敏感性。这里追求的是对小变动不过度敏感的持仓方案,不是找一个适用于所有策略的最佳数量。

二、同一份名单,每只股票应该分多少钱 ​

选出20只之后,“每只买一样多”和“分数越高买得越多”会形成不同账户。先统一口径:本章的持仓权重是某项资产市值占账户总资产的比例,账户总资产包括证券市值和现金。第31章的“因子权重”是某个指标在评分里占多少;这里的权重才真正决定一只股票涨跌对账户影响多大。

为了把百分比变成可以核对的金额,目标市值按下面计算:

Vi=A×wi

A 是制定目标时的账户总资产,wi 是第 i 项资产的目标权重,Vi 是它的目标市值,金额单位保持一致。例如账户100万元,某股权重5%,目标市值就是5万元。这里给出的是目标金额;换成股数时还需考虑价格、交易单位与费用,不能假定任意小数股都能买到。

本课程只做多、不借钱,因而证券目标权重不能为负,证券与现金的目标权重合计为100%。下面比较三种常见分配办法,假定已经确定20只股票,并准备将账户的90%投入其中,其余10%留为现金。

等权:每只分到相同金额。 90%除以20,每只占账户4.5%。它不要求判断第一名比第二名究竟好多少,适合作为基准方案。但等金额不等于等风险:一家股价剧烈波动的小公司,可能比同金额的大型稳定公司带来更大的账户波动。等权也会相对市值加权更看重入选名单中的小公司。

按因子分数加权:分数高的分到更多金额。 这表示你不仅相信排序,还愿意用钱放大分数差异。若采用非负综合分来分配股票资金,需要先把各股分数除以入选股票分数总和:

wi=B×si∑j=1Nsj

B 是计划投入这些股票的账户比例,si 是股票 i 的非负综合分,分母把入选的 N 只股票分数相加,且总和必须大于零。计算结果 wi 仍占整个账户,而不是只占股票部分。为看清算法,暂用两只股票:分数60和40、B=90%,得到54%和36%,再加10%现金,正好100%。这只是计算示例,如此集中的权重还要接受下一节的限额检查。

分数60并不表示预期收益是分数40的1.5倍;这样分配是一项额外的投资规则,需要检验。若分数是可能为负的标准化值,不能直接套这个公式得到负持仓。可以事先规定转换成非负排名分,也可以保留等权;转换方式会改变资金分布,不能为了回测好看临时平移分数。

市值加权:入选公司越大,分到的金额越多。 例如两家公司采用同一口径的市值为300亿元和100亿元,就把股票资金按3比1分配。它更接近很多宽基指数的做法,通常也让资金偏向容量较大的公司;代价是大公司可能主导组合,即使其因子排名较低。必须固定使用总市值、自由流通市值还是指数规定的调整市值,并取目标形成时可用的数据。

这三种方案的差别可以整理成一张选择表。读表时先看自己相信什么,再看因此接受什么代价。

分配办法额外作出的判断重点检查
等权入选以后,不再用分数差距或公司大小区分金额小公司与高波动股票是否影响过大
因子分数加权更高的分数值得投入更多钱是否过度放大不可靠的分差、权重是否集中
市值加权在入选公司中,让大公司影响更大分数靠前的小公司是否几乎失去作用

先用等权建立可解释的参照,再判断精细加权是否在未参与调参的时期、扣除成本后带来改善。最终检查的是加权后的组合,不能因为分数在第29章通过过检验,就认为任何资金分配都有效。

三、买了很多只,为什么仍会一起跌 ​

20只股票各占4.5%,单只看起来都不大。但如果其中12只是电子股,电子行业就占账户54%。一旦行业整体下跌,这12个代码不会各自提供一道保护。解决这类集中,需要把权重逐层相加,先看一家公司,再看行业,最后看跨行业的共同特征。

单股上限限制某家公司最多占账户多少。例如设为5%,意味着不能因为它分数特别高就配到12%。上限针对的是目标形成时的权重;价格变化可能让实际权重日后越过5%,是否立即减仓由第34章的调仓规则决定。

行业上限限制同一行业的所有持仓权重之和。例如上限25%,就不能让前面那12只电子股合计占54%。如果策略目标是贴近某个基准,也可以限制偏离:基准某行业占20%,只允许组合在其上下5个百分点内变化,即15%至25%。两者不要混写——绝对上限只给一个天花板,相对基准的范围同时限制高配和低配;“5个百分点”也不是“基准权重的5%”。

风格限制用来发现行业标签看不见的集中。电子、医药、机械各买一些,仍可能全是小公司。第17章说的风格,就是按公司大小、估值、成长等共同特征观察股票;风格暴露在这里可以先用具体占比来理解:若事先定义的“小盘股”占账户70%,而基准同口径只占30%,组合就明显偏向小盘。可规定小盘资金占比上限,或相对基准的偏离范围。比较前必须固定“小盘”的定义、数据日期与基准口径,否则两个占比没有可比性。

限制风格不等于把自己的策略抹平。小盘策略本来就需要比基准更多的小公司,质量策略本来就偏好高质量公司。先明确哪些偏向是你主动要的,再限制那些无意中一起带进来的偏向。否则为了“没有偏离”,最后可能连选股观点也没有了。

截掉超额权重以后,剩下的钱放哪里 ​

假设电子股初始权重54%,上限25%。减掉29个百分点只是第一步;如果把这部分钱按原权重比例分回全部股票,电子行业又会超标。权重上限不是最后贴上的标签,它会改变名单和资金去向。

一种容易检查的规则是:先把触碰单股或行业上限的部分固定住,只向仍有额度的股票分配剩余资金;再检查全部限额。名单容纳不下时,按分数顺序从其他合格候选股递补。若再无符合条件的股票,就保留现金,并记录未投满的原因。每次递补与分配都要同时检查单股、行业和风格限制。

这些条件有时根本无法同时满足。例如只允许买10只、每只最多5%、又要求股票仓位90%,最多只能投50%,不存在符合要求的答案。看到这种矛盾,应在运行前改规则;运行中则执行事先规定的缺额处理,不能偷偷放松上限或把现金强行均摊回去。

分散的收益是减轻单个错误对账户的冲击,代价是放弃部分高分股票或降低其权重。若限制后收益变低,先核对是否减少了原来依赖的行业、小盘或集中持仓收益,再判断这种交换是否符合自己的目标,不能仅凭回测收益最高来决定取消限制。

四、跌出前20名,就一定要卖吗 ​

假设旧持仓甲从第20名退到第21名,未持有的乙从第21名升到第20名,两者分数几乎没有变化。严格追踪前20名会卖甲买乙;下次排名反过来,又要买回甲。为这点不确定的差别反复支付费用,可能吃掉排序提供的优势。

可以把“允许新买”和“要求退出”分成两条线:新股票进入前20名才有资格买,旧股票只要仍在前30名,就有资格保留。 第21至30名这段给旧持仓留下的余地,叫排名缓冲区。它减少边界附近的反复进出,代价是会保留一些已经不在当前最优名单上的股票。

“有资格”还不是完整规则,因为组合仍计划只持有20只。一个明确的实现顺序是:先检查旧持仓是否仍符合投资条件,再保留其中排名前30的股票;有空位时,才从未持有、排名前20的股票中按顺序补齐。若符合条件的新股票不够,剩余金额暂留现金。首次建仓没有旧持仓,直接从前20名开始。

下面把已经持有与尚未持有的两种状态并排放,避免把缓冲区误读为“排名前30都买”。

当期排名(示意)已持有未持有
第1—20名符合投资条件则可保留有空位才按排名买入
第21—30名符合投资条件则可保留不新买
第31名及以后从目标名单退出不新买

例如20个旧持仓中有18个仍在前30名,就保留这18个,再从未持有的前20名股票里选两只。已经持有且排第25的甲可以留下,即使未持有且排第10的乙因此暂时进不来——这是为减少交易而主动放弃追踪最新排名的精确性。

缓冲只容忍小幅排名变化,不豁免风险规则。 已触发财务排除条件的股票应从目标名单退出;单股或行业超限也要处理。至于停牌或跌停导致卖不掉,实际持仓仍必须保留记录,不能因为目标权重为零,就把股票和损失从账户中删除。目标与实际之间的差异留给执行环节逐笔处理。

还要分清“保留股票”和“完全不交易”:旧股票留在名单中,其金额仍可能因等权恢复、价格变化或限额而调整。排名缓冲主要减少成分更换;金额变动多小才值得交易、缓冲要多宽、多久检查一次,都需要结合成本与信号有效期检验,第34章再展开。

五、加入 ETF 后,要把里面的股票一起算 ​

假设你已有银行股,又买了一只银行 ETF。账户代码增加了,但同一行业的资金也增加了。ETF 可以帮助你一次持有一篮子股票,却不会自动与已有持仓互相分散。因此,使用 ETF 前先决定希望它解决什么问题,再选产品,最后合并检查账户。

纯个股组合逐家公司分配资金,适合表达公司之间的选股判断,但需要自己管理单股、行业与风格集中。纯 ETF 组合在指数或资产之间分配资金:宽基 ETF 可以一次持有多个行业的一组股票,行业或主题 ETF 用于增加某个方向,红利等策略指数 ETF 则按指数规则选择特征相近的公司。几只 ETF 是否足够分散,取决于底层持有什么,而不是基金数量。

个股加 ETF 的混合组合可以先用一部分宽基 ETF 参与较广的市场,再用一部分个股表达公司判断。先定两部分各占账户多少,再分别构建内部持仓;不能把一个“个股100%”和一个“ETF100%”直接相加。ETF 产品仍按第18、32章检查费用、跟踪质量、流动性与折溢价;公司的财务因子则用于个股或 ETF 底层成分,不能把基金代码当成上市公司。

一家公司从两条路径进入账户,要合并计算 ​

假设直接持有甲公司占账户4%,同时持有的某 ETF 占账户50%,而甲公司占这只 ETF 净资产的6%。忽略示意中的价格与净值差异,ETF 这条路径相当于让账户另外3%的资金对应甲公司,因为50%乘6%等于3%。两条路径合计为7%,并不是持仓表上直接看到的4%。

这叫穿透持仓:把基金里面的公司拆开,与直接持股合并。为避免把“账户里的比例”和“基金里的比例”相加,通用计算写成:

ui=di+∑k=1Kekhk,i

ui 是账户穿透后对应公司 i 的比例,di 是账户直接持有该公司的比例,ek 是第 k 只 ETF 占账户的比例,hk,i 是该公司占这只 ETF 净资产的比例,K 是所持 ETF 数量。例中就是 4%+50%×6%=7%。行业占比也可同样计算,把公司在基金内的权重替换为行业权重即可。

下面把两条资金路径画在一起。顺着箭头看,每条路径先换算成占整个账户的比例,到甲公司处才相加;这样就能看出为何不同代码会把钱投向同一家公司。

混合组合穿透持仓示意:直接4%加ETF间接3%,合计7%

如果你设的公司风险上限是5%,本例实际已超限,需要减少直接持股或调整 ETF 配置。这里要区分两种上限:ETF 产品上限限制账户在某只基金放多少钱;底层公司上限限制通过所有路径合计对应某家公司多少钱。不能拿个股5%的上限机械限制每只宽基 ETF,也不能因为宽基 ETF 内部有很多公司,就完全不设产品和底层集中度检查。

实际应用时,这是一种按持仓估算的分析。应记录采用的 ETF 持仓日期与披露日期;指数权重可以辅助估算,但抽样复制、现金与跟踪偏离会使它不等于基金实际持仓,不能把估算写成精确结果。历史回测还要只用当时已经公布的数据,不能拿未来披露的持仓填回过去。

暂时不用的钱,不能随便买一只股票 ETF ​

如果留钱是为了下一次买入时有稳定可用的资金,买宽基 ETF 并没有达到同一目的:市场下跌时,它也可能一起跌。宽基 ETF 分散了部分公司风险,仍然承担股票市场风险。

现金管理可考虑账户现金,或符合用途的场内货币基金等工具;这只是股票型 ETF 主线之外的必要边界。货币类产品不等于银行存款,也不承诺本金无风险,还需检查交易价格、流动性、费用和资金可用时间。债券 ETF 会随利率和信用等因素波动,也不能一概视为现金。

写组合规则时,直接列明保留账户现金还是持有哪类现金管理产品,并核对需要买入股票时能否及时变现、资金何时可用。

六、把规则落实到一张能核对的目标持仓表 ​

现在假设账户总资产100万元,计划股票仓位90%、现金10%,目标20只个股,初始等权,每股4.5万元。再规定单股上限5%、行业上限25%,采用第四节的“新买前20、旧股保留到前30”规则。同时写明:限额优先于旧股保留;每只入选股票固定占账户4.5%,不因缺额而提高其他股票权重,空缺资金留为现金。所有条件都已在看本次结果之前确定,行业和风格数据也使用本次目标形成时已知的口径。

先检查旧持仓,再按规则递补。本次得到的初选名单中,电子股有8只,另外12只分属其他行业。若仍按每股4.5万元分配,电子行业会占36%,超过25%的上限。不能因为这8只都排得高就忽略限制。

本例事先规定保留等权,通过递补改变名单:电子股最多保留5只,因为5乘4.5%等于22.5%,而6只会达到27%。在8只电子股中保留分数最高的5只,腾出3个位置;再从符合新买条件、且加入后不会使其他限制超标的非电子股票中按排名补3只。假定这3只确实存在,最终仍为20只、股票仓位90%。行业上限优先于旧持仓保留规则,因而缓冲不能阻止这里为满足上限而进行的替换。

下面是目标表的汇总视图;实际文件还应逐只列出代码、当前金额、目标金额和入选或退出理由。这里假设补齐后其余15只分别落在三个行业,每个行业5只,且已经通过事先设定的风格检查。

持仓部分(示意)只数每只目标市值合计目标市值占账户比例
电子行业54.5万元22.5万元22.5%
行业乙54.5万元22.5万元22.5%
行业丙54.5万元22.5万元22.5%
行业丁54.5万元22.5万元22.5%
现金——10万元10%
合计20—100万元100%

若只能补到两只,就暂定19只、证券85.5%、现金14.5%,而不是把每股金额自动放大。前面两种结果都能由同一套缺额处理规则得到,差别来自当时的候选名单。如果持有 ETF,还要在这张表后附上第五节的穿透检查,重新汇总公司、行业与风格占比。

最后,把目标市值与实际持仓对上。例如某股目前持有6万元,目标4.5万元,差额是应卖出1.5万元;某股尚未持有,目标4.5万元,差额是应买入4.5万元。目标差额是交易需求,仍不是成交结果。 若旧股暂时卖不掉,它依然占用资金并承担风险,新买计划必须受实际可用现金约束,不能假设未收到的卖出款已到账。

目标表还要注明形成时间、所用数据日期与规则版本,并保存无法满足目标的原因。把金额换成可下单数量时,要给费用留出资金、遵守交易单位,并再次核对限额;成交后的实际权重也未必精确等于目标。这就把本章的“想持有什么”,自然交给下一章的“何时调整、如何逐步达到目标”。

本章小结 ​

  • 排名决定更看好谁,持仓数量和资金权重决定账户会被谁影响。先选可解释的基准方案,再检验复杂分配是否值得。
  • 分散要检查公司、行业和跨行业的共同特征;碰到限额后,还必须明确递补和剩余资金的去向。
  • 旧股可以因小幅排名变化获得缓冲,风险条件与资金约束不能豁免。加入 ETF 后,把底层公司合并计算,最后始终区分目标持仓与实际持仓。

下一章学习调仓机制:信号能持续多久、交易成本有多高,会共同决定多久调整一次,以及多大的变化才值得下单。