python-3.x - TypeError: 不支持的操作数类型 -: 'str' 和 'DateOffset'
问题描述
我正在尝试使用回测功能进行金融交易。
问题是当我将自己的数据“price_data”输入到他们的函数中时,抱怨操作数类型。
预先感谢您对我们的支持!
!pip install bt
import bt
print(EURUSD_df[['close']])
close
2018-01-01 1.20580
2018-01-02 1.20144
2018-01-03 1.20683
2018-01-04 1.20297
2018-01-07 1.19687
... ...
2018-12-27 1.14448
2018-12-30 1.14649
2019-01-01 1.13447
2019-01-02 1.13942
2019-01-03 1.13951
[262 rows x 1 columns]
price_data=EURUSD_df[['close']]
bt_strategy = bt.Strategy('EMA_crossover',
[bt.algos.WeighTarget(signal),
bt.algos.Rebalance()])
bt_backtest = bt.Backtest(bt_strategy,price_data)
bt_result = bt.run(bt_backtest)
bt_result.plot(title='Backtest result')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-34-11f7c3d37d7c> in <module>()
----> 1 bt_backtest = bt.Backtest(bt_strategy,price_data)
2 bt_result = bt.run(bt_backtest)
3 bt_result.plot(title='Backtest result')
1 frames
/usr/local/lib/python3.7/dist-packages/bt/backtest.py in _process_data(self, data, additional_data)
173 np.nan,
174 columns=data.columns,
--> 175 index=[data.index[0] - pd.DateOffset(days=1)],
176 ),
177 data,
TypeError: unsupported operand type(s) for -: 'str' and 'DateOffset'
解决方案
推荐阅读
- .net - 在 JScript 中,为什么我不能使用 HashTable 的枚举器或键?
- angular - 在兄弟姐妹Angular 6之间传递对象的最佳方式
- java - 从 JTextFields 将 Iteger 转换为字符串输入
- operating-system - 为什么我的安装程序在使用 /norestart 标志时不运行?
- javascript - maxLength is not a function
- html - HTML 水平滚动无法正常工作
- html - 使前面带有图标的文本与下一行的文本垂直对齐
- google-cloud-platform - Apache Beam 滑动窗口
- wakanda - 无法通过 Wakanda 4D Mobile 连接到 4D 服务器
- python - 使用 Python 将 SQL Server 数据库加载到内存中