feat(exec): gate TP_PHANTOM — il tocco TP va confermato dal book reale, non dal feed

Il feed testnet stampa wick che 'toccano' il TP intrabar senza che il prezzo
abbia mai scambiato al livello: il sim bookava +4% fantasma a bars_held=0 e
_real_close chiudeva A MERCATO una posizione col resting TP a zero fill
(-fee/spread a giro, 14 giri l'11-06). Ora StrategyWorker._tp_phantom sopprime
l'exit take_profit quando: tocco sim + resting LIMIT zero-fill + prezzo corrente
che non ha raggiunto il livello (il limit sul book reale e' l'oracolo del tocco).
Zero parametri (verita' d'esecuzione, non filtro di strategia); SL close-confirm
e max_bars restano attivi nello stesso tick; fill parziale/prezzo oltre il
livello/worker non eseguito/errore rete -> comportamento storico. Log TP_PHANTOM
dedup per barra + alert Telegram una tantum. 5 test nuovi (104 passed).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-06-11 19:32:24 +00:00
parent 15520dda70
commit 12625b3315
4 changed files with 163 additions and 9 deletions
+6 -5
View File
@@ -71,11 +71,12 @@
z-score estremo) e (b) "toccano" il TP intrabar della stessa barra → il sim booka
+4% fantasma a bars_held=0, il reale apre+chiude pagando solo fee/spread (~0.17€
a giro, 14 giri oggi ≈ 2.3€). Il real-truth ledger contabilizza GIUSTO (per questo
esiste) e il report orario ora conta i win dal flag reale. NON aggiungere filtri
anti-spike ai segnali (= fit su un artefatto del testnet, divergenza dal backtest);
su feed mainnet il fenomeno non esiste. Osservare la frequenza: se il churn cresce,
valutare un gate di QUALITÀ FEED a monte (validazione barre nel data layer, non
nella strategia).
esiste) e il report orario ora conta i win dal flag reale. MITIGATO in v1.1.23:
gate `TP_PHANTOM` (il tocco TP deve essere confermato dal fill del resting sul book
reale, o dal prezzo oltre il livello) → niente più chiusure a mercato su wick
fantasma. Resta l'ENTRY spike-driven (il segnale stesso nasce dal wick): NON
filtrarlo nei segnali (= fit su artefatto testnet); osservare la frequenza dei log
TP_PHANTOM — se cresce, valutare un gate di QUALITÀ FEED nel data layer.
- [ ] **FADE in coda storica (2026-06-11)**: il rolling 120g equal-weight delle 6 fade è al
**2° percentile** della propria storia (1.0% vs p5 +0.4%); il PORT06 complessivo resta