回测执行
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