数据为1小时BTC-USD数据
from backtesting import Strategy
from backtesting import Backtest
def SIGNAL():
return data.Confirmed_Pattern
class MyStrat(Strategy):
mysize = 1000000
def init(self):
super().init()
self.signal = self.I(SIGNAL)
def next(self):
super().next()
TPSLRatio = 2
perc = 0.02
if self.signal!=0 and len(self.trades)==0 and self.data.Confirmed_Pattern==1:
sl = self.data.Close[-1]-self.data.Close[-1]*perc
sldiff = abs(sl-self.data.Close[-1])
tp = self.data.Close[-1]+sldiff*TPSLRatio
self.buy(sl=sl, tp=tp, size=self.mysize)
bt = Backtest(data, MyStrat, cash=1000000)
stat = bt.run()
stat
我正在尝试回测我构建的自定义信号。如果识别到信号,则信号在“Confirmed_Pattern”列中显示 1。每当我运行回测时,它都会给我 Nan 和 0 值作为输出。我已尝试确保 tp, sl 具有正确的值。然而似乎没有任何作用 我已经尽可能简化了策略,尝试将索引更改为日期时间索引,但是修复错误的尝试都没有成功
你发现问题了吗? 我也有同样的情况