Тема
Harvester knob comparison — 3 sweeps on session 1778073881466125560
Setup
- Capture session:
1778073881466125560-directional(186 MB ws_market, 31 KB rtds, ~3.5 h span) - Strategy fixed: directional, side=winning, min_probability=0.94, min_size=5, exit=0.99, budget_per_market=$5
- What varies: entry_mode + entry_price_base + offset + post_only + max_entry_price (only test 1 and 3 share post-only=true at max=0.99)
| Test | entry_mode | entry_price_base | offset | post_only | max_entry_price |
|---|---|---|---|---|---|
| 1 — knob raise | limit | best-bid | +1¢ | true | 0.99 |
| 2 — market-cross | market | (taker) | (n/a) | false | 0.99 |
| 3 — best-ask improver | limit | best-ask | −1¢ | true | 0.99 |
Results
| Metric | Test 1 (post-only +1¢) | Test 2 (market-cross) | Test 3 (best-ask −1¢) |
|---|---|---|---|
| Frames processed | 10,524,550 | 10,524,550 | 10,524,550 |
| RTDS events available in capture | 199 | 199 | 199 |
| Decisions emitted | 123 | 113 | 98 |
| Orders placed | 123 | 113 | 98 |
| Fills simulated | 2 | 2 | 1 |
| Fill rate (fills/orders) | 1.6% | 1.8% | 1.0% |
| Realised PnL | −$9.78 | −$9.78 | −$4.85 |
| Unrealised PnL | $0 | $0 | $0 |
| Avg slippage bps | 0 | 0 | 0 |
| Duration (replay wall-time) | 515 s | 432 s | 518 s |
Reports at:
.tmp/test1-knob-raise/test1_knob_raise/report.json.tmp/test2-market-cross/test2_market_cross/report.json.tmp/test3-best-ask-improver/test3_best_ask_improver/report.json
Read
Admission rate ranking (decisions, higher = more candidates pass filters)
Test 1 (limit best-bid +1¢ post-only) 123 ← most permissive at 0.99 cap
Test 2 (market-cross) 113
Test 3 (limit best-ask -1¢ post-only) 98 ← strictest at 0.99 capВсе три открывают значительно больше candidates чем production-baseline MAX=0.98 + best-bid+1¢ который в исходном sweep test давал 39 decisions. Поднятие cap'a до 0.99 примерно 3× admission rate.
Fill rate is low because window is short
Замер depth в harvester-depth-summary-2026-05-06.md показал что fillable depth at ≤ 0.95 — 0.7% asset coverage. Эта capture session — 3.5 часа на ~1300 assets. Простая арифметика: ожидаемые fills ≈ 0.7% × 100 orders × 0.5 (наша orders на ≤0.95-0.99) = ~0.35 fills. Получили 1-2 — на верхней границе.
Realised PnL отрицательный из-за обрубленного hold-периода
Все 3 теста купили (1-2 buy fills), ни один не продал (fills_count_sell=0). Harvester дизайн: купил @ 0.97, держим, продали @ 0.99 при разрешении рынка через часы/дни. В 3.5-часовом окне sell-side fills не успевают произойти (требуется toxic flow на нашем asset_id с ценой ≥ 0.99).
realized_pnl = -$9.78 отражает cost-basis открытых позиций, а не реальный round-trip убыток. На полном horizon (24-72h capture) sell-fills должны дойти и PnL флипнется в плюс при разрешении в нашу сторону, или в минус при stop-loss/неблагоприятном движении.
Какие сравнения ВАЛИДНЫ из этого замера
| Сравнение | Verdict |
|---|---|
| Какой config admits больше candidates | Test 1 (123) > Test 2 (113) > Test 3 (98). Все 3 ~3× от baseline 0.98. |
| Какой config даёт более высокий fill rate | Test 2 (market-cross, 1.8%) ≈ Test 1 (1.6%) > Test 3 (1.0%). Не статистически значимо при N=2 fills. |
| Какой config зарабатывает в 3.5h | None — все три закончили session с открытыми позициями. |
Что потребуется для economic ranking
- Capture session ≥ 24-48 h с RTDS events (post-fix). Текущая maximum post-fix session = 3.5 h.
- OR mock-fill engine на book deltas — synthetic trades из book updates (proposal earlier), чтобы short capture могла дать fills.
- OR replay multiple parallel sessions для bigger sample.
Артефакты
- Grids:
grids/test1-knob-raise.toml,grids/test2-market-cross.toml,grids/test3-best-ask-improver.toml - Run logs: stdout from
pm-analytics sweep(executor placed order events visible in container output) - Determinism: replay hashes deterministic per config (commit
daa00b6partial-tail tolerant reader fixed multi-frame reading mid-session).