# Config LIVE del trader a portafoglio. Seleziona UN portafoglio attivo # (definito in scripts/portfolios/_defs.py) e ne fa l'override dei parametri operativi. # # ============ MICRO-TEST MAINNET — soldi VERI (Fase 1, 2026-06-17) ============ # Conversione da testnet a mainnet Deribit (vedi docs/specs/mainnet-microtest-plan.md). # Capitale REALE €500 (periodo di prova; poi si scala col verdetto ledger-vs-backtest). # Eseguono reale SOLO le 6 fade (MR01/MR02/MR07 x BTC/ETH, 15m) + DIP01 (BTC 1h); # pairs/SH01/multi-asset -> PAPER (sola statistica, fuori dal pool/conto). Il token # mainnet arriva da .env.mainnet (env_file del servizio). Ledger ripartito da ZERO: # lo storico testnet e' archiviato in data/_reset_backup/pre_mainnet_20260617-205943.tgz. active: PORT06 overrides: # CAPITALE REALE del micro-test (era 2000 su testnet). €500 = minimo del piano # (rumore arrotondamento BTC ~5-6%); si sale dopo il verdetto ledger-vs-backtest. total_capital: 500 # equal-weight: nel pool REALE restano solo FADE (6) + DIP01 (1) -> 1/7 ciascuno. # I cap PAIRS/SHAPE non servono piu' (quelle famiglie sono PAPER, fuori dal pool). weighting: equal # Leva 3x (scelta utente 2026-06-17 per il micro-test = config che vogliamo deployare, # frontiera ACCEL50). NB su soldi veri al capitale minimo: DD pieno (alt prudente 2x). leverage: 3 rebalance: 1D poll_seconds: 60 # Gate feed CONGELATO: su mainnet l'arbitraggio tiene il feed vivo (niente freeze come # sul testnet), lo lascio attivo come rete di sicurezza (non scattera' su BTC/ETH # liquidi). 0 = disattivo. feed_freeze_gate_bars: 24 # SLEEVE PAPER (fuori dal pool/pesi/ledger): i €500 si dividono SOLO tra i 7 sleeve # REALI (6 fade + DIP01). Pairs (PR01, 2 gambe) e SH01 fuori dalla Fase 1: a €500 il # rumore di arrotondamento li soffoca (pairs ~30%/gamba; servono ~€5-8k) e aggiungono # superfici d'errore (leg-risk). Multi-asset (TR01/ROT02/TSM01/XS01) paper come sempre. paper_sleeves: [TR01, ROT02, TSM01, XS01, PR01, SH01] # Frazione di capitale-sleeve per posizione (0.5 con leva 3 = 1.5x la fetta impegnata). position_size: 0.5 # Override per-famiglia: irrilevante per il conto reale (i pairs sono PAPER), tenuto # solo perche' i worker pairs in sola-statistica dimensionino come da gate storico. position_size_family: {PAIRS: 0.13} # PAPER_EXTRA (2026-06-18): sleeve paper definiti SOLO qui (NON in _defs.py/PORT06) -> # NON entrano nel backtest canonico/regression-lock. Shadow STAGE 1 del Price Ladder: # GridWorker SIM-only su feed Deribit BTC 1h (NESSUN ordine reale; kind=grid non e' mai # eseguito reale per costruzione). Config = re-gate su dati puliti (branch # price_ladder_research): regime-gate range trend_max 1.5, rd0.20/ru0.06, 6 livelli, # sl0.10/tp0.03. position_size 0.15 PINNATO (canonico validato; senza, erediterebbe il # 0.5 globale del micro-test). Gira in data/portfolio_paper_stats/GRID_BTC/. paper_extra: - sid: GRID_BTC kind: grid name: GRID asset: BTC tf: "1h" cluster: BTC-rev params: {tf: "1h", range_down: 0.20, range_up: 0.06, levels: 6, sl_buf: 0.10, tp_buf: 0.03, max_bars: 720, regime: range, trend_max: 1.5, position_size: 0.15} # Esecuzione REALE su Deribit MAINNET. Solo i 7 single-leg con TP/SL in metadata: # 6 fade (MR01/MR02/MR07 x BTC/ETH 15m) + DIP01 (BTC 1h). Ordini sui LINEARI USDC # (payoff lineare = matematica del backtest; fee/PnL in USDC). execution: enabled: true # SOLO fade + DIP01 in Fase 1 (SH01 e pairs -> paper, vedi paper_sleeves). sleeves: [MR01, MR02, MR07, DIP01] instruments: BTC: BTC_USDC-PERPETUAL ETH: ETH_USDC-PERPETUAL # niente esecuzione a 2 gambe in Fase 1 (pairs sono paper). pairs_enabled: false # Disaster-bracket on-book (~-30%) a ogni apertura: assicurazione per gli outage # del runner. In operativita' normale non scatta mai -> 0 costo. 0 = disattivo. disaster_sl_pct: 0.30 # REAL-TRUTH: equity/ribilanci/sizing derivano dai FILL REALI (fee reali incluse), # non dal sim. Il sim resta solo diagnostica nel log CLOSE. real_truth: true