AutoTrader实战:SMA 5/20+做空+1%风险预算,苹果两年收益3.8%回撤85%

一个用仓位风控和做空来保护策略的框架,学到的代价是 85% 回撤

AutoTrader 是一个偏向自动化交易的 Python 量化框架。它的设计重心不在"支持多少种策略",而在"怎么把策略安全地部署到实盘"——虚拟券商(Virtual Broker)模拟了真实的滑点和手续费、Risk-based 仓位管理限制每笔交易的风险暴露、AutoPlot 自动生成 Bokeh 交互式图表。这些都是在真实交易中必不可少但在很多回测框架里被忽略的细节。

我拿它用 SMA 5/20 交叉 + EMA50 趋势过滤 + 做空开关的策略回测了苹果两年。结果是残酷的:13 笔交易、总收益仅 +3.80%、但最大回撤达到了 -85.02%。利润因子 1.03——勉强超过 1,意味着策略在盈亏线上挣扎。夏普 0.97 看起来不错,但Sortino 1.86 说明下行波动控制得远比整体波动好——问题出在上行风险而非下行风险。

起步

EasyClaw 官网下载安装。不需要手动装 AutoTrader、不需要配置 Virtual Broker。

打开后左侧找「Skill」→「Skill Creator」。灰显的话去「设置 → 通用」打开「开发者模式」重启。

创建 Skill

在 Skill Creator 里告诉 EasyClaw:

帮我把 GitHub 上的 AutoTrader(https://github.com/kieran-mackle/AutoTrader)做成一个回测 Skill。我希望输入股票代码和起止日期就能跑 SMA 交叉 + EMA 趋势过滤策略,用 Risk-based 仓位管理(1% 风险/笔),支持做多做空,输出控制台风格结果表和 Bokeh 交互图表。

Skill 创建好后:

用 AutoTrader 回测 AAPL,SMA 5/20 交叉 + EMA50 趋势过滤,1% 风险/笔,支持做空,从 2024 年中到现在

image

image

回测结果:做空做多了,把自己做炸了

指标怎么看
初始资金 $100,000  
最终净值 $104,394 两年只赚了 $4,394——年化不到 2%
总收益率 +3.80% 和买入持有(+30%+)比相形见绌
夏普比率 0.97 夏普还行——但这是被 Sortino 拉高的假象
索提诺比率 1.86 下行波动控制得不错——亏损比较均匀
最大回撤 -85.02% 几乎亏光了——比 bt 的 -98% 好一点但同样灾难
利润因子 1.03 勉强 > 1——赚的和亏的几乎持平
总交易次数 13 7 多 + 6 空
胜率 46.15% 多空都不高

多空拆解——谁在亏钱

 次数胜率
多头 7 42.86%
空头 6 50.00%

多头的胜率是 42.86%,空头的胜率是 50%。两者都不高,但加起来 13 笔交易中大约一半在亏钱。说明策略在苹果 2024-2026 的单边震荡上行趋势中频繁切换方向,做空信号在上涨行情中反复被打脸。EMA50 作为趋势过滤器本意是"只顺着 EMA50 的方向开仓",但实际执行中 EMA50 的走向本身就滞后于价格——当价格快速下跌后 EMA50 还来不及拐头,做空信号已经触发并执行了。

AUTOTRADER_AAPL_tearsheet

 

Risk-based 仓位管理——1% 风险/笔为什么没救回来

AutoTrader 的 Risk-based 仓位管理是这样工作的:每次交易前,根据你的总资金、止损距离和 1% 的风险预算,自动计算应该买/卖多少股。比如总资金 $100,000、1% 风险 = $1,000、止损设在 3% 远的位置,那仓位 = $1,000 / 3% = $33,333。

这个机制的本意是"不管多少连败,都不会亏到伤筋动骨"。但这次回测中,-85% 的回撤说明它并没有保护策略。原因在于止损触发后的重新入场——每笔交易的风险确实被控制在了 1%,但连续多次止损后重新入场、再被止损、再入场……累积起来就是一个缓慢但不可逆的账户消耗。

13 笔交易、胜率 46%、利润因子 1.03——这三个数字放在一起,在数学上就是必然的缓慢亏损。如果利润因子是 1.03,意味着每赚 $1.03 需要承担 $1.00 的风险。在胜率不到 50% 的情况下,连续亏损的概率很高——三次连败就吃掉 3% 的风险预算,五次连败就吃掉 5%。

常见报错

错误原因解决方法
Virtual Broker 订单一直 pending 滑点 + 流动性限制导致无法成交 调整 slippage 参数或改用市价单
Risk-based sizing 计算出的仓位为 0 止损距离太近 + 风险预算太小 放宽止损或调高风险比例

什么时候该用 AutoTrader,什么时候不该用

适合的场景:你准备把策略从回测迁移到实盘。AutoTrader 的 Virtual Broker、滑点模拟、Risk-based 仓位管理这些功能都是为了"让回测更接近实盘"。它也支持做空——如果你交易的是期货或外汇等天然支持双向的品种,这个功能很有用。

不太适合的场景:你只做多美股大盘股。SMA 5/20 在苹果这种单边上涨的品种上加入做空逻辑,效果可能不如纯多头策略。还有就是如果你对滑点和仓位管理的细节不感兴趣,AutoTrader 的配置项可能过于繁琐。

下一步

  • 关掉做空开关,同一策略只做多,对比回撤是否从 -85% 降到更可控的水平
  • 把 Risk-based 风险预算从 1% 调到 2%,看仓位加大后利润因子是否改善

资源链接:

你用过 Risk-based 的仓位管理吗?你的经验里多少风险预算/笔最合理?欢迎聊聊。

posted @ 2026-07-28 15:25  PC修复电脑医生  阅读(3)  评论(0)    收藏  举报