系统中每个模块都是有不同的功能。Cerebro是控制整个系统,Strategy是系统中最重要的功能。order是重要的连接者,Strategy产生了订单,订单发送到其他模块,然后又反馈信息到Strategy模块。
本章主要介绍了Order订单的使用和订单模块的多样性。订单的多样性满足了交易者的复杂性需求。
1.订单创建
1.1创建
当涉及以下三种情况,订单会被创建:
- self.buy() 买入
- self.sell() 卖出
- self.close() 平仓。如果是买入,则卖出平仓。做空则买入平仓。
一般都是在策略中next方法中创建订单,创建后发送给经纪行broker(国内就是证券公司),然后经纪行执行相关的操作(经纪行与交易所进行相关业务操作)。
买入的价格是多少,买入的订单类型是什么,买入的有效期是多久。诸如此类的问题,都可以通过参数进行设置。
1.2 控制订单
当buy, sell, close以下参数将用到
-
data 默认值:None
目标资产数据,即买入或卖出的资产。如果为None,则使用策略中self.datas[0]或self.data0即传入的第一个数据
-
size 默认值:None
订单数据量,如果是做多是正值,做空是负值。如果size=None,将使用sizer(Cerebro,addsizer)模块来获取下单数量。使用sizer模块,避免单个订单进行重复设置。
-
price 默认值:None
- 对于