核心定义 回测是利用历史数据,在模拟环境中验证交易策略表现的过程。 它像一台“时光机”,让你在投入真金白银之前,看清策略的潜力与风险。
没有回测的量化交易如同蒙眼飞行。回测帮助你:
| 框架 | 语言 | 特点 | 适合人群 | ⭐ 易用性 |
|---|---|---|---|---|
| Backtrader | Python | 功能全面,社区活跃,支持多数据源 | 初中级量化研究者 | ⭐⭐⭐⭐ |
| Zipline | Python | Quantopian 遗产,事件驱动,适合美股 | 有工程背景的开发者 | ⭐⭐⭐ |
| PyAlgoTrade | Python | 轻量级,易于理解,适合教学 | 入门 / 学生 | ⭐⭐⭐⭐⭐ |
| QuantConnect (LEAN) | C# / Python | 云端回测,多资产,机构级 | 专业团队 / 高频 | ⭐⭐⭐ |
| vn.py | Python | 国内期货/股票,全栈交易系统 | 国内量化从业者 | ⭐⭐⭐⭐ |
回测中最隐蔽的错误之一:未来函数。下面代码展示了错误与正确做法:
# ❌ 错误:使用了未来数据 (lookahead) if data['close'].iloc[-1] > data['high'].iloc[-2]: # 实际交易中无法知道今日收盘 buy_signal = True # ✅ 正确:只使用到昨日为止的数据 if data['close'].shift(1).iloc[-1] > data['high'].shift(2).iloc[-1]: buy_signal = True # 回测框架内部应自动防止未来泄漏,但策略编写者仍需警惕