Lumibot实战:SMA 10/30在苹果上17笔交易有赚有赔,短周期信号的真实面目

一个写完策略能直接挂到券商实盘的框架

Lumibot 是一个支持回测和实盘无缝切换的 Python 量化交易库——你在回测里写的策略代码,不改一行就能挂到 Alpaca、Interactive Brokers、TD Ameritrade 上实盘运行。从安装到跑通第一个双均线回测,手动操作需要 1-2 小时(装库、配数据源、写策略类、处理交易日志)。本文用自然语言驱动的方式把它压缩到几分钟——不需要手动写策略类、不需要配券商接口、不需要手动整理交易数据。最终产出是一份 quantstats-lumi Tearsheet、一份每日净值 CSV 和一份逐笔交易日志。

起步

EasyClaw 官网下载安装。不需要手动装 Lumibot、不需要注册券商。

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

创建 Skill

在 Skill Creator 里告诉 EasyClaw:

帮我把 GitHub 上的 Lumibot(https://github.com/Lumiwealth/lumibot)做成一个回测 Skill。我希望输入股票代码、起止日期和 SMA 参数就能跑双均线策略,用 Yahoo Finance 数据源,输出完整的绩效指标和交易日志。

Skill 创建好后:

用 Lumibot 回测 AAPL,SMA 快线 10 慢线 30,从 2024 年中到现在

image

回测结果:17 笔交易,有赢有亏

指标怎么看
最终净值 $125,587(+25.59%) 两年赚了四分之一
CAGR 13.02% 年化收益可观
夏普比率 0.649 中等水平——承担了一定波动
索提诺 0.893 下行风险控制尚可
最大回撤 -24.84% 最长持续了 191 天——半年在水下
总交易次数 17 9 买 8 卖,频率中等
胜率 ~50% 有赚有赔,真实感强

部分交易明细

#日期动作价格数量金额
1 2024-08-13 BUY $229.22 436 $100,000
2 2024-09-04 SELL $224.04 436 $97,682
3 2024-09-30 BUY $247.32 395 $97,682
4 2024-11-14 SELL $240.13 395 $94,882

前四笔交易就亏了两次。8 月买入后 9 月初就遇到死叉信号被迫卖出,亏了约 2.3%。9 月底再次金叉买入,11 月又被死叉踢出来,又亏了 3%。SMA 10/30 的短周期参数在震荡行情中就是这样——信号频繁切换、假突破多、小亏不断。但后面几笔长趋势中的交易逐渐覆盖了前期的亏损,最终靠大赢交易拉回了正收益。

输出文件

LUMIBOT_AAPL_output/
├──  tearsheet.html    ← Bokeh 交互式报告(累计收益/回撤/月度热图/滚动夏普)
├── ️ tearsheet.png     ← Matplotlib 四面板静态图表
├──  stats.csv         ← 每日净值 + 收益率序列
├──  trades.csv        ← 逐笔交易日志
├──  metrics.json      ← 机器可读 JSON 指标
└──  report.md         ← 完整 Markdown 报告

image

Lumibot 的策略基类——on_trading_iteration

Lumibot 的策略逻辑不是写在 next() 里,也不是写在 price_event() 里,而是写在一个叫 on_trading_iteration() 的方法里。这个方法在每个时间步(回测中每天、实盘中按 sleeptime 间隔)执行一次。每次执行时,策略检查均线交叉信号、获取当前持仓状态、然后决定买入、卖出还是什么都不做:

API作用
get_last_price() 获取当前价格——策略的眼睛
get_position() 查询当前持仓状态
create_order() + submit_order() 创建并提交订单——回测和实盘完全一样
sell_all() 一键清仓

这种设计的核心优势在于回测和实盘的代码是同一份。你在回测中验证了策略逻辑后,把数据源从 Yahoo Finance 换成 Alpaca 或 Interactive Brokers 的实时行情,策略就能直接挂到实盘上跑。不需要重写交易逻辑、不需要适配券商 API——Lumibot 已经封装好了。

常见报错

错误原因解决方法
Yahoo 数据拉取超时 Yahoo Finance API 临时不可用 等待片刻重试
回测中 buy 信号但未成交 资金不足以覆盖手续费 调高初始资金或降低手续费率

什么时候该用 Lumibot

最适合的场景:你已经有 Interactive Brokers、Alpaca 或 TD Ameritrade 的账户,想把自己写的美股策略从回测直接切到实盘。Lumibot 对这些传统券商的支持是目前开源框架中最全面的。

不太适合的场景:你只做 A 股。Lumibot 的数据源和券商接口主要覆盖美股市场,对 A 股的原生支持有限。另外,SMA 10/30 这种短周期参数在波动大但趋势弱的标的上表现会比较挣扎——就像这次回测中频繁的小亏。

下一步

  • 把 SMA 参数从 10/30 换成 50/200——信号数量从 17 笔大幅减少,看收益和回撤如何变化
  • 如果已经有 IB 或 Alpaca 账户,把 Skill 生成的策略代码直接挂到实盘上跑一周

资源链接:

你愿意用更频繁的交易换取灵活性,还是偏好低频但确定性更高的策略?欢迎聊聊。

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