backtrader line长度,已经处理过多少条

backtrader line长度,已经处理过多少条

self.lines是一组点的集合,并且在执行过程中会动态增长,因此可以通过调用Python中的len函数随时测量长度。 这适用于:

  • 交易数据
  • 策略
  • 指标

交易数据预加载后,data属性也可使用buflen方法,返回交易数据的柱线数。

len和buflen之间的区别:

  • len报告已处理了多少条
  • buflen报告已为交易数据加载的柱线总数

如果两个都返回相同的值,则要么没有数据被预加载,要么当前处理已消耗了所有预加载的数据(除非系统连接到实时交易数据,否则将意味着处理结束)。

def next(self):
	# 如果有已经打开的订单则退出
	if self.order:
		return

	# 如果对第一标的没有仓位
	if not self.position:
		# 如果没有持仓,则看下面的信号决定买入还是卖出
			
		#20日均线上穿50日
		if self.fast_sma[0] > self.slow_sma[0] and self.fast_sma[-1] < self.slow_sma[-1]:
			self.log(f'BUY CREATE {self.dataclose[0]:2f}')
			# Keep track of the created order to avoid a 2nd order
			self.order = self.buy()
		#下穿
		elif self.fast_sma[0] < self.slow_sma[0] and self.fast_sma[-1] > self.slow_sma[-1]:
			self.log(f'SELL CREATE {self.dataclose[0]:2f}')
			# Keep track of the created order to avoid a 2nd order
			self.order = self.sell()
	else:
		# 如果已经处理的bar长度大于订单创建日之后的5天,则卖出。也就是买入后持有5天后立即卖出
		if len(self) >= (self.bar_executed + 5):
			self.log(f'CLOSE CREATE {self.dataclose[0]:2f}')
			self.order = self.close()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值