Strategy 中的常规下单函数主要有 3 个:买入 buy() 、卖出 sell()、平仓 close() ,它们的调用方式非常简单,大家也经常在案例中看到,交易函数会返回订单 Order 实例,通常会赋值给对象self.order : class TestStrategy(bt.Strategy): def next(self): self.order = self.buy( ...) # 买入、做多 long self...
backtrader通过调用Strategy的buy()、sell()、close()方法来创建订单。 常见订单类型 1. 市价单(Market) 市价单指以市场价格买进或卖出的委托单,不需要自己设定价格 优点:保证立即达成交易,防止踏空或尽快止盈/止损 缺点:无法准确控制成交价格。当市场快速变化或流动性不足时,成交价格与下单时的价格可能相差很远,也...
当调用buy和sell方法后,都会生成订单,并且返回一个order(或者order子类)的实例,每个实例都包含有一个唯一的ref标识符,用于区分不同的order 订单创建 通过调用Strategy的buy()、sell()、close()方法来返回订单实例。 订单取消 通过调用Strategy的cancel(order)方法来取消订单 订单通知 通过调用Strategy的notify_order(ord...
Strategy 中的常规下单函数主要有 3 个:买入 buy() 、卖出 sell()、平仓 close() ,它们的调用方式非常简单,大家也经常在案例中看到,交易函数会返回订单 Order 实例,通常会赋值给对象self.order : class TestStrategy(bt.Strategy): def next(self): self.order = self.buy( ...) # 买入、做多 long self...
step2:在 Strategy 策略逻辑中下达交易指令 buy、sell、close,或取消交易 cancel; step3:Order 模块会解读交易订单,解读的信息将交由经纪商 Broker 模块处理; step4:经纪商 Broker 会根据订单信息检查订单并确定是否接收订单; step5:经纪商 Broker 接收订单后,会按订单要求撮合成交 trade,并进行成交结算; ...
self.sell(exectype=bt.Order.Market) self.log('SELL CREATE, exectype Market, close %.2f'% self.data.close[0]) ... # 不在场内且出现买入信号 elifself.buysell>0: ... ifself.p.exectype=='Market': self.buy(exectype=bt.Order.Market)# Market是默认的订单类型 ...
buy/sell/close 使用隐含的broker和sizer提交买单或者卖单,close是平仓操作。 getposition(或者使用position属性)返回当前的持仓状态 setsizer/getsizer(或者使用sizer属性)用于设置默认的交易数据 像其他Line对象一样,Strategy支持参数设置功能,示例如下: class MyStrategy(bt.Strategy): ...
self.data.close[0]) ... # 不在场内且出现买入信号 elifself.buysell>0: ... ifself.p.exectype=='Market': self.buy(exectype=bt.Order.Market)# Market是默认的订单类型 self.log('BUY CREATE, exectype Market, close %.2f'% self.data.close[0]) ...
self.order=self.buy()else:# Alreadyinthe market...we might selliflen(self)>=(self.bar_executed+5):#SELL,SELL,SELL!!!(withall possibledefaultparameters)self.log('SELL CREATE, %.2f'%self.dataclose[0])# Keep trackofthe created order to avoid a 2nd order ...
allowedifnot self.position:# not yetinmarketifself.signal>0.0:# cross upwards self.log('BUY CREATE , %.2f'%self.data1.close[0])self.buy(size=self.p.stake)else:#inthe marketifself.signal<0.0:# crosss downwards self.log('SELL CREATE , %.2f'%self.data1.close[0])self.sell(size=...