Im从binance中提取一个ticker并生成一个数据帧
然后,我使用talib向df添加不同的指标
但是当我尝试做一个回溯测试时,它给了我这个错误
enter code here
klines = client.get_historical_klines("BNBUSDT", Client.KLINE_INTERVAL_1DAY, "1 jul, 2021")
df=pd.DataFrame(klines)
df.rename(columns={df.columns[0]: 'open time', df.columns[1]: 'open',df.columns[2]: 'high',df.columns[3]: 'low',df.columns[4]: 'close',df.columns[5]: 'volume'},inplace=True)
import bt
# Define the strategy
bt_strategy = bt.Strategy('AboveSMA',
[bt.algos.SelectWhere(df["close"]> df["MA30"]),
bt.algos.WeighEqually(),
bt.algos.Rebalance()])
# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, df["close"])
bt_result = bt.run(bt_backtest)
# Plot the backtest result
bt_result.plot(title='Backtest result')
plt.show()
以下是一个可能的解决方案:
步骤1:从Binance获取数据并执行TA计算
pandas.DataFrame
talib
操作(此处:SMA
)输出,步骤1:
步骤2:使用来自bt的反向测试
df
对象派生的数据帧李>输出
display()
:输出
plot()
:相关问题 更多 >
编程相关推荐