Lean · 第 3 章 Handler 插件化与回测实盘统一 ★


文档摘要

Lean · 第 3 章 Handler 插件化与回测实盘统一 ★ 章节摘要:本章是全书第一个高潮(★),钻取第 3 层——Handler 插件化,这是 Lean "回测与实盘统一"的核心设计。Lean 定义了五大核心 Handler 接口(IDataFeed 数据流/ISetupHandler 初始化/IResultHandler 结果/ITransactionHandler 交易/IRealTimeHandler 实时)+ IHistoryProvider 历史 + IBrokerage 券商,每个接口都有 Backtesting 和 LiveTrading 两套实现。引擎代码对所有模式一视同仁,差异完全收敛到 config.

Lean · 第 3 章 Handler 插件化与回测实盘统一 ★

章节摘要:本章是全书第一个高潮(★),钻取第 3 层——Handler 插件化,这是 Lean "回测与实盘统一"的核心设计。Lean 定义了五大核心 Handler 接口(IDataFeed 数据流/ISetupHandler 初始化/IResultHandler 结果/ITransactionHandler 交易/IRealTimeHandler 实时)+ IHistoryProvider 历史 + IBrokerage 券商,每个接口都有 Backtesting* 和 LiveTrading* 两套实现。引擎代码对所有模式一视同仁,差异完全收敛到 config.json 选哪个 environment 装配哪套 handler 字符串。Common/Interfaces/ 共 43 个接口文件,加上 Engine 子目录的 5 个带 [InheritedExport] MEF 自注册的 handler 接口。本章共 3 节,前置依赖为第 1-2 章。

钻取坐标

本章钻取"插件层"——回测实盘统一的核心:换 handler 实现即可。

学习目标

阅读完本章,你应当能够:

  1. 列举五大核心 Handler 接口 + IHistoryProvider + IBrokerage。
  2. 说清每个接口的 Backtesting*/LiveTrading* 双实现。
  3. 理解 [InheritedExport] MEF 自注册 + Composer 反射实例化。
  4. 复述回测实盘统一的三个分叉点。
  5. 理解依赖反转原则在 Lean 的落地。

子章节导航

01 五大核心 Handler 接口

IDataFeed(Initialize/CreateSubscription/RemoveSubscription);ISetupHandler(CreateAlgorithmInstance反射加载/CreateBrokerage/Setup执行Initialize);IResultHandler(Initialize/Sample采样/DebugMessage/ProcessSynchronousEvents);ITransactionHandler(Initialize/ProcessSynchronousEvents/Orders字典);IRealTimeHandler(Setup/SetTime回测模拟时钟/ScanPastEvents补漏)。

02 Backtesting 与 LiveTrading 双实现对照

回测:FileSystemDataFeed(读磁盘)+BacktestingTransactionHandler(模拟成交)+BacktestingResultHandler+BacktestingRealTimeHandler+BacktestingSetupHandler;实盘:LiveTradingDataFeed(实时)+BrokerageTransactionHandler(真实)+LiveTradingResultHandler+LiveTradingRealTimeHandler+BrokerageSetupHandler+额外data-queue-handler实时行情源;三个分叉点(Synchronizer/环境handler/_liveMode分支)。

03 Composer 反射装配与 MEF 自注册

[InheritedExport(typeof(IXxx))] MEF 标记接口自注册;Common/Util/Composer.cs 的 GetExportedValueByTypeName(typeName) 通过反射+类型名匹配实例化;LeanEngineSystemHandlers/LeanEngineAlgorithmHandlers 两套handler容器;依赖反转原则(引擎依赖接口不依赖实现)。

前置知识与后续延伸

前置知识:第 1-2 章。

后续延伸:第 4 章钻取用户 API 层 QCAlgorithm(被 SetupHandler 加载的用户代码)。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U