架构
组件¶
需要了解的最重要组件有:
- 脚本:所有策略的入口点,这个 Python 文件协调策略。它可能是一个包含所有策略逻辑的简单文件,或者是加载一个或多个控制器的文件。
- 市场数据提供商:访问交易所市场数据的单一入口点,例如历史 OHCLV 蜡烛图、订单簿数据和交易数据。
- 执行器:根据预定义的用户设置管理订单和持仓,确保根据策略的指令放置、修改或取消订单。
- 控制器:基于策略控制器基类定义交易策略,例如方向性策略或做市策略。
继承¶
在深入研究每种策略类型的细节以及何时使用哪种策略之前,一个重要的信息是了解它们都是彼此构建的。
如果我们快速查看一下继承层次结构,就会变得显而易见:
- V1 策略:
StrategyBase
是所有策略的 Cython 基类,而StrategyPyBase
扩展了它,作为所有基于 Python 的策略的根 - V1 脚本:
ScriptStrategyBase
建立在这些类之上,使您几乎无需编码就能创建简单的策略。这个类仍然完全支持,但可能在将来被弃用。因此,我们建议在新脚本实现中使用StrategyV2Base
。 - 控制器和 V2 脚本:
StrategyV2Base
继承自ScriptStrategyBase
,但使用执行器进行订单管理,而不是使用buy()
/sell()
方法。控制器在此基础上进一步扩展,作为通过事件队列松散耦合的附加组件。
请务必记住继承结构,因为这将帮助您大量学习如何编写自己的自定义策略。