You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用backtesting.py回测时Sharpe、Sortino、Calmar比率均为0的问题排查

回测中Sharpe/Sortino/Calmar比率为0的排查问题
  • 使用backtesting.py实现简单均线交叉策略回测时,Sharpe比率、Sortino比率和Calmar比率均显示为0
  • 对比测试:使用库自带的日频GOOG测试数据集、yfinance获取的AAPL数据集(自动加载索引)时,这三个比率能正常显示数值

已做的时间戳处理操作

推测问题与自定义CSV数据集的时间戳列有关,当前时间戳处理代码:

btc['timestamp'] = pd.to_datetime(btc['timestamp'], format="%d/%m/%Y %H:%M")
btc.set_index('timestamp', inplace=True)

回测策略代码

def SMA(values, n):
   return pd.Series(values).rolling(n).mean()

class SmaCross(Strategy):
  n1 = 5
  n2 = 10

  def init(self):
    self.sma1 = self.I(SMA, self.data.Close, self.n1)
    self.sma2 = self.I(SMA, self.data.Close, self.n2)

  def next(self):
    if crossover(self.sma1, self.sma2):
      self.position.close()
      self.buy(size=1)
    elif crossover(self.sma2, self.sma1):
      self.position.close()
      self.sell(size=1)

bt = Backtest(btc, SmaCross, cash = 1000000)
stats = bt.run()
print(stats)

已提供的辅助排查材料

  • 数据集子集
  • 回测结果截图
  • 数据头部信息截图
  • 数据信息截图

内容的提问来源于stack exchange,提问作者jkerror404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:02:43