# Shadow report 2026-10-11 Generated 2026-10-11T21:44:39.871755253Z. Shadow running since 2026-10-09T09:45:47.416208355Z (2.5 days). Simulation only: no order was sent to Kraken. Capital EUR 1000.00 per strategy; DCA types also get EUR 50.00 a week. Fees: maker 0.40%, taker 0.80%. > Days or weeks of shadow data prove MECHANICS (decisions, fills, fees, parity, restarts), not edge. Sharpe/Calmar below a year of data are noise (SE of an annualised Sharpe ~ sqrt((1+SR^2/2)/years)); separating a strategy from DCA needs 16-44 years of data (doc/STRATEGY_SELECTION.md section 7). ## Summary | Strategy | Ref | Equity EUR (bid) | Contributed | P&L EUR | TWR % | vs DCA bench pp | Max DD % | Sharpe | Calmar | n too small | Fills (maker/taker) | Maker fill rate | Slippage bps | Cost % | Fees EUR | Misses | Parity | Kill | |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| | s1-dca-maker | S1 | 1050.05 | 1050.00 | 0.05 | +0.00 | -0.02 | 0.00 | 0.00 | n/a | YES (n=3, SE 11.0) | 1 (0/1) | 0% of 4 | 1.0 | 0.810 | 0.12 | 4 | OK 1/1 | ok | | s2-ma-dca-maker | S2 | 1050.04 | 1050.00 | 0.04 | +0.00 | -0.02 | 0.00 | 0.00 | n/a | YES (n=3, SE 11.0) | 1 (0/1) | 0% of 4 | 1.0 | 0.810 | 0.08 | 4 | OK 1/1 | ok | | s3-trend-btc-maker | S3 | 1007.61 | 1000.00 | 7.61 | +0.76 | +0.74 | 0.00 | 11.03 | n/a | YES (n=3, SE 86.7) | 14 (14/0) | 100% of 1 | -0.1 | 0.399 | 3.98 | 0 | OK 3/3 | ok | | s4-constmix-maker | S4 | 1004.69 | 1000.00 | 4.69 | +0.47 | +0.45 | 0.00 | 11.03 | n/a | YES (n=3, SE 86.7) | 9 (9/0) | 100% of 2 | -0.5 | 0.395 | 1.99 | 0 | OK 3/3 | ok | | bench-bh-btc | BENCH | 1004.69 | 1000.00 | 4.69 | +0.47 | +0.45 | 0.68 | -2.34 | n/a | YES (n=3, SE 21.3) | 1 (0/1) | n/a | 2.0 | 0.820 | 7.90 | 0 | OK 3/3 | ok | | bench-dca-taker | BENCH | 1050.22 | 1050.00 | 0.22 | +0.02 | n/a | 0.04 | -2.80 | n/a | YES (n=3, SE 24.5) | 2 (0/2) | n/a | 2.1 | 0.821 | 0.39 | 0 | OK 1/1 | ok | `*` = marked at the last daily close because no fresh bid was available. Slippage is signed vs the mid at order time (positive = worse than mid; maker fills are usually negative). Cost % = fee + slippage per EUR traded. ## Market data | Pair | Stale now | Bid | Ask | Book age s | Trades age s | Stale events | Errors | Daily candles | Last closed bar | |---|---|---|---|---|---|---|---|---|---| | ETHEUR | no | 2257.99000 | 2258.14000 | 7 | 7 | 0 | 0 | 722 | 2026-10-10T00:00:00Z | | XBTEUR | no | 74566.40000 | 74570.30000 | 7 | 7 | 0 | 0 | 722 | 2026-10-10T00:00:00Z | ## s1-dca-maker (S1): Weekly DCA BTC 70 / ETH 30, post-only maker limits - Execution MAKER; 1 decisions, last: 2026-W41: BUY; open orders 1, gave up 0. - Equity EUR 1050.05 (cash 1035.07), P&L EUR 0.05, vs DCA benchmark EUR -0.17 (same cash flows). - Traded EUR 14.81, fees EUR 0.12, maker cost n/a%, taker cost 0.810%, post-only rejects 1, misses 4. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 1. Parity: OK 1/1. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 1/1 | 100% | | maker fill rate over 8 weeks | INSUFFICIENT_DATA | 0.0% after 0.4 weeks | >= 50% (else move the limit to the bid) | | no lost or doubled DCA week | OK | 0 lost, 0 doubled | 0 / 0 | Promotion gate paper -> small real (performance is deliberately NOT a criterion): not yet | Item | Status | Value | Required | |---|---|---|---| | days of shadow running | NOT_YET | 2.5 | >= 90 | | DCA cycles | NOT_YET | 0 | >= 8 | | 100% decision parity | PASS | 1/1 | 100% | | maker cost per fill (fee + slippage vs mid) | NOT_YET | n/a | <= 0.45% | | taker cost per fill incl. spread | PASS | 0.8% | <= 0.95% | | maker fill rate | FAIL | 0.0% | >= 50% | | idempotency / reconciliation incidents | PASS | 0 (ledger rows 1 vs fills 1) | 0 | Last decisions: - 2026-W41 (bar 2026-10-08, decided 586 min after close): BUY BUY_EUR BTC 35.00, BUY_EUR ETH 15.00 ## s2-ma-dca-maker (S2): MA-scaled weekly DCA BTC 70 / ETH 30, k=2.0, SMA200, monthly cap 2x, maker - Execution MAKER; 1 decisions, last: 2026-W41: BUY; open orders 1, gave up 0. - Equity EUR 1050.04 (cash 1039.57), P&L EUR 0.04, vs DCA benchmark EUR -0.18 (same cash flows). - Traded EUR 10.35, fees EUR 0.08, maker cost n/a%, taker cost 0.810%, post-only rejects 1, misses 4. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 1. Parity: OK 1/1. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 1/1 | 100% | | weeks in a row at the 4x clamp | OK | 0 | <= 8 | | cumulative spend vs plain DCA | OK | 21% of plain DCA (EUR 10.43 vs 50) | <= 130% | | no lost or doubled DCA week | OK | 0 lost, 0 doubled | 0 / 0 | Promotion gate paper -> small real (performance is deliberately NOT a criterion): not yet | Item | Status | Value | Required | |---|---|---|---| | days of shadow running | NOT_YET | 2.5 | >= 90 | | DCA cycles | NOT_YET | 0 | >= 8 | | 100% decision parity | PASS | 1/1 | 100% | | maker cost per fill (fee + slippage vs mid) | NOT_YET | n/a | <= 0.45% | | taker cost per fill incl. spread | PASS | 0.8% | <= 0.95% | | maker fill rate | FAIL | 0.0% | >= 50% | | idempotency / reconciliation incidents | PASS | 0 (ledger rows 1 vs fills 1) | 0 | Last decisions: - 2026-W41 (bar 2026-10-08, decided 586 min after close): BUY BUY_EUR BTC 25.46, BUY_EUR ETH 10.48 ## s3-trend-btc-maker (S3): Trend filter BTC SMA100 vol-sized (target 50%), maker, daily - Execution MAKER; 3 decisions, last: 2026-10-10: BUY(fraction=1.0000) -> no trade; open orders 0, gave up 0. - Equity EUR 1007.61 (cash 0.00), P&L EUR 7.61. - Traded EUR 996.02, fees EUR 3.98, maker cost 0.399%, taker cost n/a%, post-only rejects 1, misses 0. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 14. Parity: OK 3/3. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 3/3 | 100% | | avg realised cost per fill | OK | 0.4% over 14 fills | <= 0.45% over >= 10 fills | | maker fill rate | INSUFFICIENT_DATA | 100.0% over 1 orders | >= 50% over >= 10 orders | | sleeve drawdown | OK | 0.0% | <= 55% | | fills in any 12 months | OK | 1 | <= 30 | Promotion gate paper -> small real (performance is deliberately NOT a criterion): not yet | Item | Status | Value | Required | |---|---|---|---| | days of shadow running | NOT_YET | 2.5 | >= 90 | | decisions that traded (any side) | NOT_YET | 2 | >= 6 | | 100% decision parity | PASS | 3/3 | 100% | | maker cost per fill (fee + slippage vs mid) | PASS | 0.4% | <= 0.45% | | maker fill rate | PASS | 100.0% | >= 50% | | idempotency / reconciliation incidents | PASS | 0 (ledger rows 14 vs fills 14) | 0 | Last decisions: - 2026-10-08 (bar 2026-10-08, decided 586 min after close): BUY(fraction=1.0000) -> trade TARGET_WEIGHT BTC 1.0000 - 2026-10-09 (bar 2026-10-09, decided 5 min after close): BUY(fraction=1.0000) -> trade TARGET_WEIGHT BTC 1.0000 - 2026-10-10 (bar 2026-10-10, decided 5 min after close): BUY(fraction=1.0000) -> no trade ## s4-constmix-maker (S4): Constant mix BTC 35/ETH 15 / EUR 50, band 10pp, maker, daily - Execution MAKER; 3 decisions, last: 2026-10-10: HOLD; open orders 0, gave up 0. - Equity EUR 1004.69 (cash 500.00), P&L EUR 4.69. - Traded EUR 498.01, fees EUR 1.99, maker cost 0.395%, taker cost n/a%, post-only rejects 0, misses 0. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 9. Parity: OK 3/3. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 3/3 | 100% | | rebalances in 12 months | OK | 2 | <= 12 | | realised cost per rebalance (% of traded notional) | OK | 0.4% | <= 0.5% | Promotion gate paper -> small real (performance is deliberately NOT a criterion): not yet | Item | Status | Value | Required | |---|---|---|---| | days of shadow running | NOT_YET | 2.5 | >= 90 | | decisions that traded (any side) | NOT_YET | 2 | >= 6 | | 100% decision parity | PASS | 3/3 | 100% | | maker cost per fill (fee + slippage vs mid) | PASS | 0.4% | <= 0.45% | | maker fill rate | PASS | 100.0% | >= 50% | | idempotency / reconciliation incidents | PASS | 0 (ledger rows 9 vs fills 9) | 0 | Last decisions: - 2026-10-08 (bar 2026-10-08, decided 586 min after close): REBALANCE TARGET_WEIGHT BTC 0.3500, TARGET_WEIGHT ETH 0.1500 - 2026-10-09 (bar 2026-10-09, decided 5 min after close): REBALANCE TARGET_WEIGHT BTC 0.3500, TARGET_WEIGHT ETH 0.1500 - 2026-10-10 (bar 2026-10-10, decided 5 min after close): HOLD ## bench-bh-btc (BENCH): Buy and hold BTC (market buy on day 1) - Execution TAKER; 3 decisions, last: 2026-10-10: HOLD; open orders 0, gave up 0. - Equity EUR 1004.69 (cash 4.78), P&L EUR 4.69. - Traded EUR 987.32, fees EUR 7.90, maker cost n/a%, taker cost 0.820%, post-only rejects 0, misses 0. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 1. Parity: OK 3/3. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 3/3 | 100% | | benchmark | INFO | no kill criteria | - | Last decisions: - 2026-10-08 (bar 2026-10-08, decided 586 min after close): BUY TARGET_WEIGHT BTC 1.0000 - 2026-10-09 (bar 2026-10-09, decided 5 min after close): HOLD - 2026-10-10 (bar 2026-10-10, decided 5 min after close): HOLD ## bench-dca-taker (BENCH): Plain weekly DCA BTC 70 / ETH 30 at market (taker) - Execution TAKER; 1 decisions, last: 2026-W41: BUY; open orders 0, gave up 0. - Equity EUR 1050.22 (cash 1000.24), P&L EUR 0.22. - Traded EUR 49.37, fees EUR 0.39, maker cost n/a%, taker cost 0.821%, post-only rejects 0, misses 0. - Data: 0 stale waits in 0 episodes, 0 missed periods, 0 incidents, ledger rows 2. Parity: OK 1/1. Kill criteria (STRATEGY_SELECTION.md section 6): | Criterion | Status | Value | Threshold | |---|---|---|---| | decision parity with offline replay | OK | 1/1 | 100% | | benchmark | INFO | no kill criteria | - | Last decisions: - 2026-W41 (bar 2026-10-08, decided 586 min after close): BUY BUY_EUR BTC 35.00, BUY_EUR ETH 15.00 ## How to read this - What it can show: that live decisions equal the offline replay (parity), that maker orders fill at the expected rate and cost, that restarts neither skip nor double a period, and how stale the data feed gets. - What it cannot show: whether any strategy is better than DCA. The backtest already says none is, out-of-sample; a few weeks of returns are dominated by the market's direction, not by the strategy. - Fills are simulated from public trades: a resting limit fills only when the tape prints through it, which ignores our own market impact and queue position beyond the configured haircut.