Jeroen Grusewski
0ed2cfdff3
fix(exec): UCITS live-run 478/10349 + false-EXECUTED (Mon 2026-07-20)
...
The first live UCITS paper run on bizworx reported EXECUTED/exit-0 but was
degraded: the IEF->CBU0 leg got 0 fills and DBMF hung Submitted.
- Error 478 (contract conflict): the ISIN-qualified UCITS contract kept a
localSymbol/secId conflicting with the pinned conId (requested CBU0 vs
canonical CSBGU0). Strip secId/secIdType/localSymbol after resolve and route
by conId + SMART.
- Error 10349 (TIF preset): the bare MarketOrder had no TIF so the account
preset forced DAY + cancel/reconfirm. Set explicit tif="DAY".
- False-success (the dangerous one): plan.executed counted Cancelled/Submitted
legs as placed, and exec-record booked on any non-blocked run. Now executed
requires EVERY leg filled; a degraded run prints DEGRADED, exits 1, and
skips exec-track booking so the reconciliation gate stays WAIT (never books a
phantom rebalance) — real money errs false-WAIT.
Tests: new test_ucits_exec_fill_status.py + degraded cases in test_execution.py
and test_execute_multistrat_b2a.py (TDD failing-first). 523 exec/forward/gate
tests green, mypy clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-20 09:20:47 +00:00
..
2026-06-23 15:13:27 +02:00
2026-06-14 23:35:59 +02:00
2026-06-22 11:16:06 +02:00
2026-07-11 20:22:54 +02:00
2026-07-16 00:07:48 +02:00
2026-07-16 09:55:37 +02:00
2026-07-16 09:03:59 +02:00
2026-06-21 20:18:38 +02:00
2026-07-13 13:24:20 +02:00
2026-07-10 00:12:17 +02:00
2026-07-13 13:24:20 +02:00
2026-07-13 11:41:51 +02:00
2026-06-15 00:20:48 +02:00
2026-06-24 20:21:06 +02:00
2026-06-23 22:45:14 +02:00
2026-07-13 21:27:42 +02:00
2026-07-11 00:58:52 +02:00
2026-06-28 16:17:41 +02:00
2026-07-10 10:09:43 +02:00
2026-07-13 20:51:59 +02:00
2026-06-26 23:19:51 +02:00
2026-07-10 11:06:37 +02:00
2026-07-11 02:15:02 +02:00
2026-06-14 17:11:58 +02:00
2026-07-02 12:51:39 +02:00
2026-06-23 13:38:51 +02:00
2026-07-14 00:30:20 +02:00
2026-07-13 22:17:04 +02:00
2026-07-16 00:07:48 +02:00
2026-07-11 20:10:12 +02:00
2026-07-11 00:48:59 +02:00
2026-06-26 00:32:46 +02:00
2026-07-11 01:27:15 +02:00
2026-06-14 20:06:52 +02:00
2026-07-14 00:30:20 +02:00
2026-06-14 16:45:36 +02:00
2026-06-19 19:38:19 +02:00
2026-06-15 11:10:13 +02:00
2026-06-13 17:56:19 +02:00
2026-06-15 00:38:17 +02:00
2026-07-14 19:45:48 +02:00
2026-06-15 00:23:05 +02:00
2026-07-14 00:51:52 +02:00
2026-07-16 16:31:27 +02:00
2026-06-22 08:08:47 +02:00
2026-06-14 19:54:57 +02:00
2026-06-23 00:37:58 +02:00
2026-07-16 12:49:30 +02:00
2026-06-18 10:01:36 +02:00
2026-07-14 09:48:00 +02:00
2026-06-17 12:24:29 +02:00
2026-07-16 13:02:34 +02:00
2026-07-15 00:02:25 +02:00
2026-06-28 14:05:18 +02:00
2026-07-15 19:31:16 +02:00
2026-07-09 00:02:20 +02:00
2026-07-16 09:11:07 +02:00
2026-07-16 09:11:07 +02:00
2026-07-10 02:11:52 +02:00
2026-06-14 12:23:09 +02:00
2026-07-09 14:16:18 +02:00
2026-07-09 13:37:00 +02:00
2026-07-10 01:34:35 +02:00
2026-07-10 02:11:52 +02:00
2026-07-09 14:16:18 +02:00
2026-07-14 20:17:44 +02:00
2026-07-15 22:35:57 +02:00
2026-07-15 22:35:57 +02:00
2026-07-15 22:35:57 +02:00
2026-06-14 20:06:52 +02:00
2026-07-14 00:30:20 +02:00
2026-06-13 19:09:08 +02:00
2026-07-14 23:32:37 +02:00
2026-07-20 09:20:47 +00:00
2026-07-16 12:42:59 +02:00
2026-07-14 00:51:52 +02:00
2026-06-17 00:22:38 +02:00
2026-06-21 23:32:36 +02:00
2026-07-18 11:15:55 +02:00
2026-06-21 19:33:15 +02:00
2026-06-22 09:17:01 +02:00
2026-06-14 19:54:08 +02:00
2026-06-13 02:01:04 +02:00
2026-06-14 23:05:03 +02:00
2026-07-14 18:38:28 +02:00
2026-07-18 11:30:00 +02:00
2026-06-26 08:07:42 +02:00
2026-07-14 15:20:57 +02:00
2026-07-13 22:17:04 +02:00
2026-07-14 16:34:17 +02:00
2026-07-13 22:35:33 +02:00
2026-07-14 10:21:53 +02:00
2026-07-13 12:50:32 +02:00
2026-07-14 10:38:15 +02:00
2026-06-13 02:06:30 +02:00
2026-06-22 19:56:51 +02:00
2026-06-21 19:45:32 +02:00
2026-06-21 19:33:15 +02:00
2026-06-21 21:06:01 +02:00
2026-07-14 00:51:52 +02:00
2026-07-14 00:51:52 +02:00
2026-06-14 11:45:42 +02:00
2026-06-09 13:52:32 +02:00
2026-06-21 20:14:30 +02:00
2026-07-15 22:35:57 +02:00
2026-07-09 14:16:18 +02:00
2026-06-14 17:29:37 +02:00
2026-07-16 07:30:34 +02:00
2026-07-16 09:22:19 +02:00
2026-06-22 09:22:07 +02:00
2026-06-09 19:20:23 +02:00
2026-06-14 23:21:08 +02:00
2026-07-10 10:17:52 +02:00
2026-07-13 22:17:04 +02:00
2026-07-14 10:38:15 +02:00
2026-07-16 08:58:01 +02:00
2026-07-14 10:38:15 +02:00
2026-07-13 21:56:23 +02:00
2026-06-23 09:04:18 +02:00
2026-06-14 17:11:58 +02:00
2026-06-14 16:46:05 +02:00
2026-07-18 11:15:55 +02:00
2026-06-23 10:53:15 +02:00
2026-06-21 23:29:30 +02:00
2026-06-28 14:04:03 +02:00
2026-06-14 17:39:29 +02:00
2026-06-22 20:22:31 +02:00
2026-06-21 10:37:05 +02:00
2026-06-14 23:18:09 +02:00
2026-07-09 21:22:06 +02:00
2026-06-14 16:46:45 +02:00
2026-06-14 17:29:37 +02:00
2026-06-19 19:49:46 +02:00
2026-07-20 09:20:47 +00:00
2026-07-16 12:28:25 +02:00
2026-07-16 12:28:25 +02:00
2026-06-22 08:18:22 +02:00
2026-06-22 20:22:31 +02:00
2026-06-20 20:11:07 +02:00
2026-06-13 02:24:41 +02:00
2026-07-16 09:03:59 +02:00
2026-06-22 16:59:24 +02:00
2026-06-25 01:39:07 +02:00
2026-07-15 09:49:45 +02:00
2026-07-13 00:36:11 +02:00
2026-07-15 09:55:55 +02:00
2026-07-15 09:49:45 +02:00
2026-07-12 22:48:11 +02:00
2026-07-13 00:15:36 +02:00
2026-06-15 00:34:55 +02:00
2026-06-15 00:28:40 +02:00
2026-07-14 14:57:08 +02:00
2026-06-21 23:37:58 +02:00
2026-06-23 13:38:51 +02:00
2026-06-21 20:16:15 +02:00
2026-07-15 10:32:30 +02:00
2026-07-16 10:23:09 +02:00