MCM520 ← 资料站首页 美赛 2022 C 优秀范文一:交易策略的建模与回测 打开交互阅读器 →

美赛 2022 C 优秀范文一:交易策略的建模与回测

一、问题重述

市场交易者频繁买卖波动性资产以最大化总回报,但每笔交易都要支付佣金。2022 年美赛 C 题给出两种资产——黄金(Gold)与比特币(Bitcoin),要求我们为交易员开发一套仅依据截至当日历史价格的每日交易决策模型,并回答四个问题:①用该策略在 2021-09-10 把 2016-09-11 起家的 1000 美元变成多少;②提供证据说明策略"最优";③分析对交易成本(佣金)的敏感度;④给交易员写一份备忘录。

初始组合为 [现金 C, 黄金 G, 比特币 B] = [1000, 0, 0];黄金佣金 α=1%、比特币 α=2%;持有无成本;比特币每日可交易,黄金仅开市日可交易。本题的难点在于:历史价格高度随机、含剧烈牛熊转换,而决策不能用任何未来信息——这本质上是一个"在线(online)、无未来函数"的组合再平衡问题。

二、假设与符号说明

为保持模型的可解性与合理性,作如下假设:

H1:{假设1}——理由:{理由1}
H2:{假设2}——理由:{理由2}
H3:{假设3}——理由:{理由3}

主要符号说明如表1所示:

符号 含义 单位
x1x_1 {符号1} {单位1}
x2x_2 {符号2} {单位2}
x3x_3 {符号3} {单位3}
θ\theta {参数} —

表1 主要符号说明

二、建模思路与总体框架

我们放弃对价格"预测点位"的执念(短期价格近似随机游走,点位预测不可靠),转而做趋势跟随(trend following):在强趋势中持有高收益资产,在趋势反转时撤离以规避崩盘。核心直觉是——比特币五年涨了约 50 倍,但其间有回撤高达 60% 的崩盘;只要能在崩盘前离场、复苏后返场,就能在控制风险的同时捕获绝大部分上行。

下图给出整个决策系统的数据流:从 1000 美元出发,组合在现金/黄金/比特币三者间每日做买、持、卖决策,每笔交易扣除对应佣金,最终得到期末价值。

刻画了"历史价格 → 每日决策 → 扣佣金 → 期末价值"的闭环。值得注意的是,**决策的信息集被严格限定在"截至当日"**,这是本题不可逾越的约束,也是后文所有模型必须满足的"无未来函数"铁律。

图 1 刻画了"历史价格 → 每日决策 → 扣佣金 → 期末价值"的闭环。值得注意的是,决策的信息集被严格限定在"截至当日",这是本题不可逾越的约束,也是后文所有模型必须满足的"无未来函数"铁律。

三、数据生成与预处理

为教学与复现,我们用 SEED=2024 的确定性伪随机过程合成五年日频价格(非官方原题数据,但结构与 LBMA/BCHAIN 一致)。黄金走温和慢牛,比特币走"牛市—崩盘—复苏"三段 regime,以承载真实的市场结构。

显示:比特币从 611.6 美元涨到 30001.1 美元(约 49 倍),黄金从 1329.4 涨到 1896.9 美元(约 1.43 倍)。两者风险量级悬殊——比特币的暴涨与潜在崩盘,正是策略设计的主战场。

图 2 显示:比特币从 611.6 美元涨到 30001.1 美元(约 49 倍),黄金从 1329.4 涨到 1896.9 美元(约 1.43 倍)。两者风险量级悬殊——比特币的暴涨与潜在崩盘,正是策略设计的主战场。

四、策略模型:以 MA60 为分水岭的趋势状态机

我们定义比特币的 60 日移动均线 MA60 作为趋势判据,并引入**±4% 滞回带(hysteresis band)**以消除小幅抖动导致的频繁调仓:

  • 当价格 > MA60 时,判定为上行趋势,持有/买入比特币;
  • 当价格 < (1−4%)·MA60 时,判定为下行确认,转入黄金(开市日可交易)规避崩盘;
  • 仅在状态翻转时才调仓(卖旧买新并扣佣金),黄金非开市日维持原持仓。

是策略的状态机:它以 MA60 为分水岭,用滞回带过滤噪声,把"每天都要决策"的高频问题降维成"仅在趋势确认反转时才行动"的低频问题。滞回带是关键创新——没有它,价格在 MA60 附近反复穿越会产生大量无意义调仓,被 2% 佣金迅速吞噬收益。

图 3 是策略的状态机:它以 MA60 为分水岭,用滞回带过滤噪声,把"每天都要决策"的高频问题降维成"仅在趋势确认反转时才行动"的低频问题。滞回带是关键创新——没有它,价格在 MA60 附近反复穿越会产生大量无意义调仓,被 2% 佣金迅速吞噬收益。

下图以合成价格叠加 MA60 与滞回带,直观展示"带内不动、带外翻转"的机制。

是策略的状态机:它以 MA60 为分水岭,用滞回带过滤噪声,把"每天都要决策"的高频问题降维成"仅在趋势确认反转时才行动"的低频问题。滞回带是关键创新——没有它,价格在 MA60 附近反复穿越会产生大量无意义调仓,被 2% 佣金迅速吞噬收益。

图 4 中绿色阴影即 ±4% 滞回区:只要价格落在带内,策略维持现状;只有明显跌破下轨才离场,明显站上均线才返场。这种"迟钝"恰恰是抗 Wisphaw(鞭梢效应)的良药。

五、基准策略与回测设计

为论证我们策略的优劣,设立三个对手基准:

  1. 买入持有-比特币(BH-BTC):第 0 天把 1000 美元一次性换成比特币,之后永不交易;
  2. 买入持有-黄金(BH-Gold):同理只买黄金;
  3. 50/50 分散:一半买金一半买币。

回测严格遵循"无未来函数":第 t 天的决策只用 t 天及之前的数据;佣金在每次买入/卖出时按交易额扣除;黄金在非开市日用前一交易日价格估值。最终组合价值序列即回测曲线。

给出三条曲线:趋势策略(绿)全程贴近甚至超越买入持有比特币(紫),且在 2018 年前后那段剧烈回撤中明显更平——它成功"躲"过了崩盘。黄金曲线(橙)因涨幅有限而早早掉队,印证了"只买黄金无法捕获 crypto 红利"。

图 5 给出三条曲线:趋势策略(绿)全程贴近甚至超越买入持有比特币(紫),且在 2018 年前后那段剧烈回撤中明显更平——它成功"躲"过了崩盘。黄金曲线(橙)因涨幅有限而早早掉队,印证了"只买黄金无法捕获 crypto 红利"。

六、回测结果

期末价值是最直接的判据。

显示:趋势策略终值 **51555.56 美元**,高于买入持有比特币的 **48069.50 美元**(超出约 7.3%),更远高于买入持有黄金的 1412.55 美元。也就是说,我们的策略不仅控制了风险,连绝对收益也赢了"无脑持币"。

图 6 显示:趋势策略终值 51555.56 美元,高于买入持有比特币的 48069.50 美元(超出约 7.3%),更远高于买入持有黄金的 1412.55 美元。也就是说,我们的策略不仅控制了风险,连绝对收益也赢了"无脑持币"。

但绝对收益之外,风险才是交易者真正在乎的。最大回撤衡量"从峰值到谷底最多亏多少"——它决定了交易者会不会在黎明前被强制平仓或心态崩盘。

显示:趋势策略终值 **51555.56 美元**,高于买入持有比特币的 **48069.50 美元**(超出约 7.3%),更远高于买入持有黄金的 1412.55 美元。也就是说,我们的策略不仅控制了风险,连绝对收益也赢了"无脑持币"。

图 7 给出决定性对比:趋势策略最大回撤仅 17.55%,而买入持有比特币高达 61.97%。这意味着持币者在 2018 年一度浮亏六成,而我们的策略把最深伤口压到不到两成。对真实交易员而言,这种"睡得着觉"的差异,价值远超几个百分点的终值差距。

下表汇总全部回测指标。

给出决定性对比:趋势策略最大回撤仅 **17.55%**,而买入持有比特币高达 **61.97%**。这意味着持币者在 2018 年一度浮亏六成,而我们的策略把最深伤口压到不到两成。对真实交易员而言,这种"睡得着觉"的差异,价值远超几个百分点的终值差距。

图 8 一览:趋势策略在终值(51555.56)、夏普(2.829)、最大回撤(17.55%)、调仓次数(11)四项上全面占优或持平。调仓仅 11 次,说明策略"该动才动",佣金侵蚀极小。至此我们已经正面回答了赛题第①问——1000 美元在 2021-09-10 变为约 51555.56 美元。

七、为什么是 MA60 与 4% 带

移动均线长度 60 天,对应约一个季度的市场记忆:太短(如 20 天)会被噪声主导,太长(如 200 天)则对反转反应迟钝。4% 滞回带是经验与稳健性的折中——带太窄仍会频繁翻转,带太宽则离场太晚、回撤加深。我们做了参数扫描(见范文三图 6),策略终值对 band 在 2%–8% 区间均稳定在 5 万美金量级,证明结论不依赖某个"刚好"的参数,这本身也是模型稳健性的证据。

八、模型评价

优点:①严格无未来函数,可实盘化;②低频调仓,佣金友好;③三维(收益/风险/换手)全面占优;④参数稳健。局限:①依赖趋势存在的市场结构,若进入长期横盘震荡,趋势策略会小幅跑输买入持有;②合成数据的 regime 是显式设定的,真实数据需用滚动窗口自适应估计趋势强度(可引入 ADX 类指标作为增强)。这些都不影响本题结论,却指明了进一步工作的方向。

九、与算法手册的衔接

本范式对应方法选型册中的"趋势跟随 vs 均值回复"决策树,以及算法册中"移动均线穿越""夏普比率""最大回撤"等条目;其反例(无滞回带导致 Wisphaw)正是建模避坑册中"过度交易被成本吞噬"的典型。三册联动,构成一套可迁移的量化交易建模方法论。

十、小结

我们用"MA60 + 滞回带趋势状态机"把一道开放的交易策略题,落成可回测、可论证、可复现的确定模型:终值 51555.56 美元、夏普 2.829、最大回撤 17.55%、仅 11 次调仓。它同时回答了赛题第①问(变成多少)并为第②问(为何最优)埋下伏笔——下一范文明示"最优"的量化证据。

十一、现实映射与可迁移性

需要指出的是,本文的合成数据采用显式 regime 设定,使得"牛—崩—复"三段结构清晰可辨;真实数据的趋势与崩盘边界更为模糊,这正是真实建模中要用滚动窗口与自适应阈值去逼近的部分。教学上,先吃透清晰结构、再迈向模糊现实,是更稳妥的认知阶梯。

这套"MA60 + 滞回带"框架并非凭空发明,而是业界趋势跟随策略的教学化缩影。真实的 CTA(商品交易顾问)基金常用更长的均线(如 100–200 日)与多品种分散,但"用均线判趋势、用滞回带抑制噪声、低频调仓控成本"的三段式逻辑完全一致。也正因如此,本文结论具有跨资产的迁移能力:把比特币换成任一高波动趋势资产,框架几乎不改即可复用。

另一个常被忽视的现实点是回测的诚实性。许多"漂亮策略"在回测中赚钱,是因为偷偷用了未来信息(如用全天收盘价下单却假设盘中已知)。我们严格把决策信息集限定在"截至当日收盘",并且黄金在非开市日用上一交易日价格估值,正是为了堵住这类漏洞。赛题明确禁止未来函数,而诚实的回测才是模型可信的前提——这也是为何我们的终值(51555.56)虽然不及某些"神仙策略"动辄上百万,却经得起复现与质疑。

最后要强调,趋势策略的有效性依赖于一个前提:市场存在可被捕获的趋势。在五年长牛的crypto市场里这一前提成立,但若进入长期横盘震荡,策略会小幅跑输买入持有。这不是缺陷,而是任何趋势方法的固有边界;认识到边界,才能在它失效时及时止损,而非盲目加仓。

附录:核心 Python 实现

以下代码独立运行即可复现本文全部权威数字(须位于 tools/ 目录):

import gen_mcm2022c as G

D = G.gen_mcm2022c()   # 确定性 SEED=2024(须位于 tools/ 目录运行)
print("BTC  起->末: %.1f -> %.1f" % (D["btc0"], D["btc_end"]))
print("GOLD 起->末: %.1f -> %.1f" % (D["gold0"], D["gold_end"]))
print("BH-BTC  终值=%.2f 夏普=%.3f 回撤=%.2f%%" %
      (D["bh_btc_final"], D["bh_btc_sharpe"], D["bh_btc_mdd"]))
print("BH-GOLD 终值=%.2f 夏普=%.3f 回撤=%.2f%%" %
      (D["bh_gold_final"], D["bh_gold_sharpe"], D["bh_gold_mdd"]))
print("策略    终值=%.2f 调仓=%d 夏普=%.3f 回撤=%.2f%%" %
      (D["strat_final"], D["strat_switches"], D["strat_sharpe"], D["strat_mdd"]))
# 期望:策略 51555.56 / BH-BTC 48069.50 / BH-Gold 1412.55 / 夏普 2.829>2.538 / 回撤 17.55<61.97

运行上述代码(依赖 tools/gen_mcm2022c.py,零外部库)即可复现正文全部权威数字,验证四路一致。

图1 图11
图2 图22
图3 图33
图4 图44
图5 图55
图6 图66
图7 图77
图8 图88

参考文献

[1] COMAP. 2022 MCM Problem C: Trading Strategies.
[2] 本站确定性真源 tools/gen_mcm2022c.py(SEED=2024).
[3] 范文二、范文三:风险-收益证据与佣金敏感度.

三、模型建立

基于上述假设,本文构建{模型类型}模型。该模型的核心思想是{核心理念}。

3.1 {子模型1}

{子模型1的描述},其数学表达为:

f(x)=∑i=1nwi⋅xi+bf(x) = \sum_{i=1}^{n} w_i \cdot x_i + b

其中,{参数说明}。

3.2 {子模型2}

针对{子问题},引入{方法},得到:

g(y)=∫abh(t)dtg(y) = \int_{a}^{b} h(t) dt

该式表明{物理解释}。

四、模型求解

采用{算法名称}进行数值求解。算法流程如下:

  1. 初始化:设置参数{参数值}
  2. 迭代求解:按公式{公式}更新变量
  3. 收敛判断:当∣f(xk+1)−f(xk)∣<ϵ|f(x_{k+1}) - f(x_k)| < \epsilon时停止

求解结果如表2所示:

指标 数值 说明
指标1 0.85 {解释}
指标2 0.92 {解释}
指标3 0.78 {解释}

表2 求解结果汇总表

五、结果分析与讨论

5.1 {分析主题1}

从求解结果可以看出,{分析内容}。如图X所示,{图表解读}。

这表明{结论}。与{对比项}相比,本模型的优势在于{优势}。

5.2 灵敏度分析

为检验模型的稳健性,对关键参数进行扰动分析:

参数 变化范围 结果变化 敏感程度
α\alpha ±10% ±5.2% 中等
β\beta ±20% ±8.7% 较高
γ\gamma ±15% ±3.1% 较低

表3 灵敏度分析结果

结果显示,参数β\beta对结果影响最大,建议在后续研究中重点标定。

六、结论

本文针对{问题}建立了{模型类型}模型,主要结论如下:

  1. 模型有效性:所提模型在{场景}下表现良好,各项指标达到预期
  2. 关键发现:参数{关键参数}对结果影响最为显著
  3. 应用价值:研究结果为{应用领域}提供了决策支持

未来工作可沿以下方向展开:(1)拓展模型至{扩展场景};(2)引入{新数据}进行验证;(3)探索与{其他方法}的结合。