跳至内容

架构

组件

需要理解的最重要组件包括:

  • 脚本(Script):所有策略的入口点,这是一个 Python 文件,负责协调策略逻辑。它可以是一个包含全部策略逻辑的简单文件,也可以是加载一个或多个控制器的文件。
  • 市场数据提供方(Market Data Provider):访问交易所市场数据的单一入口,例如历史 OHCLV K 线、订单簿数据和交易数据。
  • 执行器(Executor):根据预设的用户配置管理订单和仓位,确保订单按策略指令正确下单、修改或取消。
  • 控制器(Controller):基于策略控制器基类(如方向性策略或做市策略)定义交易策略。

继承关系

在深入探讨每种策略类型及其适用场景之前,有一点非常重要:这些策略都是层层构建的。

如果我们快速查看继承层次结构,这一点就显而易见了:

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

请务必牢记这一继承结构,这将极大帮助你学习如何编写自定义策略。

策略指南

请查阅 脚本使用指南控制器使用指南,学习如何创建策略。