这个仓库是QuantConnect的Lean算法交易引擎,是一个事件驱动、专业级别的算法交易平台,具备优雅的工程设计和深度的量化概念建模。以下是对该仓库的详细介绍:
仓库概述
- 平台特点:LEAN是一个事件驱动、专业级别的算法交易平台,注重优雅的工程设计和深度的量化概念建模。它支持开箱即用的替代数据和实时交易。
- 模块化设计:该平台采用模块化设计,每个组件都可插拔和定制,并且自带了适用于所有主要插件点的模型。
- CLI工具:提供QuantConnect Lean CLI命令行界面工具,方便开发者与Lean算法交易引擎进行交互,可用于管理项目、运行回测、部署实时算法等任务。
主要功能模块
- 引擎(Engine)
- LeanEngineSystemHandlers:提供系统级处理程序的容器。
- DataFeeds:数据管理模块,如
DataManager
,处理算法中数据的管理和更新。 - Storage:存储模块,包含
LocalObjectStore
类,是IObjectStore
的本地磁盘实现,用于管理对象存储,包括初始化、读取、保存和删除对象数据等操作,同时会检查存储限制,若超出限制会抛出StorageLimitExceededException
异常。
- 算法(Algorithm)
- CSharp和Python实现:提供了多种算法示例,如
ObjectStoreExampleAlgorithm
展示了IObjectStore
的使用,通过缓存历史数据来加速连续回测;IntradayReversalCurrencyMarketsAlpha
展示了如何处理新证券的创建和缓存类。
- CSharp和Python实现:提供了多种算法示例,如
- 通用(Common)
- Api:包含与API交互的相关类,如
ObjectStoreResponse
定义了获取对象存储信息的响应类,包括获取、列出和属性查询等响应。 - Storage:提供
ObjectStore
类,作为IObjectStore
的辅助类,简化了对对象存储方法的访问,支持多种数据格式的读写操作,如JSON、XML等。
- Api:包含与API交互的相关类,如
- 其他模块
- Brokerages:经纪商相关模块,处理与不同经纪商的交互。
- Indicators:指标模块,提供各种技术指标的实现。
- Optimizer:优化器模块,用于算法参数的优化。
代码示例
以下是ObjectStoreExampleAlgorithm
中使用对象存储的示例代码:
class ObjectStoreExampleAlgorithm(QCAlgorithm):
spy_close_object_store_key = "spy_close"
spy_close_history = RollingWindow[IndicatorDataPoint](252)
def initialize(self):
self.set_start_date(2013, 10, 7)
self.set_end_date(2013, 10, 11)
self.SPY = self.add_equity("SPY", Resolution.MINUTE).symbol
self.spy_close = self.identity(self.SPY, Resolution.DAILY)
if self.object_store.contains_key(self.spy_close_object_store_key):
values = self.object_store.read(self.spy_close_object_store_key)
history = pd.read_csv(StringIO(values), header=None, index_col=0, squeeze=True)
for time, close in history.items():
self.spy_close.update(time, close)
else:
history = self.history(self.SPY, timedelta(365), Resolution.DAILY).close.unstack(0).squeeze()
for time, close in history.items():
self.spy_close.update(time, close)
self.object_store.save(self.spy_close_object_store_key,
'\n'.join(reversed([f'{x.end_time},{x.value}' for x in self.spy_close_history])))
安装和使用
- 安装:使用
pip install lean
命令安装QuantConnect Lean CLI。 - 命令示例
- 创建新项目:
lean project-create
- 运行本地Jupyter Lab环境:
lean research
- 本地回测项目:
lean backtest
- 本地优化项目:
lean optimize
- 本地实时交易:
lean live
- 创建新项目: