Skip to content

SpreadQuoteAggregator FuturesSpread error #3116

@q351941406

Description

@q351941406

When I subscribed to the leg contracts and combination contracts (no data) of futures, and attempted to submit an order for the combination contract, I encountered an error. The AI indicated that this error suggests the SpreadQuoteAggregator invoked the Greeks calculator while trying to construct the QuoteTick for the combination contract, but a required parameter was None. This typically occurs with option spread contracts rather than futures spread contracts.


2025-10-27T16:09:38.704831802Z [INFO] BACKTESTER-001.MessageBus: config.database=None
2025-10-27T16:09:38.704843052Z [INFO] BACKTESTER-001.MessageBus: config.encoding='msgpack'
2025-10-27T16:09:38.704845052Z [INFO] BACKTESTER-001.MessageBus: config.timestamps_as_iso8601=False
2025-10-27T16:09:38.704846094Z [INFO] BACKTESTER-001.MessageBus: config.buffer_interval_ms=None
2025-10-27T16:09:38.704852594Z [INFO] BACKTESTER-001.MessageBus: config.autotrim_mins=None
2025-10-27T16:09:38.704853719Z [INFO] BACKTESTER-001.MessageBus: config.use_trader_prefix=True
2025-10-27T16:09:38.704854719Z [INFO] BACKTESTER-001.MessageBus: config.use_trader_id=True
2025-10-27T16:09:38.704856011Z [INFO] BACKTESTER-001.MessageBus: config.use_instance_id=False
2025-10-27T16:09:38.704894177Z [INFO] BACKTESTER-001.MessageBus: config.streams_prefix='stream'
2025-10-27T16:09:38.704895511Z [INFO] BACKTESTER-001.MessageBus: config.types_filter=None
2025-10-27T16:09:38.715087636Z [INFO] BACKTESTER-001.Cache: READY
2025-10-27T16:09:38.769239719Z [INFO] BACKTESTER-001.DataEngine: READY
2025-10-27T16:09:38.775051969Z [INFO] BACKTESTER-001.RiskEngine: READY
2025-10-27T16:09:38.776755011Z [INFO] BACKTESTER-001.RiskEngine: TradingState is ACTIVE
2025-10-27T16:09:38.781450261Z [INFO] BACKTESTER-001.Throttler-ORDER_SUBMIT_THROTTLER: READY
2025-10-27T16:09:38.783053594Z [INFO] BACKTESTER-001.RiskEngine: Set MAX_ORDER_SUBMIT_RATE: 100/00:00:01
2025-10-27T16:09:38.783436552Z [INFO] BACKTESTER-001.Throttler-ORDER_MODIFY_THROTTLER: READY
2025-10-27T16:09:38.783497886Z [INFO] BACKTESTER-001.RiskEngine: Set MAX_ORDER_MODIFY_RATE: 100/00:00:01
2025-10-27T16:09:38.789067594Z [INFO] BACKTESTER-001.ExecEngine: READY
2025-10-27T16:09:38.794425136Z [INFO] BACKTESTER-001.ExecEngine: config.snapshot_orders=False
2025-10-27T16:09:38.794476136Z [INFO] BACKTESTER-001.ExecEngine: config.snapshot_positions=False
2025-10-27T16:09:38.794494386Z [INFO] BACKTESTER-001.ExecEngine: config.snapshot_positions_interval_secs=None
2025-10-27T16:09:38.828541761Z [INFO] BACKTESTER-001.Cache: Cached 0 general objects from database
2025-10-27T16:09:38.829408594Z [INFO] BACKTESTER-001.Cache: Cached 0 currencies from database
2025-10-27T16:09:38.829989011Z [INFO] BACKTESTER-001.Cache: Cached 0 instruments from database
2025-10-27T16:09:38.831170344Z [INFO] BACKTESTER-001.Cache: Cached 0 accounts from database
2025-10-27T16:09:38.831715011Z [INFO] BACKTESTER-001.Cache: Cached 0 orders from database
2025-10-27T16:09:38.832570386Z [INFO] BACKTESTER-001.Cache: Cached 0 order lists from database
2025-10-27T16:09:38.835091219Z [INFO] BACKTESTER-001.Cache: Cached 0 positions from database
2025-10-27T16:09:38.840057052Z [INFO] BACKTESTER-001.Cache: Checking data integrity
2025-10-27T16:09:38.843693177Z [INFO] BACKTESTER-001.Cache: Integrity check passed in 3461μs
2025-10-27T16:09:38.850721802Z [INFO] BACKTESTER-001.ExecEngine: Loaded cache in 53ms
2025-10-27T16:09:38.871114177Z [INFO] BACKTESTER-001.OrderEmulator: READY
2025-10-27T16:09:38.884780052Z [INFO] BACKTESTER-001.BACKTESTER-001: READY
2025-10-27T16:09:38.917258386Z [INFO] BACKTESTER-001.spread-composite: READY
2025-10-27T16:09:38.923526011Z [INFO] BACKTESTER-001.ExecEngine: Registered OMS.UNSPECIFIED for Strategy spread-composite-001
2025-10-27T16:09:38.923806427Z [INFO] BACKTESTER-001.BACKTESTER-001: Registered Strategy spread-composite-001
2025-10-27T16:09:38.938238927Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): OmsType=HEDGING
2025-10-27T16:09:38.950445136Z [INFO] BACKTESTER-001.ExecClient-SHFE: READY
2025-10-27T16:09:38.961900552Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Registered ExecutionClient-SHFE
2025-10-27T16:09:38.962565344Z [INFO] BACKTESTER-001.ExecEngine: Registered ExecutionClient-SHFE
2025-10-27T16:09:38.975065469Z [INFO] BACKTESTER-001.DataClient-SHFE: READY
2025-10-27T16:09:38.977998636Z [INFO] BACKTESTER-001.DataEngine: Registered SHFE
2025-10-27T16:09:39.392425136Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2501.SHFE and created matching engine
2025-10-27T16:09:39.392647969Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2503.SHFE and created matching engine
2025-10-27T16:09:39.393309261Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2505.SHFE and created matching engine
2025-10-27T16:09:39.393365178Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2507.SHFE and created matching engine
2025-10-27T16:09:39.393400511Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2509.SHFE and created matching engine
2025-10-27T16:09:39.393427594Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2511.SHFE and created matching engine
2025-10-27T16:09:39.393473761Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2601.SHFE and created matching engine
2025-10-27T16:09:39.393522344Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2603.SHFE and created matching engine
2025-10-27T16:09:39.393553094Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2605.SHFE and created matching engine
2025-10-27T16:09:39.393582553Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument a2607.SHFE and created matching engine
2025-10-27T16:09:39.393710594Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2511_((1))a2601.SHFE and created matching engine
2025-10-27T16:09:39.393755428Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2511_((1))a2603.SHFE and created matching engine
2025-10-27T16:09:39.393804886Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2511_((1))a2605.SHFE and created matching engine
2025-10-27T16:09:39.394019719Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2511_((1))a2607.SHFE and created matching engine
2025-10-27T16:09:39.394058928Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2511_((1))a2609.SHFE and created matching engine
2025-10-27T16:09:39.394098969Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2601_((1))a2603.SHFE and created matching engine
2025-10-27T16:09:39.394148094Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2601_((1))a2605.SHFE and created matching engine
2025-10-27T16:09:39.394212969Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2601_((1))a2607.SHFE and created matching engine
2025-10-27T16:09:39.394282511Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2601_((1))a2609.SHFE and created matching engine
2025-10-27T16:09:39.394342011Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2603_((1))a2605.SHFE and created matching engine
2025-10-27T16:09:39.394397928Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2603_((1))a2607.SHFE and created matching engine
2025-10-27T16:09:39.394479761Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2603_((1))a2609.SHFE and created matching engine
2025-10-27T16:09:39.394568136Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2605_((1))a2607.SHFE and created matching engine
2025-10-27T16:09:39.394642719Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2605_((1))a2609.SHFE and created matching engine
2025-10-27T16:09:39.394720428Z [INFO] BACKTESTER-001.SimulatedExchange(SHFE): Added instrument (1)a2607_((1))a2609.SHFE and created matching engine
2025-10-27T16:09:39.395045761Z [INFO] BACKTESTER-001.DataClient-backtest_default_client: READY
2025-10-27T16:09:39.395121219Z [INFO] BACKTESTER-001.DataEngine: Registered backtest_default_client
2025-10-27T16:09:41.049233553Z [INFO] BACKTESTER-001.Portfolio: Updated AccountState(account_id=SHFE-001, account_type=MARGIN, base_currency=CNY, is_reported=True, balances=[AccountBalance(total=1_000_000.00 CNY, locked=0.00 CNY, free=1_000_000.00 CNY)], margins=[], event_id=0f2c22ae-306e-4da6-98ed-4f3263dfc073)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-SHFE: Connecting...
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-SHFE: Connected
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-SHFE: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-backtest_default_client: Connecting...
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-backtest_default_client: Connected
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataClient-backtest_default_client: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataEngine: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.RiskEngine: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.ExecClient-SHFE: Connecting...
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.ExecClient-SHFE: Connected
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.ExecClient-SHFE: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.ExecEngine: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.DataEngine: Connecting all clients...
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.ExecEngine: Connecting all clients...
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.OrderEmulator: No emulated orders to reactivate
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.OrderEmulator: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.Portfolio: Initialized 0 open orders
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.Portfolio: Initialized 0 open positions
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: self.config.oms_type=None
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: self.config.external_order_claims=None
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: self.config.manage_gtd_expiry=False
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: Set ClientOrderIdGenerator client_order_id count to 0
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: Set ClientOrderIdGenerator order_list_id count to 0
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 策略启动
DEBUG: > TEXT '{"status": 0, "msg": "\u7b56\u7565\u542f\u5... "2025-10-28 00:09:41"}' [91 bytes]
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.BACKTESTER-001: RUNNING
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 检查合约移仓换月
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2511_((1))a2601.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2511_((1))a2603.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2511_((1))a2605.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2511_((1))a2607.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2511_((1))a2609.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2601_((1))a2603.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2601_((1))a2605.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2601_((1))a2607.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2601_((1))a2609.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2603_((1))a2605.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2603_((1))a2607.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2603_((1))a2609.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2605_((1))a2607.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2605_((1))a2609.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: (1)a2607_((1))a2609.SHFE 是一个价差合约,不订阅
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: [CMD]--> SubscribeQuoteTicks(instrument_id=a2601.SHFE, client_id=None, venue=SHFE)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 订阅主合约: a2601
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: [CMD]--> SubscribeQuoteTicks(instrument_id=a2603.SHFE, client_id=None, venue=SHFE)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 订阅次合约: a2603
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: [CMD]--> SubscribeQuoteTicks(instrument_id=(1)a2601_((1))a2603.SHFE, client_id=None, venue=SHFE)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.SpreadQuoteAggregator: READY
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 订阅组合合约: FuturesSpread(id=(1)a2601_((1))a2603.SHFE, raw_symbol=(1)a2601_((1))a2603, asset_class=COMMODITY, instrument_class=FUTURES_SPREAD, exchange=SHFE, quote_currency=CNY, underlying=a, strategy_type=CALENDAR, activation=1970-01-01T00:00:00.000Z, expiration=2262-04-11T23:47:16.854Z, price_precision=0, price_increment=1, multiplier=10, lot_size=1, margin_init=0.07, margin_maint=0.07, maker_fee=0.000001, taker_fee=0.000001, info={'raw_instrument_id': 'SP a2601&a2603'})
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: [CMD]--> SubscribeQuoteTicks(instrument_id=(1)a2601_((1))a2603.SHFE, client_id=None, venue=SHFE)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 订阅组合合约: FuturesSpread(id=(1)a2601_((1))a2603.SHFE, raw_symbol=(1)a2601_((1))a2603, asset_class=COMMODITY, instrument_class=FUTURES_SPREAD, exchange=SHFE, quote_currency=CNY, underlying=a, strategy_type=CALENDAR, activation=1970-01-01T00:00:00.000Z, expiration=2262-04-11T23:47:16.854Z, price_precision=0, price_increment=1, multiplier=10, lot_size=1, margin_init=0.07, margin_maint=0.07, maker_fee=0.000001, taker_fee=0.000001, info={'raw_instrument_id': 'SP a2601&a2603'})
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: [CMD]--> SubscribeQuoteTicks(instrument_id=(1)a2601_((1))a2603.SHFE, client_id=None, venue=SHFE)
2025-07-01T00:00:00.000000000Z [INFO] BACKTESTER-001.spread-composite: 订阅组合合约: FuturesSpread(id=(1)a2601_((1))a2603.SHFE, raw_symbol=(1)a2601_((1))a2603, asset_class=COMMODITY, instrument_class=FUTURES_SPREAD, exchange=SHFE, quote_currency=CNY, underlying=a, strategy_type=CALENDAR, activation=1970-01-01T00:00:00.000Z, expiration=2262-04-11T23:47:16.854Z, price_precision=0, price_increment=1, multiplier=10, lot_size=1, margin_init=0.07, margin_maint=0.07, maker_fee=0.000001, taker_fee=0.000001, info={'raw_instrument_id': 'SP a2601&a2603'})
2025-10-28 00:09:41.929 | DEBUG | data_tool.strategy_tool:init:77 - 从缓存加载卡尔曼滤波器状态: a2601-a2603
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite: ✅ 套利净利润充足,此单预期利润:20.00,开平总手续费:8.17,净利润:133.91,应不低于20.00,可以开仓。
DEBUG: % sending keepalive ping
DEBUG: > PING de 0b 36 79 [binary, 4 bytes]
DEBUG: < PONG de 0b 36 79 [binary, 4 bytes]
DEBUG: % received keepalive pong
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite: <--[EVT] OrderInitialized(instrument_id=(1)a2601_((1))a2603.SHFE, client_order_id=O-20250701-045900-001-001-1, side=SELL, type=LIMIT, quantity=1, time_in_force=GTC, post_only=False, reduce_only=False, quote_quantity=False, options={'price': '6', 'display_qty': None, 'expire_time_ns': 0}, emulation_trigger=NO_TRIGGER, trigger_instrument_id=None, contingency_type=NO_CONTINGENCY, order_list_id=None, linked_order_ids=None, parent_order_id=None, exec_algorithm_id=None, exec_algorithm_params=None, exec_spawn_id=None, tags=['正常提交'])
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite:
========== 当前持仓详情 ==========

==============================

DEBUG: > TEXT '{"status": 0, "msg": "\u6536\u5230\u6301\u4... "2025-10-28 00:10:11"}' [103 bytes]
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.CompositeSpreadStrategy: [CMD]--> [Risk] SubmitOrder(order=LimitOrder(SELL 1 (1)a2601_((1))a2603.SHFE LIMIT @ 6 GTC, status=INITIALIZED, client_order_id=O-20250701-045900-001-001-1, venue_order_id=None, position_id=None, tags=['正常提交']), position_id=None)
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite: <--[EVT] OrderSubmitted(instrument_id=(1)a2601_((1))a2603.SHFE, client_order_id=O-20250701-045900-001-001-1, account_id=SHFE-001, ts_event=1751345940041000000)
DEBUG: > TEXT '{"status": 0, "msg": "\u4ea4\u5272\u5355\u5... "2025-10-28 00:10:11"}' [519 bytes]
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite:
========== 当前持仓详情 ==========

==============================

DEBUG: > TEXT '{"status": 0, "msg": "\u6536\u5230\u6301\u4... "2025-10-28 00:10:11"}' [103 bytes]
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.Portfolio: (1)a2601_((1))a2603.SHFE margin_init=4.20 CNY
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.Portfolio: Updated AccountState(account_id=SHFE-001, account_type=MARGIN, base_currency=CNY, is_reported=False, balances=[AccountBalance(total=1_000_000.00 CNY, locked=4.20 CNY, free=999_995.80 CNY)], margins=[MarginBalance(initial=4.20 CNY, maintenance=0.00 CNY, instrument_id=(1)a2601_((1))a2603.SHFE)], event_id=0196014d-dfa5-4dfd-bf9a-087375ba75ab)
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite: <--[EVT] OrderAccepted(instrument_id=(1)a2601_((1))a2603.SHFE, client_order_id=O-20250701-045900-001-001-1, venue_order_id=SHFE-16-001, account_id=SHFE-001, ts_event=1751345940041000000)
DEBUG: > TEXT '{"status": 0, "msg": "\u4ea4\u5272\u5355\u5... "2025-10-28 00:10:11"}' [562 bytes]
2025-07-01T04:59:00.041000000Z [INFO] BACKTESTER-001.spread-composite:
========== 当前持仓详情 ==========

==============================

DEBUG: > TEXT '{"status": 0, "msg": "\u6536\u5230\u6301\u4... "2025-10-28 00:10:11"}' [103 bytes]
2025-07-01T00:00:00.000000000Z [ERROR] BACKTESTER-001.BacktestNode: Error running backtest
TypeError(float() argument must be a string or a real number, not 'NoneType')
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/nautilus_trader/backtest/node.py", line 463, in run
result = self._run(
^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/nautilus_trader/backtest/node.py", line 493, in _run
self._run_streaming(
File "/app/.venv/lib/python3.12/site-packages/nautilus_trader/backtest/node.py", line 577, in _run_streaming
engine.run(
File "nautilus_trader/backtest/engine.pyx", line 1299, in nautilus_trader.backtest.engine.BacktestEngine.run
File "nautilus_trader/backtest/engine.pyx", line 1516, in nautilus_trader.backtest.engine.BacktestEngine._run
File "nautilus_trader/backtest/engine.pyx", line 1610, in nautilus_trader.backtest.engine.BacktestEngine._advance_time
File "nautilus_trader/backtest/engine.pyx", line 1674, in nautilus_trader.backtest.engine.BacktestEngine._process_raw_time_event_handlers
File "", line 69, in cfunc.to_py.__Pyx_CFunc_c2a4e3__15nautilus_trader_8backtest_6models_10aggregat__etc_to_py_4self_5event.wrap
File "nautilus_trader/backtest/models/aggregator.pyx", line 122, in nautilus_trader.backtest.models.aggregator.SpreadQuoteAggregator._build_quote
File "nautilus_trader/model/greeks.pyx", line 160, in nautilus_trader.model.greeks.GreeksCalculator.instrument_greeks

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions