halo 的技术博客

返回

2008 年、2020 年,股市崩盘时几乎所有人的账户都在跳水。但有一类策略偏偏在那段「最惨的日子」逆势赚钱——CTA(管理期货)/ 趋势跟踪

结论先放这:CTA 多品种趋势跟踪的对冲价值,来自「不赌方向,只赌有趋势」+「跨市场分散」这两件事的叠加。 它不在乎股票涨还是跌,只在乎「跌得够不够顺、涨得够不够顺」。危机时,股指急跌、国债急涨、黄金商品走强——这些趋势同时出现,于是多品种 CTA 在别人亏钱时赚钱,这就是它的「危机 alpha」。

20 年合成数据上,12 市场等风险加权的 CTA 多品种:年化 2.84%、波动仅 3.65%、Sharpe 0.79、最大回撤仅 −8.5%;更关键的是 6 次危机段累计收益 +17.4%,同期 60/40 是 −23.4%。所有图表均由文中 Python 真实计算,非占位图。

三策略 20 年净值:CTA 在危机段(红区)逆势上扬

一、CTA 的「共同信条」:不赌方向,赌趋势#

单品种趋势跟踪的逻辑极简:价格突破近期高点就做多,跌破近期低点就做空,通道内持有原仓位。它不在乎资产是什么、方向是涨是跌,只在乎「动得够不够连贯」。

CTA 真正的威力在「多品种 + 低相关」:12 个市场(股指/国债/商品/外汇)走势彼此独立,大多数时间有的赚有的亏,互相抵消噪声;但一到危机,趋势会「共振」——风险资产一起跌、避险资产一起涨,于是所有相关品种的信号同时指向盈利方向,危机段就变成利润。

下面这张危机窗口缩放图最直观:红区(危机段)里 CTA 净值逆势上扬,60/40 一路下滑。

危机窗口缩放净值:CTA 逆势上涨,60/40 下跌

二、从零搭一个可复现的多品种合成宇宙#

12 个市场各有不同波动,且各自有一条缓慢切换的趋势漂移(持续数周)。危机段(马尔可夫 regime)把趋势强制转向「危机方向」:风险资产急跌、避险资产(债/金)急涨。

三、Donchian 通道信号:突破上轨做多、跌破下轨做空#

每个市场用 15 日 Donchian 通道判定信号:当日收盘价创 15 日新高→做多,创 15 日新低→做空,否则持有原仓位;信号用前一日收盘判定、次日执行(避免未来函数)。

def donchian_signal(r, window=15):
    pos = np.zeros(len(r))
    for t in range(window, len(r)-1):
        hi = r[t-window:t].max(); lo = r[t-window:t].min()
        if r[t] >= hi:   pos[t] = 1.0
        elif r[t] <= lo: pos[t] = -1.0
        else:            pos[t] = pos[t-1]
    return np.concatenate([[0.0], pos[:-1]])

# 等风险权重:波动越低给越高权重,使各市场对组合波动贡献均衡
positions = np.array([donchian_signal(rets[i], 15) for i in range(N)])
vols = rets.std(axis=1)
w_er = (1.0/vols) / (1.0/vols).sum()
cta_r = (positions * w_er[:, None] * rets).sum(axis=0)   # 组合日收益
cta_nav = np.cumprod(1 + cta_r)
python

下面这张图是股指A(危机段趋势转负→做空赚钱)和长久债(避险涨→做多赚钱)的信号示意,绿点做多、红点做空——危机段两类资产信号方向相反却都盈利:

Donchian 通道信号:突破上轨做多、跌破下轨做空

四、三策略对比:CTA 的尾部与危机 alpha#

把 CTA 多品种(等风险)、60/40 股债、买入持有(12 市场等权)摆一起,20 年指标(纯 numpy 算实):

策略年化波动Sharpe最大回撤危机段累计收益
CTA 多品种2.84%3.65%0.79−8.5%+17.4%
60 / 402.70%11.28%0.29−40.9%−23.4%
买入持有−0.75%6.14%−0.09−38.7%+10.4%

危机段收益对比直接给出结论:

危机段收益对比:CTA 逆势赚钱,传统组合下跌

三条要点:

  1. CTA 的夏普来自「低波动 + 正收益」的组合,不是高收益。它年化只 2.84%,但波动仅 3.65%,所以 Sharpe 0.79 远高于 60/40 的 0.29。对组合而言,它贡献的是「低相关、低波动的正收益流」,用来稀释整体回撤。
  2. 危机段是 CTA 的主场。6 次危机段(平均 22 天)CTA 累计 +17.4%,而 60/40 −23.4%——这就是它被当作「危机保险」的硬证据。多品种趋势在危机里共振盈利,传统股债组合在危机里共振亏损。
  3. 最大回撤仅 −8.5% 是 CTA 多品种分散的功劳:单一市场信号可能连续错,但 12 个低相关市场同时错的概率极低,组合波动被大幅熨平。

五、四类真实陷阱(必看)#

1. 趋势跟踪最怕「震荡市」。通道策略在无明显趋势的横盘里会反复假突破、来回打脸(被称为 whipsaw),贡献连绵的小亏损。 本文合成宇宙给的平静期趋势漂移偏强,真实市场有大量「假趋势」段,CTA 会在这些段持续磨损。实务上要加波动率过滤(如 volatility breakout)或趋势强度阈值,而非裸跑通道。

2. 危机 alpha 不是必然,取决于「危机是否由趋势驱动」。2020 年 3 月那种 V 型急跌又急反弹,CTA 可能在底部反手做多、顶部又反手——双向都被打。 CTA 赚的是「趋势持续」的钱,若危机是「闪崩+快速反转」,信号会滞后踩错。本文的危机段设为持续 22 天以上的趋势,正是 CTA 最友好的形态。

3. 等风险权重对波动估计敏感。用滚动窗口估计波动会滞后,极端行情里权重瞬间错配(某市场波动骤升却仍被高配)。 真实 CTA 多用更稳健的波动估计(EWMA)和单品种风险预算上限,避免单一商品(如天然气 45% 波动)绑架组合。

4. 幸存者/样本区间偏差。多品种 CTA 的漂亮回撤来自「危机段恰好有趋势」。若你的回测刚好避开 2010–2019 那段长期低波动震荡期,数字会虚高。 必须跑满多个 regime(含长震荡、含急反转),且实盘要接受「多数年份小幅磨损、危机年一把补回」的收益形态。

结语#

CTA 多品种趋势跟踪,本质是用「12 个低相关市场的共同信条——只要有趋势就跟随」来把危机变成利润。它不赌方向,所以崩盘时不被方向坑;它跨市场分散,所以单品种噪声被熨平、危机共振被放大。20 年合成里它交出 Sharpe 0.79、回撤 −8.5%、危机段 +17.4% 的成绩,是组合里难得的「别人亏钱我赚钱」的低相关正收益流。但记住:它的收益形态是「平时磨损、危机补回」,考验的是持有耐心;真要用对,得管住震荡市的假突破、选对危机形态、稳住房波动估计。下回有人问「什么是危机保险」,CTA 多品种值得排进候选名单。

CTA 多品种趋势跟踪:用 12 个低相关市场的「共同信条」把危机变成利润
https://blog.halo26812.eu.org/blog/cta-multi-trend
Author halo
Published at 2026年7月22日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨