Files
PythagorasGoal/portfolios.yml
T
Adriano Dal Pastro 0b900a5420 feat(live): SH01 in esecuzione reale shadow (diversificatore decorrelato)
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>
2026-06-08 11:18:06 +00:00

52 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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