跳转到内容

架构

组件

需要了解的最重要组件有:

  • 脚本:所有策略的入口点,这个 Python 文件协调策略。它可能是一个包含所有策略逻辑的简单文件,或者是加载一个或多个控制器的文件。
  • 市场数据提供商:访问交易所市场数据的单一入口点,例如历史 OHCLV 蜡烛图、订单簿数据和交易数据。
  • 执行器:根据预定义的用户设置管理订单和持仓,确保根据策略的指令放置、修改或取消订单。
  • 控制器:基于策略控制器基类定义交易策略,例如方向性策略或做市策略。

继承

在深入研究每种策略类型的细节以及何时使用哪种策略之前,一个重要的信息是了解它们都是彼此构建的。

如果我们快速查看一下继承层次结构,就会变得显而易见:

  • V1 策略StrategyBase 是所有策略的 Cython 基类,而 StrategyPyBase 扩展了它,作为所有基于 Python 的策略的根
  • V1 脚本ScriptStrategyBase 建立在这些类之上,使您几乎无需编码就能创建简单的策略。这个类仍然完全支持,但可能在将来被弃用。因此,我们建议在新脚本实现中使用 StrategyV2Base
  • 控制器和 V2 脚本StrategyV2Base 继承自 ScriptStrategyBase,但使用执行器进行订单管理,而不是使用 buy() / sell() 方法。控制器在此基础上进一步扩展,作为通过事件队列松散耦合的附加组件。

请务必记住继承结构,因为这将帮助您大量学习如何编写自己的自定义策略。

策略指南

请查看 演练 - 脚本演练 - 控制器 以学习如何创建策略。