0b900a5420
L'infrastruttura no-TP esisteva gia': _place_real_tp ritorna subito senza TP, _real_close chiude tutta la quota a market reduce-only (exit a orizzonte H=12). Bastava: (1) _exec_for accetta kind 'ml', (2) SH01 in execution.sleeves. Disaster-bracket on-book = unica protezione di coda di SH01 (esce a H=12 ben prima del -30%). Motivo: SH01 e' il diversificatore piu' decorrelato (corr 0.07) — senza i 5 sleeve PAPER il DD del portafoglio sale 3.96->5.35%, OOS Sharpe 8.58->8.27. Test: SH01 open/close reale senza TP + disaster bracket (93/93). Copertura reale ora ~81% (resta paper solo TR01/ROT02/TSM01, bloccati dal capitale). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
3.0 KiB
YAML
52 lines
3.0 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
|
||
# Override per-famiglia (chiave = weighting.family_of). PAIRS 0.20 (2026-06-07):
|
||
# famiglia SENZA stop, validata a esposizione 0.45 (pos 0.15 lev 3) — a 0.5×2=1.0
|
||
# girava a ~2.2x il validato (ETH/BTC DD grezzo 78%; ADA/ETH live -4.26% sleeve in
|
||
# un trade). A 0.20×2=0.40 ≈ validato: PORT06 OOS DD 3.40→1.26%, costo OOS Sharpe
|
||
# 9.05→8.43 (assicurazione, come il cap SHAPE). Gate: pairspos_port06_impact.py.
|
||
position_size_family: {PAIRS: 0.20}
|
||
# 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
|
||
# SH01 aggiunto 2026-06-08: e' il diversificatore piu' decorrelato (corr 0.07,
|
||
# senza di lui il DD del portafoglio sale 3.96->5.35%). Single-leg, esce a
|
||
# orizzonte H=12 (no TP/SL) -> _place_real_tp no-op, _real_close market reduce-only;
|
||
# disaster-bracket on-book = unica protezione di coda durante outage.
|
||
sleeves: [MR01, MR02, MR07, DIP01, SH01]
|
||
instruments:
|
||
BTC: BTC_USDC-PERPETUAL
|
||
ETH: ETH_USDC-PERPETUAL
|
||
LTC: LTC_USDC-PERPETUAL
|
||
ADA: ADA_USDC-PERPETUAL
|
||
SOL: SOL_USDC-PERPETUAL
|
||
# Esecuzione REALE a 2 gambe per i pairs (PairsExecutionClient, 2026-06-08).
|
||
# Long A / short B sui lineari USDC, con unwind se una gamba sola filla (leg-risk).
|
||
# ATTIVATO 2026-06-08 a conto flat (smoke testnet end-to-end verificato).
|
||
pairs_enabled: true
|
||
# 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
|