14522262e6
Reset del progetto su fondamenta verificate dopo la scoperta che l'intera libreria "validata OOS" era artefatto di feed contaminato (print fantasma del feed Cerbero TESTNET + storico Binance/USDT). - Storico ricostruito da Deribit MAINNET (ccxt pubblico, tokenless) e CERTIFICATO (certify_feed.py): BTC/ETH puliti su TUTTA la storia (mediana 2-6 bps vs Coinbase USD), integrita' OHLC + coerenza resample (maxΔ 0.00) + cross-venue OK. Alt esclusi (illiquidi/divergenti: LTC/DOGE 50-82% barre flat; XRP/BNB non certificabili). - Verdetto sul feed pulito: FADE / PAIRS / XS01 / TSM01 morti (ogni portafoglio Sharpe -2.3..-3.0, DD ~40%); solo SH01 e frammenti HONEST con segnale residuo, da ri-validare in isolamento. - Cleanup "restart pulito": strategie, stack live (src/live, src/portfolio, runner/executor, yml, docker), ~100 script ricerca/gate, waste/games/ portfolios, dati non certificati + cache e 60+ diari -> archiviati in Old/ (preservati, non cancellati). Diario consolidato in un unico documento. - Skeleton ricerca tenuto: Strategy ABC + indicatori + src/fractal + src/backtest/engine + load_data; tool dati certificati (rebuild_history, certify_feed, audit_feed, multi_source_check). - Universo dati ATTIVO: solo BTC/ETH (5m/15m/1h); guardrail fisico (load_data su alt -> FileNotFoundError). Esecuzione DISABILITATA, conto flat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
79 lines
4.6 KiB
YAML
79 lines
4.6 KiB
YAML
# 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:
|
|
# DISATTIVATA 2026-06-18: la verifica su dati REALI (Binance spot + perp Deribit
|
|
# MAINNET) ha mostrato che le 6 fade NON hanno edge sui prezzi veri (tutte negative
|
|
# ogni anno, Sharpe -3..-5) -> il +1000% "validato OOS" era un artefatto dei print
|
|
# fantasma del feed testnet Cerbero. Micro-test fermato e conto flattato a mano.
|
|
# Tenuta a false come blindatura: un 'docker compose up'/deploy NON deve riprendere
|
|
# a tradere reale finche' non ri-validiamo l'intera libreria su dati reali.
|
|
enabled: false
|
|
# 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
|