简介
订单代表发送给经纪行的指令,触发经纪行(使用)broker对象模拟经纪行)执行相关行动。通常在战略类别中next在方法中创建订单。
下订单(买卖)的方法
self.buy()、self.sell()、self.close()、self.order_target_size()、self.order_target_value()、self.order_target_percent() 等
buy()
def buy(self, data=None, size=None, price=None, plimit=None, exectype=None, valid=None, tradeid=0, oco=None, trailamount=None, trailpercent=None, parent=None, transmit=True, **kwargs):
参数解释: : 要操作的市场数据,即标的资产数据。None,使用策略self.datas[0]市场数据 :下单量,size是正数size=None,通过订单量管理者sizer确定订单量。 :交易价格。默认值None适用于Market、Close订单。具体的交易价格由市场决定Limit、Stop、StopLimit订单必须显式给出price赋值,price价值决定了交易的触发点。对于 StopTrail、StopTrailLimit 订单,是否设置为显式price,不同的交易触发点将决定 :只适用于StopLimit , StopTrailLimit 订单。plimit 和price触发订单价格 :该字段指示了创建订单的类型,可取值如下: bt.Order.Market 市价单(默认) bt.Order.Close 收盘价单 bt.Order.Limit 限价单 bt.Order.Stop 止损单 bt.Order.StopLimit 止损限价单 bt.Order.StopTrail 止损跟踪单 bt.Order.StopTrailLimit 止损跟踪限价单 bt.Order.Historical:未知 : 可能的取值 None 生成的订单不会过期,将在市场上等待满足条件后执行或手动取消 datetime.datetime / datetime.date 创建的订单直到日期有效。如果订单超过日期,且未满足执行条件,则取消订单过期 Order.DAY / 0 / timedelta() 生成单日订单,有效期为1天,单日不符合执行条件,订单过期取消,通常用于bar是日内交易的分钟级别。日线级别bar不适用 numeric value 对应于matplotlib作为订单有效期的截止日期格式的值 :这是backtrader应用程序的内部值用于跟踪同一资产的重叠交易。当通知订单状态的变化时,此tradeid发送回策略 ** :用于其他broker可支持的额外参数。backtrader将kwargs传递给创造order对象,供这些broker使用,如Interactive Brokers支持:orderType、lmtPrice、auxPrice
返回值: 被创建的订单对象
sell()
def sell(self, data=None, size=None, price=None, plimit=None, exectype=None, valid=None, tradeid=0, oco=None,
trailamount=None, trailpercent=None,
parent=None, transmit=True,
**kwargs):
参数:与buy完全相同
close()
介绍: close方法首先检查当前的持仓情况,然后根据持仓情况对应地使用buy或者sell方法来清空仓位,即平仓。也就是对长仓,用sell方法,对短仓用buy方法来平仓,如果用户不指定具体的size值,size会被自动计算,完全平仓。如果指定来size值,且size比持仓量少,那么将实现部分平仓。 参数:与 buy 完全相同。