Analyzer 插件接口草案¶
目标¶
- 让第三方分析器无需修改内核即可接入回测流程。
- 将固定分析输出扩展为“内置 + 插件”双轨体系。
最小生命周期¶
class AnalyzerPlugin(Protocol):
name: str
def on_start(self, context: dict[str, Any]) -> None: ...
def on_bar(self, context: dict[str, Any]) -> None: ...
def on_trade(self, context: dict[str, Any]) -> None: ...
def on_finish(self, context: dict[str, Any]) -> dict[str, Any]: ...
实现草案: - analyzer_plugin.py
插件管理¶
AnalyzerManager.register(plugin)AnalyzerManager.on_start/on_bar/on_trade/on_finish- 输出结构:
{plugin_name: plugin_result}
上下文约定(v0)¶
enginestrategybar(在on_bar时存在)trade(在on_trade时存在)result(在on_finish时存在)
模板插件¶
AnalyzerTemplate- 示例输出:
seen_trades
分发建议¶
- 包发现机制采用
entry_points。 - 每个插件包声明:
- 支持 AKQuant 版本范围
- 插件名称
- 入口类
验收¶
- 插件异常隔离策略可配置(继续/中断)。
- 报告输出可附加插件 section。
- 提供至少 2 个官方示例插件。