2. CTA策略基础
CTA(Commodity Trading Advisor,商品交易顾问)基金是管理期货策略的典型载体。它最初受美国《商品交易法》监管,为投资者提供商品期货、金融期货与场外衍生品的受托管理服务。发展到今天,CTA早已不局限于“商品”,而是覆盖股指、国债、外汇、能源、金属、农产品等多元资产,成为与股票、债券相关性较低的一类绝对收益策略。理解CTA,是进入时间序列动量策略开发的第一道门槛。
一、CTA基金概述:它赚的是什么钱
CTA基金的核心收益来源可以拆成三块:趋势/动量收益、期限结构与展期收益、波动率与风险溢价收益。其中趋势跟踪是CTA最经典、占比最大的收益引擎。CTA通常采用多品种、多周期、多策略的组合方式,通过分散化降低单品种回撤,并用杠杆放大低波动品种的收益贡献。
从产品形态看,CTA基金常见以下几类:
- 公募/私募管理期货产品:面向合格投资者,策略透明度和杠杆约束因监管而异。
- FOF/MOM配置:通过配置多个CTA子策略分散管理人风险。
- 海外Managed Futures基金:如AHL、Winton等,规模大、品种全、周期长。
CTA的业绩特征通常表现为:与股债低相关、危机Alpha属性、收益偏右尾、回撤周期较长。这些特征决定了CTA在资产配置中更多扮演“分散器”而非“收益发动机”。
二、策略分类:从信号来源到持仓周期
CTA策略的分类维度很多,最实用的是按信号来源和持仓周期两个维度切分。按信号来源,可分为趋势跟踪、均值回归、套利、基本面量化;按持仓周期,可分为高频、日内、短周期(1-5天)、中周期(1-4周)、长周期(1-6个月)。
| 分类维度 | 类型 | 典型信号 | 持仓周期 | 代表策略 |
|---|---|---|---|---|
| 信号来源 | 趋势跟踪 | 价格突破、均线交叉 | 中长周期 | 时间序列动量 |
| 均值回归 | 价差偏离、布林带 | 短周期 | 配对交易 | |
| 套利 | 跨期、跨品种价差 | 日内至数日 | 期现套利 | |
| 基本面量化 | 库存、基差、宏观 | 中长周期 | 展期收益策略 | |
| 持仓周期 | 短周期 | 1-5天 | 高频换手 | 日内动量 |
| 中周期 | 1-4周 | 中等换手 | 周度突破 | |
| 长周期 | 1-6个月 | 低换手 | 月度动量 |
三、时间序列动量与截面动量的区别与联系
这是本节最核心的概念。两者都叫“动量”,但比较的基准不同。
时间序列动量(Time-Series Momentum, TSMOM):对单个品种自身的历史收益率做判断。例如,过去60个交易日收益为正则做多,为负则做空。它回答的问题是:“这个品种自己,过去涨了还是跌了?”
截面动量(Cross-Sectional Momentum, XSMOM):在同一时点,把所有品种按历史收益率排序,做多排名靠前的、做空排名靠后的。它回答的问题是:“在所有品种里,谁比谁更强?”
两者的联系在于:都基于“过去收益可预测未来收益”的动量假设,都可用相同的回看窗口和波动率调整方法。区别在于组合构建逻辑:TSMOM是“绝对方向”判断,XSMOM是“相对排序”判断。TSMOM天然带有市场方向暴露,XSMOM则更接近市场中性。
四、案例与误区复盘
假设我们有一个包含20个商品期货品种的池子,回看窗口60日,持有期20日。用TSMOM,每个品种独立判断方向,最终可能持有15个多头、5个空头,组合净暴露较大。用XSMOM,做多前5名、做空后5名,组合净暴露接近零。2020年3月全球市场暴跌时,TSMOM因多数品种转空而大幅盈利,XSMOM则因多空对冲,收益相对温和。
常见误区有三个:
- 把动量等同于趋势跟踪:动量是信号,趋势跟踪是策略框架,两者不能划等号。
- 忽略波动率调整:不同品种波动差异巨大,未做波动率归一化会导致高波动品种主导组合。
- 回看窗口过拟合:在历史数据上反复调参,容易把噪声当成信号。
# 时间序列动量信号示例(伪代码)
for symbol in universe:
ret = close[symbol].pct_change(lookback)
vol = close[symbol].pct_change().rolling(lookback).std()
signal = sign(ret) * (target_vol / vol)
position[symbol] = signal
# 截面动量信号示例(伪代码)
ret_all = {s: close[s].pct_change(lookback) for s in universe}
ranked = sorted(ret_all, key=ret_all.get)
longs = ranked[-5:]
shorts = ranked[:5]
position = {s: +1 for s in longs}
position.update({s: -1 for s in shorts})
掌握TSMOM与XSMOM的区别与联系,是后续开发时间序列动量CTA策略的逻辑起点。只有先明确“和谁比、比什么、怎么下注”,才能进入参数设计、组合优化与风险管理的实战环节。