62e272255b
Punti 5-6 dell'improvement-sweep 2026-06-06 (protezione capitale + osservabilita'): Punto 5 — disaster bracket: - ExecutionClient.place_disaster_sl: STOP_MARKET reduce-only a ~-30% dall'ingresso (trigger mark price), piazzato a ogni REAL_OPEN (MR01/MR02/MR07/DIP01) e cancellato in _real_close. Assicurazione outage: il poll-loop in except lascia le posizioni reali senza valutazione exit (ETH gap max storico 33%/1h). In operativita' normale non scatta mai -> 0 costo Sharpe. real_dsl_order_id persistito (resume-safe). Config overrides.execution.disaster_sl_pct (0.30). - NB: set_stop_loss di cerbero-mcp e' un private/edit Deribit (solo ordini APERTI) -> non usabile su market fillati; il bracket e' un trigger order autonomo via place_order(type=stop_market). Cancel di un trigger order risponde 'untriggered' (= successo, verificato testnet: re-cancel -> order_not_found). - Runner: alert Telegram FEED_OUTAGE dopo 5 poll falliti consecutivi (elenco posizioni reali aperte) + notifica RIPRESO con durata. Punto 6 — osservabilita': - in_position nei _save() di TR01/ROT02/TSM01; hourly_report: sezione MULTI-ASSET (book | ultimo flip | freschezza status) — prima i 3 worker erano invisibili (collect() filtra su event/in_position che non emettevano); esclusi dalla tabella IN CORSO (assume entry/bars single-leg). - live_shadow_smoke esteso: scenari C/D SHORT (TP-resting BUY mai esercitato prima) + disaster bracket in tutti gli scenari. Verifiche: 72/72 test; smoke testnet 4 scenari verdi (DSL piazzato/cancellato due lati, zero ordini orfani sul book, conto flat); multi_asset_section renderizza sui dati live. Diario docs/diary/2026-06-07-sweep-fixes.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
1.9 KiB
YAML
35 lines
1.9 KiB
YAML
# Config LIVE del paper trader a portafoglio. Seleziona UN portafoglio attivo
|
||
# (definito in scripts/portfolios/_defs.py) e ne fa l'override dei parametri operativi.
|
||
active: PORT06 # default raccomandato: master + shape
|
||
overrides:
|
||
total_capital: 2000
|
||
weighting: cap # equal | cap | inverse_vol | cluster_rp | manual
|
||
# NB: questo dict SOSTITUISCE interamente i caps di _defs.py (setattr in
|
||
# base.py:load_active_portfolio) → va ridichiarato COMPLETO. Il cap SHAPE
|
||
# 0.0588 (mitigazione coda SH01, 2026-06-05) era stato perso per questo.
|
||
caps: {PAIRS: 0.33, SHAPE: 0.0588}
|
||
leverage: 2 # sobrio per il live reale
|
||
rebalance: 1D
|
||
poll_seconds: 60
|
||
# Frazione di capitale-sleeve per posizione (canonico backtest = 0.15).
|
||
# 0.5 con leva 2x = 100% della fetta impegnata quando in posizione (max impiego
|
||
# dei 2K senza debito di margine). NB: il DD scala ~lineare (~×3.3 vs validato).
|
||
position_size: 0.5
|
||
# Esecuzione REALE su Deribit testnet, in SHADOW (sim + reale in parallelo).
|
||
# I 7 single-leg con TP/SL in metadata: 6 fade (MR01/MR02/MR07 x BTC/ETH) +
|
||
# DIP01 BTC (attivato 2026-06-04: stesso wiring StrategyWorker, TP limit resting
|
||
# incluso). Ordini sui LINEARI USDC (payoff lineare = matematica del backtest;
|
||
# fee/PnL in USDC). Gli altri sleeve (pairs/rotation/tsmom/shape) restano
|
||
# simulati: pairs richiede executor a 2 gambe, shape non ha TP (orizzonte puro).
|
||
execution:
|
||
enabled: true
|
||
sleeves: [MR01, MR02, MR07, DIP01]
|
||
instruments:
|
||
BTC: BTC_USDC-PERPETUAL
|
||
ETH: ETH_USDC-PERPETUAL
|
||
# Disaster-bracket on-book (2026-06-07): STOP_MARKET reduce-only a ~-30%
|
||
# dall'ingresso, piazzato a ogni REAL_OPEN e cancellato alla chiusura.
|
||
# Assicurazione per gli outage (runner fermo = exit non valutati); in
|
||
# operativita' normale non scatta mai -> 0 costo Sharpe. 0 = disattivo.
|
||
disaster_sl_pct: 0.30
|