1.14K 浏览
0

回测执行

api.wait_update()的时候
遇到了
single positional indexer is out-of-bounds的问题.
错误栈如下
Traceback (most recent call last):
File “/Users/dy/Documents/dev/quant/tqsdk-rl/src/main.py”, line 22, in <module>
main()
File “/Users/dy/Documents/dev/quant/tqsdk-rl/src/main.py”, line 17, in main
policy.load_policy(‘r_breaker’).backtest(api._auth, symbol, start_dt=datetime.date(
File “/Users/dy/Documents/dev/quant/tqsdk-rl/src/policies/example/r_breaker.py”, line 110, in backtest
self.run(api, symbol)
File “/Users/dy/Documents/dev/quant/tqsdk-rl/src/policies/example/r_breaker.py”, line 48, in run
api.wait_update()
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/api.py”, line 1895, in wait_update
self._run_until_task_done(task=update_task, deadline=deadline)
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/baseApi.py”, line 88, in _run_until_task_done
self._run_once()
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/baseApi.py”, line 57, in _run_once
raise self._exceptions.pop(0)
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/backtest/backtest.py”, line 189, in _run
await self._send_diff()
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/backtest/backtest.py”, line 318, in _send_diff
“quotes”: self._continuous_table._get_history_cont_quotes(self._trading_day)
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/backtest/utils.py”, line 27, in _get_history_cont_quotes
quotes = {k: {“underlying_symbol”: df.iloc[0][k]} for k in df.columns if k.startswith(“KQ.m”)}
File “/opt/miniconda3/lib/python3.9/site-packages/tqsdk/backtest/utils.py”, line 27, in <dictcomp>
quotes = {k: {“underlying_symbol”: df.iloc[0][k]} for k in df.columns if k.startswith(“KQ.m”)}
File “/opt/miniconda3/lib/python3.9/site-packages/pandas/core/indexing.py”, line 967, in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
File “/opt/miniconda3/lib/python3.9/site-packages/pandas/core/indexing.py”, line 1520, in _getitem_axis
self._validate_integer(key, axis)
File “/opt/miniconda3/lib/python3.9/site-packages/pandas/core/indexing.py”, line 1452, in _validate_integer
raise IndexError(“single positional indexer is out-of-bounds”)

可能是在tqsdk/backtest/utils.py的位置以为传入了空的dataframe导致的df.iloc[0]没办法被call

李思恒 已回答的问题 2022年9月19日
0

只是看这个有点难找到问题是什么,有稳定的最简代码吗

李思恒 已回答的问题 2022年9月19日
您正在查看1个答案中的1个,单击此处查看所有答案。