b8c9430bd7
Primo candidato da molte ondate a superare marginale-ADDS, deflated-Sharpe 0.95, tre null avversariali e il test di lag, con corr ~0 a TUTTI e 5 gli sleeve attivi. COS'E'. Il meccanismo congelato di STATARB-RESID (W=45, sgn=+1, residuo OLS causale su BTC, z-score, tanh, vol-target 20%) applicato ai 50 alt HL, con posizioni DEMEANATE cross-sezionalmente ogni giorno. Il demeaning annulla ALGEBRICAMENTE la gamba BTC comune — sum(p_i-p̄)(r_i-r_btc) = sum(p_i-p̄)r_i — quindi non e' un paniere di coppie ma una strategia cross-sectional dollar-neutral, e l'ampiezza effettiva passa da 4.5 a 37.4. NB: non e' nato da un'idea nuova ma dalla DIAGNOSI di un fallimento (l'ampiezza effettiva 4.5 indicava un fattore comune da togliere). NUMERI (2.6 anni): Sharpe netta 1.82 (lorda 2.70), maxDD -2.6%, vol 2.3%. GATE: marginale ADDS (robust_oos + beats_noise_null + non-hedge + has_insample_edge); deflated-Sharpe 0.985 PASS; corr TP01 0.060 / XS01 -0.019 / VRP01 -0.001 / SKH01 0.001 / GTAA01 0.071; book a w=15% HOLD 2.36 -> 2.51, DD invariato. SCETTICO (r0725_statarb_demean_skeptic.py): 3 null A FEE-NEUTRALE (permutazione cross-sezionale / casuale / temporale a blocchi) centrati a ~0.01, candidato lordo 2.70 sopra il MASSIMO di 300 estrazioni (p<0.004); lag 1.82/1.19/0.81/0.51 a +0/1/2/3g = decadimento dolce di segnale lento, non firma di look-ahead; non ridondante con XS-momentum semplice (corr 0.17-0.29). Nota di metodo: i null vanno confrontati A FEE ZERO — permutare un segnale ne fa esplodere il turnover, quindi a fee piene il null perderebbe per COSTO invece che per assenza di informazione (p-value trionfale e falso). NON NEL BOOK, 3 motivi dichiarati: (a) storia 2.6a monoregime e CRESCENTE (Sh 2024 1.03 / 2025 1.98 / 2026 3.11) -> edge recente; (b) weights_tilt_null FALLITO (gate_pass=False a 10% e 15%); (c) margine di costo sottile — 1.82 a 0.05%/gamba, 0.93 a 0.10%, NEGATIVA a 0.20%, turnover 38.5% del lordo/g su 50 alt anche illiquidi con slippage NON modellato (rischio #1). ESEGUIBILITA': ticket/gamba $1.73 a $600 (sotto min-order $5 -> STAT-MODE oggi), $5.76 a $2000, $14.41 a $5000 -> diventa reale a ~$5k, non ai ~$20k di XS01. CABLATO: scripts/live/paper_xsr.py (config CONGELATA, 3 libri MODELED $2000 / REAL $600 / REAL $5000 con min-order per gamba, stato append-only) in cron_daily.sh; gate PRE-REGISTRATO a forward-day 0 (r0725_xsr_deploy_gate.py): decisione 2026-10-23, deploy solo se Sharpe>=1.0 E haircut di eseguibilita' a $5000 <=40% (se sfonda -> RITIRO a prescindere dallo Sharpe). tests/test_paper_xsr.py: 7 casi che bloccano config, dollar-neutralita', causalita' dello step, min-order e la trappola dei timestamp tz-aware (astype int64 -> epoche 1970, gemella di quella dell'ondata 2026-07-01). Book e pesi INVARIATI. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
78 lines
1.7 KiB
Plaintext
78 lines
1.7 KiB
Plaintext
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
.venv/
|
|
.env
|
|
!.env.example
|
|
.env.ibgw
|
|
!.env.ibgw.example
|
|
.vscode/
|
|
.idea/
|
|
.DS_Store
|
|
data/raw/
|
|
data/processed/
|
|
*.log
|
|
*.pkl
|
|
*.pt
|
|
*.pth
|
|
notebooks/.ipynb_checkpoints/
|
|
data/paper_trades/
|
|
data/portfolio_paper/
|
|
data/portfolio_paper_stats/
|
|
data/portfolios/
|
|
# watermark fondi del reconciler (stato runtime, contiene il balance)
|
|
data/funds_watch.json
|
|
|
|
# stato locale di tooling (non condiviso)
|
|
.claude/
|
|
.omc/
|
|
|
|
# dati regime (DVOL/funding/feature cache, rigenerabili)
|
|
data/regime/
|
|
_disp_scratch/
|
|
data/regime/dispersion_features.parquet
|
|
|
|
# storico catena opzioni importato da cerbero-bite (rigenerabile: options_fetcher.py)
|
|
data/options/
|
|
data/_reset_backup/
|
|
|
|
# game artifacts (log/json di scripts/games e gate)
|
|
data/games/
|
|
.env.mainnet
|
|
|
|
# archived data (mirrors top-level data/ ignores, which are top-level-anchored)
|
|
Old/data/
|
|
Old/**/__pycache__/
|
|
# run logs (rigenerabili dagli script)
|
|
logs/
|
|
|
|
# cache della ricerca trackE (rigenerabile)
|
|
.cache_trackE_*.npy
|
|
|
|
# feed backup pre-rebuild (binari rigenerabili, NON in git) + stato paper trader (runtime)
|
|
data/_feed_backup/
|
|
data/paper_trend/
|
|
data/paper_portfolio/
|
|
|
|
# output grezzo dello sweep di ricerca xsec (rigenerabile dagli script in runs/)
|
|
scripts/research/xsec/runs/out/
|
|
|
|
# blind-signal derived data (regenerable via make_blind.py)
|
|
data/blind/
|
|
scripts/research/blind/leaderboard.json
|
|
|
|
# forward-monitor runtime state (regenerable, forward-only)
|
|
data/paper_prevday/
|
|
data/paper_combo/
|
|
data/paper_statarb/
|
|
data/paper_xsr/
|
|
|
|
# log esecuzioni del book live (stato runtime, contiene fill/fee del conto reale)
|
|
data/live/
|
|
|
|
# dati esterni di ricerca (on-chain CoinMetrics community, F&G) — non certificati, non in git
|
|
data/external/
|
|
data/options_daily/
|