问答交流

模拟交易报错-使用系统自带模版多因子线性

由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

标签

模拟交易
{link}