跳到主要内容

用回测检验想法:一次 SOXL 策略探索记录

引言:一个真实的投资困境

前置阅读与风险警告

本文涉及3倍杠杆ETF的交易策略。如果你对杠杆ETF的特性(波动损耗、极端回撤、情绪考验)还不熟悉,强烈建议先阅读《杠杆ETF波动率控制案例:用信号确认驯服市场野兽》

杠杆ETF不适合新手。本文主角小策是一位有多年交易经验的投资者,他使用卫星仓位策略来管理高波动品种——即只用总资产的一小部分(如10-20%)来交易SOXL,核心仓位仍然是低波动的指数基金。请勿在没有完整风险管理体系的情况下模仿本文策略。

SMH与SOXL:母鸡与金蛋的关系

在开始之前,先理解两个核心标的的关系:

标的全称特性
SMHVanEck Semiconductor ETF1倍半导体ETF,追踪半导体行业,波动相对温和
SOXLDirexion Daily Semiconductor Bull 3X3倍杠杆半导体ETF,追踪SMH的3倍日收益

SOXL的价格走势由SMH驱动,但由于3倍杠杆的特性,SOXL的波动被极度放大。在驯服猛兽一文中我们学到:直接对杠杆ETF做技术分析是危险的,因为杠杆产品的价格充满噪音。正确的做法是:用非杠杆ETF(SMH)生成交易信号,执行于杠杆ETF(SOXL)

这就是本文所有策略的核心设计原则。


小策的困境

这是一个真实的投资故事,主角叫小策。

小策持有嘉信账户中的SOXL,从去年的$7涨到了$61。上一波高点是$70然后一路跌到$7,现在又快接近前高了。更特殊的是,经过多轮操作,这些持仓的成本已经是负数——账面浮盈巨大。

困境来了:

"我是不是该设置一个自动止盈的点了?等它到$65卖出?或者回落$60卖出?还是看SMH的均线支撑?"

"之前$28就是止损出去的,后悔死了。现在又不知道该怎么办。"

这是高波动资产持有者常见的两难:价格变化会不断改变人的感受,而没有预先写下的规则,判断很容易随行情摆动。

本文记录的,是如何借助 AI 整理假设、再用策引回测逐一验证:经历三次假设、三次验证、三次推翻,最终留下一个更值得继续观察的规则方案。

这个过程说明了一个重要原则:直觉可能是错的,逻辑可能是虚的,回测数据至少提供了一个可量化的参照——尽管回测本身也受口径、过拟合、幸存者偏差等因素影响,不等于未来实盘结果。


第一幕:最初的尝试

两个简单的想法

与AI(Gemini)对话后,小策提出了两个最朴素的想法:

  1. 用MA20均线:SMH(半导体ETF)上穿MA20就买SOXL,下穿就卖
  2. 用MA200均线过滤:在MA200确认牛市的前提下,再看MA20信号

AI给出了专业的分析框架,但同时也诚实地说,这些只是逻辑推演,需要数据验证。

策引登场:第一次回测

小策决定用策引来验证这些想法。

第一版配置使用了传统的均线交叉(CrossAbove/CrossBelow)信号:

策略买入条件卖出条件
策略一SMH CrossAbove MA20SMH CrossBelow MA20
策略二策略一 + SMH > MA200策略一

回测结果(2018-2026,约8年)

指标策略一策略二
总收益+80%+40%
CAGR7.57%4.28%
最大回撤-79.24%-71.93%
交易次数125104

第一次打脸:

  • 策略二(MA200过滤)的收益反而更低
  • 原因:需要同时满足 SMH > MA200 且 CrossAbove(MA20),错过了很多入场时机
  • 2025年:策略一赚+45%,策略二反而亏-16%

原先预期策略二能够避开熊市,但在该样本期回测口径下,它同时错过了相当一部分牛市行情。


第二幕:状态信号的觉醒

发现关键问题

仔细分析回测结果后,小策发现了问题所在:

"CrossAbove是瞬时事件——如果策略开始运行时,SMH已经在均线上方,这个条件永远不会触发。"

这就是状态(State)和事件(Event)的本质区别:

  • 事件:价格穿过均线的那一瞬间
  • 状态:价格在均线上方的持续状态

策引的原语优势

策引的 RelativeStrengthTransformer 可以用来表达这种状态判断:

RS = Price / MA × 100
  • RS > 100:价格在均线上方(持续状态)
  • RS > 101:价格有效站稳均线上方1%(带缓冲带)
  • RS < 99:价格有效跌破均线下方1%

关键优化:

  1. 用状态替代事件:RS > 101而非CrossAbove
  2. 增加缓冲带:避免在均线附近频繁切换
  3. Lag确认机制:连续2天满足条件才触发卖出

第二次回测:惊人的逆转

重新配置后的策略二(MA200 + 状态信号 + Lag确认):

指标旧策略二新策略二
总收益+40%+747%
CAGR4.28%30.39%
最大回撤-71.93%-69.62%
交易次数10414

9倍的收益提升。

关键发现:

  • 交易次数从104次降到14次
  • 持仓时间从887天增加到3555天
  • 在本文样本中,减少反复进出明显改善了策略表现

这组结果说明:在本文样本里,频繁离场造成的损耗比预想中更大。但接近 70% 的最大回撤也提醒我们,高收益并没有消除杠杆产品的极端风险。


第三幕:非对称策略的诱惑与破灭

聪明的想法

看到策略二的结果后,小策和 AI 又讨论了一个更复杂的方案:既然 MA200 进场较慢、MA20 出场较快,能不能把两者结合起来?

非对称策略(Hybrid)的设计:

  • 买入:RS_MA200 > 101 AND RS_MA20 > 100(大趋势+短期强势)
  • 卖出:RS_MA20 < 99(趋势转弱即跑)

从设计意图看,它试图结合两种策略的优点:

  • MA200保证只在牛市进场
  • MA20保证一旦趋势转弱就快速离场

调整前的假设是:它或许能兼顾策略二的熊市过滤能力和策略一的回撤控制。

第三次回测:现实的毒打

回测结果

指标策略二(MA200)策略三(Hybrid)
总收益+747%+131%
CAGR30.39%10.93%
最大回撤-69.62%-75.25%
交易次数1479

结果与预期相反:这组看似更周全的规则,反而是几组候选方案中表现最差的。

死因分析:

在大牛市中(如2020-2021或2023),价格经常出现3%-5%的急跌回踩,瞬间击穿MA20,然后迅速拉回创新高。

策略三的悲剧循环:

  1. SMH回踩MA20 → 策略三吓得止损离场
  2. SMH迅速反包拉升 → 策略三此时是空仓的
  3. SMH重新站稳 → 策略三追高买回

每一次假摔都交出了筹码,然后在更高的位置接回来。对于3倍杠杆,这种低卖高买的磨损是致命的。

AI承认错误:数据无情地揭示了策略逻辑在真实市场中的边界。在3倍杠杆下,过度微操等于自杀。越花哨的逻辑死得越快,越纯粹的趋势活得越久。


第四幕:发现黄金平衡点

回撤的困扰

虽然策略二(MA200)收益最高,但小策仍有顾虑:MA200的回撤还是太大了。当熊市来临时,等跌破年线,SOXL可能已经跌了50%以上。有没有更好的平衡点?

MA50的登场

既然MA20太敏感,MA200太迟钝,那MA50会不会是刚刚好?

追加回测:

指标S2(MA200)S5(MA50)
总收益+747%+575%
CAGR30.39%26.77%
最大回撤-69.62%-65.55%
夏普比率0.6910.655
交易次数1434

关键发现:

  1. MA50的回撤最小(-65.55%),比MA200少4个百分点
  2. 收益依然优秀(26.77% CAGR)
  3. 交易次数适中(34次,平均一年4次)

最后的尝试:MA200进场 + MA50出场

既然纯粹策略胜过混合策略,那MA200进场 + MA50出场呢?

策略六(The Compromise):

  • 买入:RS_MA200 > 101 AND RS_MA50 > 100
  • 卖出:RS_MA50 < 99

回测结果:

指标S2(MA200)S5(MA50)S6(Compromise)
CAGR30.39%26.77%15.24%
最大回撤-69.62%-65.55%-72.47%
交易次数143453

再次证明:复合条件不如单一均线。


终章:六种策略的完整对比

经过四轮迭代,我们最终形成了6种策略的完整对比:

策略定义

版本策略名称买入条件卖出条件
S1The Naked TrendRS_MA20 > 100RS_MA20 < 100
S2The Filtered TrendRS_MA200 > 101RS_MA200 < 99 连续2天
S3The Hybrid V2RS_MA200>101 AND RS_MA20>100RS_MA20 < 99
S4The Dynamic同S3同S3 + 动态仓位
S5Pure MA50RS_MA50 > 101 连续2天RS_MA50 < 99
S6The CompromiseRS_MA200>101 AND RS_MA50>100RS_MA50 < 99

核心业绩指标

策略净值CAGR最大回撤Sharpe交易次数
S1 Naked Trend1.807.57%-79.24%0.371125
S2 Filtered Trend8.4730.39%-69.62%0.69114
S3 Hybrid V22.3110.93%-75.25%0.41779
S4 Dynamic10.2933.58%-80.38%0.7001*
S5 Pure MA506.7526.77%-65.55%0.65534
S6 Compromise3.1315.24%-72.47%0.46953

*S4为动态仓位策略,交易次数仅统计进出场次数。实际仓位在持有期间随RS值连续调整(30%-100%),但不触发离场交易。

⚠️ 注意:即便是表现最优的策略,最大回撤仍在-65%至-80%区间。这是杠杆ETF的结构性风险,而非策略失效。

年度收益分解

年份S1S2S3S4S5S6
2018-50%-47%-25%-31%-29%-48%
2019+135%+99%+77%+146%+76%+95%
2020+13%+69%+92%+50%+96%+140%
2021-14%+117%-6%+117%+22%+16%
2022-65%-64%-62%-65%-58%-59%
2023+133%+147%+82%+150%+119%+128%
2024-10%-12%-12%-14%-9%-32%
2025+45%+85%+9%+63%+86%+16%

关键发现:颠覆直觉的真相

发现一:复合条件是陷阱

对比S2(单一MA200)S3(MA200+MA20)S6(MA200+MA50)
CAGR30.39%10.93%15.24%
交易次数147953

增加条件不等于增加收益。在3倍杠杆下,多一个条件就多一个被洗出去的机会。

发现二:钝感力是核心竞争力

S2策略8年只交易14次,却实现747%收益。它的秘诀是:对短期噪音视而不见,只响应真正的趋势转折。

发现三:缓冲带的重要性

S3最初无缓冲带(RS>100买/RS<100卖),CAGR仅3.7%;加缓冲带(RS>101买/RS<99卖)后提升到10.9%。

±1%的缓冲带,效果提升3倍。

发现四:MA50是黄金平衡点

  • MA20太敏感:125次交易,7.57% CAGR
  • MA200太迟钝:14次交易,但回撤-70%
  • MA50刚刚好:34次交易,26.77% CAGR,最小回撤-65.55%

实战落地:从回测到行动

结合持仓现状

小策的特殊情况:

  • 持有271份SOXL,成本为负
  • 抗回撤能力强(已经大赚)
  • 不能容忍踏空(已经在车上)

最终决策

短期战术(券商条件单):

  • 监控SMH与MA50的关系
  • 只要SMH > MA50,死拿不动
  • 跌破MA50时清仓保护利润

长期战略(策引组合监控):

  • 进场信号:跟踪S2(MA200),未来只在牛市大背景下开仓
  • 出场信号:跟踪S5(MA50),中期趋势破坏后带走利润

复盘后留下的候选方案,是用 MA200 观察长期趋势、用 MA50 观察中期趋势变化。它只是本文样本中相对值得继续跟踪的组合,不代表未来仍然最优。

极简版:不想读完整回测的读者看这里

如果你暂时不想深入每组参数,至少先区分三件事:

  1. MA50 只是本文测试的一条历史规则,不是确定的买卖答案;
  2. SOXL 的杠杆损耗和极端回撤不会因为使用均线而消失;
  3. 回测中的组合仓位与真实账户仓位不是一回事。

本文的回测只能说明:在所选样本和参数下,较简单的规则胜过了几组更复杂的候选方案。它适合用来缩小研究范围,不能直接替代真实账户决策。


策引的核心价值:从这个故事中学到什么

1. 原语策略的强大表现力

我们在对话中随口提出的复杂逻辑:

  • 连续2天确认 → Lag原语
  • 状态而非交叉 → RelativeStrengthTransformer
  • MA200过滤下的MA50出场 → And逻辑组合

只要想法能够用现有原语表达,就可以放进统一的回测流程里比较。

2. 极速证伪与去魅

如果没有先做同口径比较,小策可能会直接采用看起来更周全的 Hybrid 策略,并在 2023—2025 年的震荡样本中反复进出。回测让这种交易特征在真实使用前就暴露出来。

这是一类需要警惕的执行风险,但具体结果仍取决于所选规则、样本和真实交易条件。

策引在这里的价值,不是替用户选出必赢方案,而是尽早暴露一些看似合理、历史表现却不理想的规则。

3. 数据驱动的决策信心

AI 可以帮助整理假设,券商提供真实交易工具,策引则负责记录规则并比较历史结果。三者的作用并不相同。

小策最终没有继续凭盘中感受反复改变标准,而是把 MA50 作为一条候选规则持续观察,因为它已经经过同口径的历史比较。

这种睡得着觉的底气,是数据给的。

4. 人机协作的标准范式

这个案例展示了一个完整的闭环:

实际困境 → AI整理假设 → 策引回测验证 → 结果不支持原假设 →
修正规则 → 再次回测 → 比较差异 → 留下候选方案

AI 适合帮助整理假设,策引适合把假设放进历史数据中检验;两者结合的价值,是让每次调整都有数据记录可回看。

5. 如何复现这个探索过程

本文中小策使用的AI是Gemini,但你完全可以用任何大语言模型来复现这个探索过程。如果你想把探索过程公开留痕,可以在 Discord 社区的 thread 里用 /lab new 跑实验,用 /c2i review/c2i explain 复盘,改了什么、结果如何全部自动记录(AI 策略实验室 / 加入 Discord)。

方式一:使用策引AI助手(Chat2Invest)

策引内置的AI助手Chat2Invest已经了解原语策略的完整文档,可以直接帮你:

  • 将自然语言策略描述转化为原语配置
  • 分析回测结果并提出改进建议
  • 解释策略失败的原因

方式二:使用任意大模型(Claude、ChatGPT等)

如果你更习惯使用其他AI工具,可以这样做:

  1. 原语策略文档分享给AI
  2. 用自然语言描述你的策略想法
  3. 让AI生成原语策略配置
  4. 在策引中创建组合并回测验证

核心理念:原语策略 = 策略的乐高积木

原语策略系统的设计理念是声明式而非过程式——你不需要写代码,只需要描述什么条件买、什么条件卖。这意味着:

  • AI友好:结构化的JSON配置让AI能准确理解和生成策略
  • 快速迭代:一个假设从提出到验证只需要几分钟
  • 检验直觉:逻辑上说得通的方案,也要经过同口径比较

本文先后比较了三组假设。AI 帮助整理规则,策引负责按统一口径回测;结果几次都与调整前的直觉不同。

这就是AI + 原语策略组合的真正价值:快速实验、快速证伪、快速进化。

6. 谁适合这种决策模式

这套AI + 回测的决策范式不是万能的。在你投入时间之前,先确认自己是否适合。

适合的人

  • 已经有持仓,需要解决「什么时候该卖」的问题
  • 能接受结果不支持原假设,并愿意放弃表现不理想的规则
  • 追求过程确定性,而非追求每次都抓住最高点
  • 愿意花几个小时换来未来几年的安心

不适合的人

  • 想要别人直接告诉你「今天买什么」
  • 不愿意接受回测结果与直觉相悖
  • 希望AI替自己承担决策责任
  • 追求刺激感,享受频繁交易的快感

如果你属于后者,这篇文章对你没有价值。但如果你属于前者,这套方法可能会改变你的投资决策方式。


原语实现参考

S2: The Filtered Trend(收益最高)

核心配置:

{
"market_indicators": {
"indicators": [{ "code": "SMH" }],
"transformers": [
{
"name": "smh_rs_ma200",
"type": "RelativeStrengthTransformer",
"params": { "indicator": "SMH", "reference": "ma", "window": 200, "field": "Close" }
}
]
},
"trade_strategy": {
"indicators": [
{ "id": "threshold_buy", "type": "Constant", "params": { "value": 101 } },
{ "id": "threshold_sell", "type": "Constant", "params": { "value": 99 } }
],
"signals": [
{
"id": "rs_above_101",
"type": "GreaterThan",
"inputs": [
{ "market": "SMH", "transformer": "smh_rs_ma200" },
{ "ref": "threshold_buy" }
]
},
{
"id": "rs_below_99",
"type": "LessThan",
"inputs": [
{ "market": "SMH", "transformer": "smh_rs_ma200" },
{ "ref": "threshold_sell" }
]
},
{
"id": "rs_below_99_yesterday",
"type": "Lag",
"params": { "periods": 1, "fill_value": 0 },
"inputs": [{ "ref": "rs_below_99" }]
},
{
"id": "rs_below_99_confirmed",
"type": "And",
"inputs": [{ "ref": "rs_below_99" }, { "ref": "rs_below_99_yesterday" }]
}
],
"outputs": {
"buy_signal": "rs_above_101",
"sell_signal": "rs_below_99_confirmed"
}
}
}

原语链条:

SMH价格 → RelativeStrengthTransformer(MA200) → RS值

RS > 101? → 买入信号

RS < 99? → Lag(1天) → And → 卖出信号(连续2天确认)

S5: Pure MA50(风控最优)

与S2的关键差异:

  • 使用MA50而非MA200
  • 买入也增加了2天确认机制
{
"transformers": [
{
"name": "smh_rs_ma50",
"type": "RelativeStrengthTransformer",
"params": { "indicator": "SMH", "reference": "ma", "window": 50, "field": "Close" }
}
],
"signals": [
{
"id": "rs_above_101",
"type": "GreaterThan",
"inputs": [
{ "market": "SMH", "transformer": "smh_rs_ma50" },
{ "ref": "threshold_101" }
]
},
{
"id": "rs_above_101_yesterday",
"type": "Lag",
"params": { "periods": 1, "fill_value": 0 },
"inputs": [{ "ref": "rs_above_101" }]
},
{
"id": "buy_confirmed",
"type": "And",
"inputs": [{ "ref": "rs_above_101" }, { "ref": "rs_above_101_yesterday" }]
}
],
"outputs": {
"buy_signal": "buy_confirmed",
"sell_signal": "rs_below_99"
}
}

附录

A. 完整配置文件

配置文件使用说明

以下配置文件是策引策略引擎内部完整的投资组合配置,包含了原语策略定义、资金策略、标的物等完整信息。

如何在策引平台上使用这些策略

  1. 创建原语策略组合:访问 策略组合创建页面

    • 仅复制配置文件中 strategy_definition 部分的内容
    • 粘贴到"交易策略定义"区域
    • 必须删除 capital_strategy 字段(该字段仅供参考,在创建时通过界面选择对应的资金管理策略即可)
    • 其他配置项无需复制,在创建投资组合时通过界面配置
  2. 理解策略逻辑:访问 原语策略可视化编辑器

    • strategy_definition 粘贴到编辑器中
    • 可视化查看策略的指标、信号和逻辑关系
    • 支持在线调试和修改策略参数
  3. 选择资金管理策略:在创建投资组合时,根据配置文件中的 capital_strategy 类型,在界面上选择对应的资金管理策略(如固定金额、固定比例、再平衡等)

⚠️ 重要提示:直接复制完整配置文件可能导致策略无法正常工作或产生意外行为。请严格按照上述步骤操作。

SOXL/SMH策略完整配置(6个版本)

B. 在线回测链接

策略版本组合链接年化收益最大回撤
S2 Filtered Trend查看组合30.39%-69.62%
S5 Pure MA50查看组合26.77%-65.55%

C. 关键原语说明

原语作用本案例用法
RelativeStrengthTransformer计算价格相对于均线的强度RS = Price/MA × 100
Lag将信号序列向后移动N天实现连续N天确认
And逻辑与运算组合多个条件
GreaterThan / LessThan阈值比较生成买卖信号
LinearScaleWeight线性映射到仓位动态仓位控制(S4)

D. 风险提示

本文所有策略仅供研究和教育目的,不构成投资建议。

杠杆ETF的特殊风险:

  1. 波动损耗:震荡市中会产生永久性亏损
  2. 极端回撤:所有策略的最大回撤都在-65%至-80%之间
  3. 流动性风险:极端行情下可能出现流动性问题

在实盘交易前,请务必:

  1. 充分理解杠杆ETF的风险特征
  2. 根据自身风险承受能力调整仓位
  3. 永远不要投入超过你能承受损失的资金

结语

这个下午,我们没有发明新的数学公式,只是借助 AI 整理问题,再用策引反复检验不同规则,把一段纠结变成了可回看的策略实验。

最终的答案既简单又深刻:

  • 对于3倍杠杆,钝感力就是核心竞争力
  • 少做比多做更赚钱
  • 数据会打脸直觉,但也会给你信心

这就是策引在这类探索中的作用:把交易灵感变成可以回测和持续观察的规则记录。


本文回测区间为2018年1月至2026年1月21日(最近交易日)。回测使用历史真实数据,过往表现不代表未来收益,投资有风险,入市需谨慎。