比如说我想实现买入后经历5根1分钟k线后卖出,我的代码是:
def on_bar(self, bar: BarData):
self.cancel_all()
am = self.am
am.update_bar(bar)
if not am.inited:
return
fast_ma = am.sma(self.fast_window, array=True)
self.fast_ma0 = fast_ma[-1]
self.fast_ma1 = fast_ma[-2]
slow_ma = am.sma(self.slow_window, array=True)
self.slow_ma0 = slow_ma[-1]
self.slow_ma1 = slow_ma[-2]
cross_over = self.fast_ma0 > self.slow_ma0 and self.fast_ma1 < self.slow_ma1
cross_below = self.fast_ma0 < self.slow_ma0 and self.fast_ma1 > self.slow_ma1
if cross_over:
if self.pos == 0:
self.buy(bar.close_price, 1)
# 记录入场时间
if self.long_entry_time:
self.passed_datetime = (bar.datetime - self.long_entry_time).total_seconds()/60
if self.pos > 0:
if self.passed_datetime > 5:
self.sell(bar.close_price, abs(self.pos), stop=True) # 立即以市价卖出
# 重置买入时间和K线计数
self.long_entry_time = None
self.long_entry_bar = 0
self.put_event()
但实际回测出来是间隔8分钟卖出,找了好多天都没发现问题。想知道我的代码问题在哪里,如何解决,或者我们是否有专门表示买入或卖出后经历多少根k线(或多长时间)的写法