GitHub 仓库: https://github.com/QuantConnect/Lean
Lean CLI 文档: https://www.quantconnect.com/docs/v2/lean-cli
讨论论坛: https://www.quantconnect.com/forum
https://github.com/mslycn/Lean/tree/master
c#
项目整体架构
Lean/
├── Launcher/ # 应用程序入口点
├── Algorithm/ # 算法核心实现
│ ├── Algorithm.CSharp/ # C# 算法相关
│ └── Algorithm.Python/ # Python 算法支持
├── Common/ # 通用基础组件
├── Engine/ # 交易引擎核心
├── Data/ # 数据层
├── Logging/ # 日志系统
├── ToolBox/ # 数据工具集
├── Api/ # API 接口层
├── Tests/ # 测试项目
└── Brokerages/ # 券商接口
目录结构
├── Algorithm.CSharp/
├── Algorithm.Python/
├── Api/
├── Common/
├── Configuration/
├── Data/
├── Engine/
├── Algorithm.Framework/
├── Launcher/
├── Logging/
├── Messaging/
├── ToolBox/
├── Tests/
└── Vendor/:
Algorithm.CSharp/
这个目录包含用C#编写的算法示例。当你使用Lean CLI创建新的C#算法项目时,模板代码通常来自这里。
Algorithm.Python/
包含用Python编写的算法示例。注意,LEAN通过Python.NET来支持Python算法,这个目录下的算法会被编译成Python程序集。
Api/
提供与QuantConnect API交互的功能,例如实时数据流、订单管理、用户认证等。如果你需要与QuantConnect的WebAPI交互,会用到这个项目。
Common/
包含整个项目共享的通用代码,如扩展方法、基础模型、工具类等。这是核心基础模块,被其他多个项目引用。
Configuration/
处理应用程序配置,包括从config.json文件读取配置,以及管理环境变量等。
Data/
数据处理核心模块。包括数据订阅、数据读取、数据切片(Slice)、数据转换等。这里定义了基础数据模型(如TradeBar, QuoteBar等)。
Engine/
这是LEAN的核心引擎,包含回测和实盘交易的主要逻辑。例如:
数据源(DataFeed)管理:如何获取数据(来自文件、数据库或API)
交易引擎(TransactionHandler):处理订单提交、填充、取消等
风险管理(RiskManagement)
组合管理(Portfolio)
算法状态管理(AlgorithmManager)
Algorithm.Framework/
包含一些框架性的算法,例如组合选择模型(Portfolio Selection)、执行模型(Execution)等,用于构建更复杂的算法。
Launcher/
程序的入口点。包含Main方法,负责初始化配置、依赖注入容器,并启动引擎。
Logging/
日志记录功能,实现了不同的日志处理器(如文件日志、控制台日志、数据库日志等)。
Messaging/
消息传递,用于将消息(如日志、交易记录、警报等)发送到不同目的地,例如电子邮件、短信等。
ToolBox/
工具箱,提供数据下载、转换等工具。例如,它可以将原始数据转换为LEAN可读取的格式。
Tests/
单元测试和集成测试。每个模块都有相应的测试项目,确保代码质量。
Vendor/
第三方供应商集成。例如,一些第三方数据源(如TrueFX、Oanda等)的集成代码在这里。
