架构
组件¶
需要理解的最重要组件包括:
- 脚本(Script):所有策略的入口点,这是一个 Python 文件,负责协调策略逻辑。它可以是一个包含全部策略逻辑的简单文件,也可以是加载一个或多个控制器的文件。
- 市场数据提供方(Market Data Provider):访问交易所市场数据的单一入口,例如历史 OHCLV K 线、订单簿数据和交易数据。
- 执行器(Executor):根据预设的用户配置管理订单和仓位,确保订单按策略指令正确下单、修改或取消。
- 控制器(Controller):基于策略控制器基类(如方向性策略或做市策略)定义交易策略。
继承关系¶
在深入探讨每种策略类型及其适用场景之前,有一点非常重要:这些策略都是层层构建的。
如果我们快速查看继承层次结构,这一点就显而易见了:

- V1 策略:`StrategyBase` 是所有策略的 Cython 基类,而 `StrategyPyBase` 在其基础上扩展,作为所有基于 Python 的策略的根类。
- V1 脚本:`ScriptStrategyBase` 在上述类之上构建,极大简化了几乎无需编写代码即可创建简单策略的过程。该类目前仍完全受支持,但未来可能被弃用。因此我们建议在新脚本实现中使用 `StrategyV2Base`。
- 控制器与 V2 脚本:`StrategyV2Base` 继承自 `ScriptStrategyBase`,但使用执行器(Executors)来管理订单,而非使用 `buy()` / `sell()` 方法。控制器在此基础上进一步扩展,作为通过事件队列松耦合的附加组件。
请务必牢记这一继承结构,这将极大帮助你学习如何编写自定义策略。
