Backtrader(十二)- 订单 Order -buy、sell、close

简介

订单代表着发送给经纪行的指令,触发经纪行(用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):

参数解释:
data: 所要操作的行情数据,即标的资产数据。如果为None,则使用策略的self.datas[0]行情数据
size:下单量,size是一个正数。如果size=None,就会通过下单量管理者sizer确定下单量。
price:交易价格。默认值None适用于Market、Close订单。由市场决定具体的交易价格,对于Limit、Stop、StopLimit订单,必须显式给price赋值,price值决定了交易的触发点。对于 StopTrail、StopTrailLimit 订单,是否显式设置price,将决定不同的交易触发点
plimit:只适用于StopLimit , StopTrailLimit 订单。plimit 为限制价,而price为订单执行触发价格
exectype:此字段指明所创建订单的类型,可取值如下:
bt.Order.Market 市价单(默认)
bt.Order.Close 收盘价单
bt.Order.Limit 限价单
bt.Order.Stop 止损单
bt.Order.StopLimit 止损限价单
bt.Order.StopTrail 止损跟踪单
bt.Order.StopTrailLimit 止损跟踪限价单
bt.Order.Historical:未知
valid
可能的取值
None 生成的订单不会过期,将一直在市场中等待满足条件后执行或被手动取消
datetime.datetime / datetime.date 创建的订单直到该日期时间有效。若超过该日期时间,且订单仍未满足执行条件,则订单过期取消
Order.DAY / 0 / timedelta() 生成一个单日订单,有效期为1天,单日未满足执行条件,订单就会过期取消,这个通常用于bar是分钟级别的日内交易。对于日线级别的bar不适用
numeric value 对应于matplotlib中的日期时间格式的数值,作为订单有效期截止时间
tradeid:这是backtrader应用的一个内部值,用于跟踪相同资产上的重叠交易。当通知订单状态的变化时,此tradeid被发送回策略
** kwargs:用于其他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 完全相同。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值