1. 课程导入

欢迎进入《LEAN CLI 研究回测到实盘交易实战》。在动手写第一行策略代码之前,我们需要先建立一张清晰的“地图”:LEAN CLI 到底是什么、它在量化交易全流程中处于什么位置、我们这 30 章要沿着怎样的路径前进。很多初学者一上来就急着调参、跑回测,结果在环境配置、数据格式、实盘对接上反复踩坑,根本原因就是缺少对工具定位和整体流程的认知。本章不写策略,只解决“为什么用 LEAN CLI”和“怎么学”这两个问题。

一、LEAN CLI 的定位与价值

LEAN 是 QuantConnect 开源的量化交易引擎,支持 C# 与 Python 编写策略,覆盖股票、期货、外汇、期权、加密货币等多资产类别。而 LEAN CLI 是这套引擎的命令行入口,它把“项目创建、数据下载、本地回测、参数优化、云端部署、实盘运行”串成了一条可脚本化、可复现的工作流。

它的核心价值可以归纳为三点:

  • 本地与云端一致:同一份策略代码,既能在本地用 lean backtest 跑,也能一键推送到 QuantConnect 云端,避免“本地能跑、线上报错”的割裂。
  • 工程化而非脚本化:策略以项目(project)为单位组织,包含 main.py、config.json、research.ipynb 等,天然适合版本管理与团队协作。
  • 全流程可复现:数据、参数、回测结果、日志都被结构化保存,任何一次实验都能被重新执行和对比。
如果你只用过网页版 QuantConnect,LEAN CLI 带来的最大改变是:把“点鼠标”变成“敲命令”,从而让研究过程可以被记录、被自动化、被复现。

二、量化交易全流程概览

一个完整的量化交易闭环,通常包含六个阶段:想法研究、数据准备、策略编码、回测验证、模拟/实盘、监控复盘。LEAN CLI 在每个阶段都有对应命令支撑。

阶段 核心任务 LEAN CLI 关键命令
想法研究 用 Notebook 探索数据、验证因子 lean research
数据准备 下载/更新历史数据到本地 lean data download
策略编码 创建项目、编写算法逻辑 lean project-create
回测验证 本地回测、查看统计与日志 lean backtest
参数优化 批量扫描参数、对比结果 lean optimize
实盘运行 部署到券商/云端并监控 lean live / lean cloud live

下面这张图展示了从研究到实盘的数据与信号流向,以及 LEAN CLI 在各环节的介入点。请重点观察:研究阶段的因子结论如何进入策略,回测结果又如何反馈修正参数。

LEAN CLI 量化交易全流程 研究 Notebook / 因子 数据 下载 / 清洗 策略编码 main.py 回测 统计 / 日志 参数优化 optimize 模拟 / 实盘 live 监控复盘 日志 / 归因 虚线表示反馈回路:回测与实盘结果持续修正研究与参数

三、课程学习路径与实战目标

本课程共 30 章,整体遵循“环境 → 研究 → 回测 → 优化 → 实盘 → 复盘”的递进结构。你可以把它理解为一条从零到实盘的流水线,每一章都产出一个可验证的成果。

  1. 基础搭建(第 1–5 章):安装 LEAN CLI、创建项目、理解目录结构与配置,跑通第一个本地回测。
  2. 研究与数据(第 6–12 章):用 Notebook 做因子探索,掌握数据下载、格式转换与自定义数据接入。
  3. 策略与回测(第 13–20 章):编写多资产策略,理解手续费、滑点、成交模型,学会读回测报告。
  4. 优化与稳健性(第 21–25 章):参数扫描、样本外测试、过拟合识别与风险控制。
  5. 实盘与运维(第 26–30 章):模拟盘、券商对接、实盘部署、监控告警与复盘迭代。
实战目标:课程结束时,你将拥有一个能在本地回测、能在云端运行、并能对接实盘账户的完整策略项目,而不是一堆零散代码片段。

四、常见误区与复盘提醒

在正式开课前,先避开几个高频误区,能帮你省下大量时间。

  • 误区一:把回测收益当实盘预期。回测是历史拟合,未考虑流动性冲击、网络延迟与真实滑点。实盘前必须经过模拟盘验证。
  • 误区二:忽略数据质量。缺失值、复权错误、时区不一致,都会让回测结果失真。数据准备阶段要多做校验。
  • 误区三:过度优化参数。在历史数据上反复调参,容易得到“漂亮但脆弱”的曲线。要保留样本外数据做检验。
  • 误区四:跳过工程规范。不写日志、不做版本管理、配置硬编码,会让策略无法维护和复现。
请记住:LEAN CLI 是工具,不是盈利保证。它帮你把流程做规范、把实验做可复现,但策略的盈亏最终取决于逻辑、风控与执行。

接下来,我们将从安装 LEAN CLI 开始,一步步把这条流水线搭起来。请先确认你的开发环境已准备好 Python 或 .NET 运行时,并保持网络畅通,以便下载引擎与数据。