【】已解决【】
我发现,在策略初始化完成,开始回访数据之前的一部分数据的回测,都是没有仓位的,之后就变得增长了。
醉了。
【】已解决【】
我发现,在策略初始化完成,开始回访数据之前的一部分数据的回测,都是没有仓位的,之后就变得增长了。
醉了。
` def on_bar(self, bar: BarData):
"""
Callback of new bar data update.
"""
am = self.am
am.update_bar(bar)
if not am.inited:
return
diffs=-am.close*self.multi_factor+am.volume
diff=diffs[-1]
long_high_price=max(diffs[-1*self.long_window-1:-2])
long_low_price=min(diffs[-1*self.long_window-1:-2])
short_high_price=max(diffs[-1*self.short_window-1:-2])
short_low_price=min(diffs[-1*self.short_window-1:-2])
if self.pos == 0 and diff<long_low_price:
print(bar.datetime,self.pos,'buy',diff,long_low_price)
self.buy(bar.close_price, 14)
if self.pos==0 and diff>long_high_price:
print(bar.datetime,self.pos,'short',diff,long_high_price)
self.short(bar.close_price,14)
if self.pos<0 and diff<short_low_price:
print(bar.datetime,self.pos,'cover',diff,short_low_price)
self.cover(bar.close_price,14)
if self.pos>0 and diff>short_high_price:
print(bar.datetime,self.pos,'sell',diff,short_high_price)
self.sell(bar.close_price,14)
self.put_event()`
前面的一部分数据用于策略状态初始化,此时策略可以收到数据计算技术指标等,但无法下单(引擎会忽略),直到初始化完成后,才会允许开始正式交易