QuantConnect Lean · event-driven, C#, backtest-to-live
向量化回测快,但实盘跑不了——实盘是事件流,不是矩阵乘法。Lean 从一开始就是事件驱动,慢但能直接上实盘。
向量化回测(pandas+numpy)写起来爽,一行算全组合收益。问题是实盘是"来一根 bar 算一次",向量化那套逻辑搬到实盘要全部重写,回测和实盘两套代码两套 bug。Lean 用事件驱动:每个时间步触发 OnData 事件,算法在事件里响应,回测和实盘跑同一份代码。
这个管道是 Lean 的核心。数据进来→算法决策→下单→成交更新组合,每一步都是独立模块,可替换。回测用历史数据源,实盘换券商数据源,算法代码不动。这就是"回测即实盘"的工程价值——不是回测准,是回测和实盘是同一个东西。
Lean 的三层架构。点击各模块,看它在数据管道里的角色和职责。
Algorithm 一份代码,回测/实盘/云端切换只改配置。回测里跑通的逻辑,实盘直接用。
一个引擎处理多类资产,组合层面统一管理。跨市场策略不用拼多个框架。
QuantConnect 云端直接跑,或本地 Docker 部署。小策略云端,大策略本地。
C# 比 Python 快一个量级,tick 级回测可行。Python 算法也能跑(PythonNet 桥接)。
这四个优势让 Lean 成为机构和小团队都能用的框架。个人用 backtrader 起步,团队上规模后转 Lean——这是业界常见路径。Lean 的学习曲线陡(C# + 事件驱动 + 配置体系),但一旦上手,从研究到实盘的工程债务大幅降低,不用再维护"回测一套实盘一套"。