模拟交易报错-使用系统自带模版多因子线性
由bqo3no0w创建,最终由bqo3no0w 被浏览 5 用户
https://bigquant.com/codesharev3/ce236996-89a0-4ffe-a6df-2e6222bd14b9
这是系统自带的多因子线性策略,平台运行没问题,提交模拟交易报错如下:
025-12-18 14:45:02 任务运行开始调度 state=trigger event= 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf ..
2025-12-18 14:45:10 任务运行状态更新 state=scheduled event=20251217 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf
2025-12-18 14:45:15 [error ] httpx_request error taskruns 401
2025-12-18 14:45:18 任务运行状态更新 state=running event=20251217 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf
2025-12-18 14:45:18 [info ] run task_id='184e6a2b-3ada-4f7f-b0ee-b16b96d921cf' ..
2025-12-18 14:45:18 [info ] fetch task 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf ..
2025-12-18 14:45:18 [info ] start 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf ..
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
[2025-12-18 14:45:19] INFO: cn_stock_basic_selector.v8 开始运行 ..
[2025-12-18 14:45:20] INFO: cn_stock_basic_selector.v8 命中缓存
[2025-12-18 14:45:20] INFO: cn_stock_basic_selector.v8 运行完成 [0.843s].
[2025-12-18 14:45:20] INFO: input_features_dai.v30 开始运行 ..
[2025-12-18 14:45:20] INFO: input_features_dai.v30 命中缓存
[2025-12-18 14:45:20] INFO: input_features_dai.v30 运行完成 [0.036s].
[2025-12-18 14:45:20] INFO: score_to_position.v4 开始运行 ..
[2025-12-18 14:45:20] INFO: score_to_position.v4 命中缓存
[2025-12-18 14:45:20] INFO: score_to_position.v4 运行完成 [0.034s].
[2025-12-18 14:45:20] WARNING: cache disabled for paper/live trading for bound date
[2025-12-18 14:45:20] INFO: extract_data_dai.v20 开始运行 ..
[2025-12-18 14:45:20] WARNING: start_date='2025-12-17', end_date='2025-12-17', query_start_date='2025-09-18 00:00:00' (支持加速 升级资源) ..
[2025-12-18 14:45:22] INFO: data extracted: (3, 5)
[2025-12-18 14:45:22] INFO: extract_data_dai.v20 运行完成 [2.071s].
[2025-12-18 14:45:23] INFO: bigtrader.v47 开始运行 ..
[2025-12-18 14:45:23] INFO: got metadata extra from input datasource
[2025-12-18 14:45:23] INFO: read input 'data' ..
[2025-12-18 14:45:23] INFO: pybacktest run 2025-12-17 ~ 2025-12-17, , equity, instruments=3
[2025-12-18 14:45:23] INFO: bigtrader module V2.2.0
[2025-12-18 14:45:23] INFO: bigtrader engine v0.1.0.post21+gf44a778 2025-11-26
[2025-12-18 14:45:24] INFO: pybacktest read history data done, run backtest ...
[2025-12-18 14:45:24] INFO: pybacktest done, raw_perf_ds:dai.DataSource("_37e24e58ff634dc19e138f331eb3bace")
2025-12-18 14:45:26 任务运行状态更新 state=failed event=20251217 184e6a2b-3ada-4f7f-b0ee-b16b96d921cf
Traceback (most recent call last):
File "/var/app/enabled/aiflowtaskrun.py", line 643, in
run(run_id=sys.argv[1], task_id=sys.argv[2], event_name=sys.argv[3], dry_run=sys.argv[4])
File "/var/app/enabled/aiflowtaskrun.py", line 638, in run
raise ex from ex
File "/var/app/enabled/aiflowtaskrun.py", line 625, in run
do_run(run_id, task_id, event_name)
File "/var/app/enabled/aiflowtaskrun.py", line 574, in do_run
pm.execute_notebook(
File "/opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/papermill/execute.py", line 134, in execute_notebook
raise_for_execution_errors(nb, output_path)
File "/opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/papermill/execute.py", line 241, in raise_for_execution_errors
raise error
papermill.exceptions.PapermillExecutionError:
---------------------------------------------------------------------------
Exception encountered at "In [1]":
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/bigtrader/mdata/data_reader.py:94, in get_symbol_df(***failed resolving arguments***)
KeyError: '600051.SH'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File dist/build/bigtrader/v47/init.py:446, in v47.post_run()
File dist/build/bigtrader/v47/performance.py:177, in v47.performance.show_performance()
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/pandas/core/frame.py:4096, in DataFrame.getitem(self, key)
4095 key = list(key)
-> 4096 indexer = self.columns._get_indexer_strict(key, "columns")[1]
4098 # take() does not accept boolean indexers
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/pandas/core/indexes/base.py:6200, in Index._get_indexer_strict(self, key, axis_name)
6198 keyarr, indexer, new_indexer = self._reindex_non_unique(keyarr)
-> 6200 self._raise_if_missing(keyarr, indexer, axis_name)
6202 keyarr = self.take(indexer)
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/pandas/core/indexes/base.py:6249, in Index._raise_if_missing(self, key, indexer, axis_name)
6248 if nmissing == len(indexer):
-> 6249 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
6251 not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())
KeyError: "None of [Index(['策略收益率', '基准收益率'], dtype='object')] are in the [columns]"
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
Cell In[1], line 127
114 m4 = M.extract_data_dai.v20(
115 sql=m3.data,
116 start_date="""2020-01-01""",
(...)
123 m_name="""m4"""
124 )
126 # @module(position="-615,-513", comment="""交易,日线,设置初始化函数和K线处理函数,以及初始资金、基准等""")
--> 127 m5 = M.bigtrader.v47(
128 data=m4.data,
129 start_date="""""",
130 end_date="""""",
131 initialize=m5_initialize_bigquant_run,
132 before_trading_start=m5_before_trading_start_bigquant_run,
133 handle_tick=m5_handle_tick_bigquant_run,
134 handle_data=m5_handle_data_bigquant_run,
135 handle_trade=m5_handle_trade_bigquant_run,
136 handle_order=m5_handle_order_bigquant_run,
137 after_trading=m5_after_trading_bigquant_run,
138 capital_base=200000,
139 frequency="""daily""",
140 product_type="""股票""",
141 rebalance_period_type="""交易日""",
142 rebalance_period_days="""1""",
143 rebalance_period_roll_forward=True,
144 backtest_engine_mode="""标准模式""",
145 before_start_days=0,
146 volume_limit=1,
147 order_price_field_buy="""open""",
148 order_price_field_sell="""open""",
149 benchmark="""沪深300指数""",
150 plot_charts=True,
151 debug=False,
152 backtest_only=False,
153 m_name="""m5"""
154 )
155 #
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/bigmodule/modules.py:28, in call(self, **kwargs)
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/bigmodule/moduleinvoker.py:218, in module_invoke(name, version, kwargs)
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/bigmodule/moduleinvoker.py:190, in _module_invoke(name, version, kwargs)
File dist/build/bigtrader/v47/init.py:449, in v47.post_run()
File /opt/pyenv/versions/3.11.8/lib/python3.11/site-packages/structlog/_native.py:146, in _make_filtering_bound_logger..make_method..meth(self, event, *args, **kw)
143 if not args:
144 return self._proxy_to_logger(name, event, **kw)
--> 146 return self._proxy_to_logger(name, event % args, **kw)
TypeError: not all arguments converted during string formatting