From 67f7b89e4cc7a720f9331fb0b68753d5f4c7824f Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Fri, 17 Jul 2026 15:42:10 +0000 Subject: [PATCH] =?UTF-8?q?chore(live):=20ritira=20paper=5Ftrend=20inerte?= =?UTF-8?q?=20->=20Old/=20=E2=80=94=20sostituito=20da=20paper=5Fportfolio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il paper trader standalone TP01 (paper_trend.py) era inerte dal 2026-06-19 (n_bars=0), non in cron, e sostituito da paper_portfolio (TP01+XS01, gira ogni giorno). Archiviato in Old/scripts/live/ e stato congelato rimosso. Book live INTATTO: shadow.py legge PAPER_STATE con guardia .exists() -> degrada a FALLBACK_CAPITAL=2000 (identico allo stato congelato) e paper_pos=None. Dry-run di book_execute identico prima/dopo (conto online, HOLD su BTC/ETH). - git mv scripts/live/paper_trend.py -> Old/scripts/live/paper_trend.py - rm data/paper_trend/ (state inerte, gitignored) - CLAUDE.md: 3 riferimenti -> paper_portfolio + nota di ritiro - live_trend.py + shadow.py: hint/commento fallback legacy aggiornati Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 8 +++++--- {scripts => Old/scripts}/live/paper_trend.py | 0 scripts/live/live_trend.py | 2 +- src/live/shadow.py | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) rename {scripts => Old/scripts}/live/paper_trend.py (100%) diff --git a/CLAUDE.md b/CLAUDE.md index a3c28f4..ac7e6ff 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,7 +38,9 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis (~1.60 → reale ~1.1). Il calcolo per-singolo-TF è leak-free, ma **NON scendere sotto le 12h**: costi+overfitting dominano senza vantaggio (FULL Sh piatto ~1.3 da 12h a 4h; hold-out migliore a 1d). Deploy/paper a **1d**. Diari `2026-06-19-tp01-verification.md` / `-tp01-lookahead-fix-lf.md`. - Paper trader: `scripts/live/paper_trend.py` (1d). Test: `tests/test_trend_portfolio.py`. + Paper/forward: `scripts/live/paper_portfolio.py` (TP01+XS01, 1d). Test: `tests/test_trend_portfolio.py`. + (Il vecchio `paper_trend.py` standalone TP01 è RITIRATO in `Old/scripts/live/` 2026-07-17 — inerte + dal 2026-06-19, non in cron, sostituito da `paper_portfolio`.) Ri-verifica: `scripts/analysis/{verify_tp01,stress_tp01,tp01_lowfreq}.py`. ⚠️ **ANCHOR TIMING-LUCK (2026-07-02, confermato da scettico):** l'hold-out ~0.31 è calcolato sull'ancora daily 00:00 UTC, che è la **migliore delle 24 possibili** (mediana ancore 0.04, banda @@ -399,7 +401,7 @@ src/backtest/harness.py → harness ONESTO (load BTC/ETH, backtest_signals no src/version.py → APP_VERSION (legge il file VERSION) scripts/research/ → ricerca: track{A-I}_*.py + options_vrp_*.py + fetch_dvol.py scripts/portfolio/ → run_portfolio.py (report) + xsec_*.py (ricerca/affinamento XS01) -scripts/live/paper_trend.py → paper trader forward-only di TP01 (1d) (no esecuzione reale) +scripts/live/paper_portfolio.py → paper/forward-only del book attivo TP01+XS01 (1d) (no esecuzione reale) scripts/analysis/ → SOLO i tool dati certificati: rebuild_history.py → (ri)costruisce lo storico da Deribit mainnet (base 5m + resample) certify_feed.py → certifica il feed (integrità, coerenza resample, spike, cross-venue) @@ -424,7 +426,7 @@ uv run python scripts/research/trackD_timing.py # vincitrice su 15 uv run python scripts/analysis/fetch_hyperliquid.py # fetch+certify universo Hyperliquid (Cerbero mainnet) -> data/raw/hl_* uv run python scripts/portfolio/xsec_research.py # ricerca cross-sectional su Hyperliquid (XS01) uv run python scripts/portfolio/run_portfolio.py # report del PORTAFOGLIO attivo (TP01+XS01) -uv run python scripts/live/paper_trend.py # avanza il paper trader TP01 (forward-only, 1d) +uv run python scripts/live/paper_portfolio.py # avanza il paper del book TP01+XS01 (forward-only, 1d) uv run pytest # test ``` diff --git a/scripts/live/paper_trend.py b/Old/scripts/live/paper_trend.py similarity index 100% rename from scripts/live/paper_trend.py rename to Old/scripts/live/paper_trend.py diff --git a/scripts/live/live_trend.py b/scripts/live/live_trend.py index 164dbce..2f2f5c0 100644 --- a/scripts/live/live_trend.py +++ b/scripts/live/live_trend.py @@ -58,7 +58,7 @@ def main(): print("\n PARITA' vs paper trader (target = current_target):") if all(a["paper"] is None for a in r["assets"]): - print(" (paper non inizializzato: avvia scripts/live/paper_trend.py)") + print(" (paper TP01 standalone RITIRATO 2026-07-17: la parita' vive ora in paper_portfolio/shadow)") else: for a in r["assets"]: print(f" {a['asset']}: paper {a['paper']:+.3f}x shadow {a['target']:+.3f}x -> {'OK' if a['parity'] else 'DIFFERISCE'}") diff --git a/src/live/shadow.py b/src/live/shadow.py index 8f02bb5..2132971 100644 --- a/src/live/shadow.py +++ b/src/live/shadow.py @@ -18,6 +18,8 @@ PROJECT_ROOT = Path(__file__).resolve().parents[2] ASSETS = ["BTC", "ETH"] WEIGHT = 0.5 FALLBACK_CAPITAL = 2000.0 +# Fallback LEGACY: lo scrittore (paper_trend.py) e' RITIRATO 2026-07-17 (-> Old/). Il file non esiste +# piu' -> guardia .exists() sotto degrada a FALLBACK_CAPITAL (=2000) e paper_pos=None (parita' disattiva). PAPER_STATE = PROJECT_ROOT / "data" / "paper_trend" / "state.json"