Backtesting.py bt.run 不显示任何值

问题描述 投票:0回答:1

数据为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 具有正确的值。然而似乎没有任何作用 我已经尽可能简化了策略,尝试将索引更改为日期时间索引,但是修复错误的尝试都没有成功

python algorithmic-trading back-testing
1个回答
0
投票

你发现问题了吗? 我也有同样的情况

© www.soinside.com 2019 - 2024. All rights reserved.