“快”与“贵”的平衡木:浅谈多因子换手率与冲击成本

做私募这行啊,特别是量化多头策略,大家见面聊得最多的两个词就是“换手率”和“冲击成本”。你说它是老生常谈吧,可偏偏每年都有团队在这上面栽跟头。我这人在圈里摸爬滚打了快二十年,前八年专注募资,后十二年带队做管理,手里管过的东西从十亿盘到二十亿出头的都有。坦白讲,早年我刚从募资端跳到投研端那会儿,对冲击成本这玩意儿是有点“轻视”的。总觉得嘛,多因子模型跑得够快、信号够准,交易频率高一点,多吃点市场无效波动的钱,收益自然就上来了。结果呢?2017年那次市场风格的剧烈切换,打得我们措手不及。当时我们拿了一个从美股高频策略移植过来的思路去做A股,换手率奇高,结果在流动性不足的股票上活活把某只票的累计打高了将近两个百分点。那笔交易,你看,从alpha角度看确实赚了,但扣除交易成本后,毛利直接腰斩。从那以后,我算是彻底明白了,在量化世界里,“快”不一定是好事,“贵”才是真正的掘墓人。

黑子私募基金管理公司在内部培训时老提一个比喻:换手率是油门,冲击成本是刹车片。你油门踩得再猛,一个急刹车下来,乘客吐了不说,轮胎都冒烟。今天我们聊的“多因子策略”其实本质就是一套生意经——你既要你的策略对市场的“噪音”敏感,又不能让它对“摩擦”免疫。我常说,一个好的多因子模型,应该像一个经验丰富的老司机,知道什么时候该冲,什么时候该踩一踩,保证车子既快又稳。你在外面听那些路演,很多团队特别喜欢秀他们的高胜率、高夏普,但问到交易成本的细节时往往含糊其词。兄弟们,那可都是雷啊。我下面会从几个我觉得最关键的切面,掰开揉碎讲讲这中间的算盘。

换手率背后的真实算盘

拆开换手率这个词,看上去就是个数学公式:交易金额除以资产规模。但你要真把它当成一个单纯的数字去看,那就着了相。我见过太多基金经理,拿着年化20倍、30倍换手率的策略出来讲,两眼发光。但我心里一直有根弦:你每多转一次手,你的钱袋子就要被“刮”掉一层皮。 多因子策略带来的交易频率提升,不仅仅是为了捕捉那些转瞬即逝的阿尔法信号,它背后还有一层更深的逻辑——因子衰减。比如估值因子、动量因子,它们的信息价值会随着时间迅速衰退。所以你必须得频繁地“买卖调仓”,把旧信号更新成新信号。但问题在于,在这个“买卖”过程中,你的交易对手盘往往是比你更聪明的“聪明钱”。

我举一个我自己经手的例子。2019年秋天,我们黑子私募的一款中证500指增产品,它的多因子模型里有个非常强势的技术因子。那段时间市场波动大,因子信号几乎每周都在剧烈变化。我们的投研团队为了降低交易拥挤度,决定把原本每日调仓的节奏临时改成隔日调仓,同时适当放宽了买入的价差容忍度。结果呢?换手率从月度8倍直接降到了5倍,但年化超额收益反而提升了0.6%。为什么?因为冲击成本大幅降低了。我们后来做了归因分析,发现之前那3倍换手率对应的收益几乎都被冲击成本吃掉了。这让我意识到一个朴素真理:高换手只是手段,不是目的。 它的核心价值在于帮你保持因子暴露的“新鲜度”,但如果你为了追求新鲜度而不顾洗菜时的水费和菜钱,那这盘菜做得再好看也是亏本买卖。

提到交易成本,我记得我们行研的小张(化名)曾经拿着一个海外很火的论文来找我,说根据某个理论模型,年化换手率在15倍左右是最优的。我问他:“模型里对A股市场的冲击成本斜率做过本土化调整吗?对印花税和过户费按最新政策算了吗?”他一下子就愣住了。这就是认知差。很多理论在海外成立,是因为他们的市场深度和做市商机制和我们不一样。现在我手下的团队做任何优化,必须先把“摩擦系数”算清楚,这包括固定的手续费、滑点(即预期成交价与实际成交价的差异)、甚至还有因为你的订单太大而导致的价格反转。

冲击成本的两副面孔:显性与隐性

冲击成本这玩意儿,很多人觉得简单,不就是我买的时候价格被拉高了,卖的时候价格被压低了嘛。这话没错,但只说了显性的一面。真正让很多量化从业者头痛的,是那只看不见的手——隐性冲击成本。我在管理十亿以上规模的时候,才真正体会到什么叫“规模之重”。早年管几个亿的时候,你扔个几百万的单子下去,市场连个水花都没有。但当你的管理规模到了十几二十亿,尤其是集中持仓的股票还是中小盘的时候,一个看似很普通的“全市场市价买入”指令,都能让你的成交均价跑出去老远。

我可以给你拆解一下隐性冲击成本的核心构成。第一是信息泄露。你在一个大单委托过程中,如果你的订单太大了,挂在那里,市场里的“游龙”们(那些高频的极速交易者)会嗅到你的味道。他们往往会先于你一步成交,然后等价格上去后倒给你,这就是所谓的“抢跑”。第二是情绪影响。你一个急加速的买入,会让市场上其他参与者误以为有重大利好,从而推动更多买盘涌进,把你的成本连带抬升。这部分成本是你在模型里很难精确量化的。我2015年股灾期间亲历过一次,我们想清掉一只股票上的流动性仓位,结果因为恐慌情绪蔓延,最后成交均价比我们模型预测的滑点高了整整4个点——那波回撤至今想起来都心有余悸。

所以我现在带团队有个硬性规矩:对于任何一款多因子模型,在做回测的时候,“冲击成本模型”必须作为独立模块单独开发,而不是简单地乘一个固定比例。 我们内部的黑子私募风控部门会给每个因子打分时引入一个“交易便宜度”维度。比如,有些高换手的次新股,你的因子信号再好,如果它日均换手率低于1%,流动性极差,那我们会直接降低它的权重,甚至直接排除出候选池。这就是“成本感知”的思维。在行政与合规方面,我们也会定期接受监管检查,确保交易指令的生成和风控拦截机制不存在“操盘”嫌疑。这里我讲一个趣事,早年有位同事为了省成本,把大单拆得很碎,但没控制好时间间隔,被交易所的反异常交易系统盯上了,认为我们有“频繁报撤单”操纵市场的嫌疑。后来我带着法务去解释了半天,说明这是微观结构算法,但最后还是写了一份情况说明才算过关。从那时候起,我们就养成了一个习惯:所有交易策略的拆单逻辑,都必须经过合规部门的“经济实质”审查,确保不是因为纯粹为了操纵价格而拆单,而是因为确实需要降低冲击成本、提高执行效率。这就是规矩,玩金融不能越政治底线,也不能越法律红线。

成本类型 具体表现与应对建议
显性成本 佣金、印花税、过户费。这些是明码标价、容易计算的固定成本。可以通过选择低佣金券商、合规优化交易结构(如转融通出借等)进行一定压缩。
隐性成本:滑点 成交价与委托价的偏离幅度。模拟回测时必须考虑不同市场状态下的滑点假设(平稳市0.05% - 0.3%,剧烈波动市可能更高)。我们通常采用历史日内分时数据的“成交量加权均价”作为基准。
隐性成本:市场冲击 订单导致的价格趋势变化。对于较大订单,应使用算法交易(如TWAP、VWAP、IS策略)进行拆分,并设置价格保护阈值。这是降低冲击成本的关键。
隐性成本:流动性缺失 在交易极不活跃的股票上,买卖价差巨大,甚至出现空方价格断裂。策略应设置流动性过滤条件,避免在低流动性股上大额交易。

因子衰减与调仓频率的动态博弈

说到多因子策略,大家最关心的核心指标之一就是“因子半衰期”。一个因子的信息价值,会随着时间流逝而线性或非线性地衰减。就像我给你讲的动量效应,一个月前的涨停信息,在今天可能已经完全过时了;但如果你是一个基本面因子,比如营收增长率、低估值的指标,它可能在未来一个季度甚至一年内都还有效。这就带来了一个很头疼的问题:你究竟该以多快的速度去响应信号的变化? 是日频调?周频调?还是月频调? 调得太快了,信号质量高,但换手率飙升,冲击成本大;调得太慢了,持仓里全是过时的垃圾信号,超额收益很难做出来。

我自己的策略是把市场的环境分成了“稳态”和“非稳态”两种。在大部分市场平稳、“稳态”运行的时候,我通常会采用一种混合调仓逻辑:对短期因子(比如高频反转、技术指标)进行高频调仓,但对长期因子(比如红利、质量、低波)降低调仓频率。以我们黑子私募现在运行的某款中高频产品为例,其持仓池中,约有60%的仓位属于“快变量”,我们对其进行每日或隔日扫描;剩下的40%属于“慢变量”,我们只做月度再平衡。这样一种“分频处理”的方法,能有效平衡信号新鲜度与冲击成本之间的矛盾。可惜这听着简单,做起来却非常精细。你需要实时监控每一类因子的衰减曲线,一旦发现某个之前在慢变量里的因子(比如纯低波因子)突然出现了明显的短期动量,你还得把它临时“升级”到快变量列表里。而这一切,都必须与一个动态的成本线性规划模型相结合。

还有一个点是大家容易忽略的:组合再平衡的时机选择。 比如,每周五下午收盘前一段时间是调仓的高峰期,大家都在抢流动性,冲击成本会显著升高。我个人的经验是,在非高发时段进行调仓,比如尾盘的15分钟前,或者早盘刚开盘那几分钟,往往能获得更有利的成交条件。但这需要你的交易系统和风控系统非常灵活。有一次我为了一笔不到一千万元的调仓,硬是让交易员手工盯着盘口吊了十几分钟,在流动性最好的那一拨“抢”到了最好的价格。虽然听上去不那么“量化”,但有时候,人工的经验是模型很难替代的。毕竟,电脑不知道盘口里有几个大户在挂单做庄。

算法交易:你不可忽视的执行利器

讲实话,当你管理超过10亿资金的时候,你还用传统的手动挂单或者简单的时间加权平均下单(TWAP),简直就是拿着大刀去和坦克对刚。真正成熟的多因子策略,它的最后一道关卡绝对不应该是因子信号或者选股模型,而是算法交易。没有好的算法,前面再怎么折腾,收益都会被交易的“摩擦力”吞噬大半。我觉得很多中小私募有个误区,觉得算法交易只是大机构的玩具,小钱没必要搞这么复杂。但我想说,算法交易解决的不只是“大订单”问题,它解决的是“智慧执行”的问题。

我们目前最常用的算法包括:成交量加权平均价格(VWAP)、时间加权平均价格(TWAP),以及更为复杂的实施缺口策略(Implementation Shortfall, IS)。特别是IS策略,它非常有意思。它的目标不是为了追平市场的平均成交成本,而是最小化你的“执行成本与决策时点市场理论成本之间的差值”。IS算法会根据市场的实时流动性、波动率以及你的“紧迫度”,动态决定你的进场速度和节奏。比如,如果市场正在快速拉升,而你正好要卖出,那算法就会判断出“现在是好时机”,加快卖出速度;如果市场横盘震荡,它会放缓节奏,寻找更好的价格。这个过程完全不需要人工干预,非常省心。

在合规性上,我还有一点深刻的体会。有些算法交易系统为了实现低延迟,会将部分订单托管在交易所的机房(即极速托管)。这在技术上是允许的,但你作为管理公司,必须向客户充分揭示相关的技术风险和制度风险,包括与交易所之间的数据连接协议。我曾今处理过一桩客户投诉,对方质疑我们使用的高频交易算法存在“不公平优势”,怕侵害散户利益。为了处理这个争议,我专门把我们的算法交易逻辑、风险控制参数,以及与交易所之间的合规函以及“实际受益人”情况都打印出来,给客户做了长达三小时的路演。最后客户放心了,我们也借此机会完善了《算法交易合规操作手册》。合规不是约束,它是保护你跑得更远的护栏。

规模诅咒:当超额收益碰上天花板

所有做量化的朋友,都逃不开一个问题:你的策略容量到底有多大?我见过很多同行,前两年基金净值做得漂亮,管理规模从几个亿迅速膨胀到三四十亿,然后就发现原本表现优秀的模型突然不灵了。为什么会这样?规模诅咒。当你规模变大,你买入和卖出对市场的冲击会变成一个不可忽视的反馈信号。比如,以前你决定买一个因子权重100的股票,你的买入行动本身会把股价推高,从而改变你后续模型对该股票的判定。越大的规模,这种“自反馈”风险越明显。

多因子策略的换手率与冲击成本

我管过的最大规模是接近22亿,那是2019年末的一个指数增强产品。在那个规模阶段,我感受最直观的就是因子的“拥挤度”成为排名第一的风险因子。 我们当时跟踪的一个量化因子——低波因子,很多同行都在做。当我们的仓位浮盈很高,大家开始都在同一时间卖出高波股票、买入低波股票时,整个市场微观结构其实是失效的。你的每次卖出,都可能引发更大的卖出潮,你的每次买入,都可能引发更快速的拉升。我们当时被迫做了一个艰难的决定:主动降低换手率,把一些短期信号相关的因子权重砍掉,增加另类数据因子(如供应链数据、舆情因子)的权重,从中挖掘不对称信息。这个过程非常痛苦,因为前三个月我们的超额收益明显走平。但熬过那段时间,当模型适应后,我们的规模从20亿降到14亿再进行扩容,流动性可控,超额收益又开始回升了。

总结成一条:如果你做多因子策略,你要想清楚一个问题——我赚的钱里面,有多少是来自于我比别人跑得快,有多少是来自于我挖掘到了别人没看到的信息?如果是前者,你必须要持续关注自己的规模天花板,因为总有一天,大家的交易速度会趋同,你所能依赖的“速度优势”会消失。做私募,不要太贪心,不是多大都能消化的。我们黑子私募在募资时,产品的最大规模上限都是经过极端压力测试的,超过上限我们会主动控制甚至暂停申购,这也是对客户负责任的表现。市场规模这东西,就像飞镖,扔得太猛,指不定砸到自己的脚。

多因子模型中的另类数据冲击

现在做多因子的人,越来越开始重视“另类数据”的接入和清洁。这不是什么新概念,但我想说的是,另类数据在带来更丰富信号的也给换手率和冲击成本带来了新的挑战。比如,你们用卫星图像监测的港口集装箱数量,或者用爬虫获取的电商平台评论数据,这些数据的频率、质量差异巨大。有些数据是每天更新,有些是每周更新,还有些可能是突发性的舆情事件。你怎么把这些高频率的外力数据,合理地融入到你的传统金融高频因子中?

我很欣赏我们公司一个90后研究员的做法。他在做模型时,会将另类数据作为一种“事件驱动”信号,而不是一个持续的调仓信号。什么意思呢?比如电商评论数据发出某个品牌热度上升的信号,他只会在信号出现的当天或次日进行“微调”,而不是让这个信号参与每日的因子打分和排序。这样做的好处是:不会因为外部的短时噪声导致换手率剧烈波动,从而避免了冲击成本的次生灾害。这种“剂量控制”思维,是我们对付另类数据狂轰滥炸的利器。换句话讲,数据并不是越多越好,你的模型也不是越快越好。在数据与执行之间,一定要有一个“隔热层”,防止因为一个虚假信号或者低质量数据,导致你的基金经理在凌晨3点看见开盘前异常的调仓指令。

处理另类数据还有一点行政上的麻烦。很多非传统数据源,比如爬取网络公开数据、购买第三方消费标签数据,这些数据的使用权、数据源的合法性,在合规层面需要非常小心。前几年圈内有个很著名的案例,某公司因为使用了未经授权的付费数据源,最后被数据公司起诉,导致产品被暂停交易。为了避免类似问题,我们专门设立了“数据合规白名单”,所有研究所使用的另类数据,必须由公司合规部门进行经济实质法和数据来源的审核。这就带来了一个两难:你想快,但合规不能快。作为管理者,你只能把二者分开,给合规部门留够审查时间。但从长远来看,这反而是保障策略生命力的根本。

波动率:冲击成本的放大器

最后我特别想强调市场环境,尤其是市场波动率对冲击成本的影响。你如果在日常平静如镜的池子里游泳跟你在狂风暴雨的海里游泳,感受是完全不一样的。市场波动率越高,冲击成本的弹性就越大。在高波动率环境下,同样的单子,你面临的价格不确定性可能是低波动时的数倍。 我记得2022年4月那波剧烈调整,我们一只产品的冲击成本模型预测的滑点,比实际发生的时候还要低30%多,因为那段时间市场的报价深度太浅了。你要买100万市值的股票,可能挂单一出来,价格瞬间跳了0.8%甚至更高。

在我们的交易系统里,波动率是一个核心的“风险权重”变量。当市场VIX(恐慌指数)或者我们自定义的“A股波动率指数”飙升到某个阈值时,系统会自动触发“谨慎模式”。在谨慎模式下,我们的算法交易会显著降低执行速度,并且将竞价容忍度收紧,宁可多等一会儿也不愿意追高。多因子模型判断会倾向于“推迟执行”或“降低头寸”。换句话说,就是我们会把仓位稍微降一降,或者干脆不做短期调仓,等风暴过去再说。很多量化经理觉得这样做会错过行情,但从业经验告诉我,在高波动市况下,保住本金和避免回撤比吃到一点点收益更重要。 交易是一个长期的马拉松,而不是百米冲刺。

所以我现在带团队,最看重的不是夏普有多高,而是“波动率调整后的交易绩效”。我们每年都会做年度复盘,把过去一年中波动率最高的20%交易日单独拎出来,看我们的算法是否都产生了本应有的保护效果。只有这些极端日子的回测过关了,我才放心把这模型推向市场。很多新进员工觉得我过于保守,但他们不知道的是,我经历过太多因为忽视波动率而导致的超额回撤。教训太深了,代价太大了。

黑子私募基金管理公司观点

在多因子策略的实战中,“快”与“贵”的博弈没有绝对的终点,只有动态的平衡。黑子私募认为,任何策略最终都要服从于“净alpha”的创造。换手率设计必须有数学上的“成本感知”,而非纯粹的业务冲动。我们强烈建议各位同行,在策略开发时就应将冲击成本作为一个独立模块进行建模,并引入“流动性偏好”作为因子。不要试图在所有人都拥挤的高速公路上跟车,要学会在更安静的乡间小路上,开自己的车。合规永远不能被技术超越。在未来,随着市场的机构化程度加深,降低换手、深挖低频确定性信号,或许才是众多管理人求索的正途。黑子私募愿与各位一道,保持敬畏,算清细账,稳健跑完全场。