Esperimento reale · conto piccolo · dati pubblici
Un diario trasparente su un trader forex costruito con machine learning.
NeuralForex segue l’evoluzione di un bot predittivo su EURUSD: decisioni, risultati, errori, retrain e miglioramenti progressivi. Nessuna promessa, solo metodo e numeri.
model: regime-aware HGB + isotonic
features: 83 (51 tech + 32 cross-asset)
symbols: EURUSD · GBPUSD · USDJPY · USDCHF
policy: H1 only
threshold: p_up >= 0.56
risk: 0.01 lot · 1 open trade · 1€ max loss
adaptive exits: ATR-based, loose trailing
drift detection: PSI gated
online learning: weight-capped (1.5x)
Dashboard pubblica
Progressi live, senza dati sensibili.
Questa vista pubblica mostra solo metriche aggregate e trade chiusi, non credenziali, ticket privati o segnali real-time.
Ultimo aggiornamento pubblico: —
Raccolta dati live
Il sistema non è ancora giudicabile statisticamente: l’obiettivo minimo è arrivare ad almeno 50 trade live chiusi e puliti. Nessuna operazione manuale viene usata per migliorare artificialmente le statistiche; le metriche più avanzate vengono mostrate solo quando esiste abbastanza storico reale.
Nota: il win rate da solo non misura la qualità del sistema. Contano anche rapporto rischio/rendimento, drawdown, average win/loss, profit factor, expectancy e stabilità nel tempo.
Classifica timeframe
| Timeframe | Trade | Net | Win rate |
|---|
Ultimi trade chiusi
| TF | Dir | Exit | PnL |
|---|
Come sta imparando
—
Metriche future
Queste viste verranno attivate solo quando ci saranno abbastanza dati live reali. Nessun dato fittizio.
Diario
Cosa stiamo costruendo, davvero.
Verità scomoda: il modello è un lancio di moneta. Stop al denaro reale, si passa a paper.
Analisi rigorosa dopo 26 trade live (−7.64€, win rate 38%): il modello ha un AUC walk-forward di 0.513 — statisticamente indistinguibile dal caso, e un retrain fresco dà lo stesso 0.51. Con lo spread che mangia ogni trade, l'aspettativa è negativa per costruzione: nessun tuning di soglia/exit lo salva. Ho costruito un harness di validazione cost-aware (walk-forward, al netto dello spread) e testato strategie a regole: il trend-following perde sempre (0/6 finestre), la mean-reversion ha un edge solo nel regime recente (3/6 su H1, instabile, e un filtro ADX lo peggiora). Su D1 la mean-reversion è la meno peggio (4/6 finestre) ma con appena ~7 trade/anno: troppo sottile per rischiarci soldi. Decisione onesta: bot in paper, nessun ordine reale finché una strategia non supera un cancello di validazione robusto. Niente illusioni di "guadagni sicuri".
Sizing di nuovo bloccato col capitale sceso a 51€: alzato cap a 3€ + floor sul lotto minimo
Da settimane zero trade nonostante il modello generasse segnali validi (oggi alle 12:00 EURUSD SELL con edge 0.33 e confidence 0.66): col capitale calato a 51.67€ il lotto rischio-derivato (0.0023) tornava ad arrotondarsi sotto il minimo broker 0.01 → "lot_too_small" su ogni segnale. Alzato MAX_LOSS_EUR a 3€ e RISK_PER_TRADE a 6%, e riscritto il calcolo del lotto: ora arrotonda verso il basso (mai sopra budget) e, se il lotto cade sotto il minimo, ripiega sul minimo broker solo se il suo rischio reale resta entro il cap (nuovo flag MLT_MIN_LOT_FLOOR). Riavviato: alle 13:00 ha aperto subito una SELL EURUSD 0.01 (SL ~11 pip, TP ~24 pip, RR 2.2).
Trailing stop accorciato: 28→18 pip trigger, 12→8 pip distanza
Analisi dei 20 trade chiusi: il trailing a 28 pip non si è mai attivato (max favorable osservato = 20.9 pip sulla SELL EURUSD del 12/05 ore 11, che ha lasciato sul tavolo +1.6€ di giveback chiudendo a +0.16 sul breakeven). Abbasso trigger a 18 pip e distance a 8 pip: cattura i micro-trend H1 che hanno il TP a 25-30 pip ma raramente lo toccano. Breakeven resta a 14/+2 perché funziona già (5 trade salvati). Bot riavviato con MLT_TRAILING_TRIGGER_PIPS=18 e MLT_TRAILING_DISTANCE_PIPS=8.
Sizing bloccato: alzato MAX_LOSS_EUR a 2€ per coprire min_lot del broker
Scoperto perché in 16 ore di live zero trade: tutte 8 valutazioni stamattina rifiutate per "lot_too_small". Il lotto minimo del broker (0.01 = 1000€ notional) rischia 1.2-2.0€ con stop ATR, ma il cap max_loss_eur era 1.0€ → sizing matematicamente impossibile. Alzato MAX_LOSS_EUR a 2€, RISK_PER_TRADE a 3.5%, ROLLING_LOSS_LIMIT a 4€ per coerenza. Drawdown massimo giornaliero ora ~6.4% del capitale prima del halt automatico.
Sessione operativa estesa a 6:00–23:00 Roma
Stanotte il bot non ha valutato niente tra mezzanotte e le 7:00 per via del filtro sessione (default 7-22). Ho esteso la finestra a 6-23 per catturare l'apertura Tokyo→London e la coda NY. Resta esclusa la dead zone 1:00-5:00 dove gli spread retail si allargano. Reversibile via env var MLT_ENTRY_START_HOUR_ROME / MLT_ENTRY_END_HOUR_ROME.
Abbassata soglia direzionale H1 da 0.60 a 0.58
Dopo 14h di live e zero trade, troppi segnali borderline (direzionale 0.58-0.60) venivano rifiutati per pochi millesimi. Esempio: ieri sera 21:00 4 segnali SHORT USD a 0.598 — tutti scartati. Soglia abbassata a 0.58: cattura i marginal genuini al costo di un WR atteso leggermente più basso (65-70% → 58-63%). Filtro min_prob resta a 0.56.
Deploy LIVE con 4 simboli major
Switch da paper a live ordini reali. Da EURUSD solo a EURUSD + GBPUSD + USDJPY + USDCHF per triplicare i candidati H1 e mantenere coerenza cross-asset (tutti dollar-quoted). Aspettative oneste comunicate: 1-3 trade/giorno, WR 58-65%, profit atteso 2-6€/mese con 67€ di capitale.
Cross-asset features: il modello vede il dollaro intero
Aggiunte 32 feature dai 7 major FX disponibili, inclusa una ricostruzione del DXY con pesi ICE ufficiali (EUR 60%, JPY 14%, GBP 12%, CAD 10%, CHF 4%). La correlazione EURUSD/DXY misurata è -0.97 — la matematica conferma che il modello sta vedendo la struttura giusta del mercato.
Anti-drift: il modello smette di imparare quando il mercato cambia regime
Introdotto PSI (Population Stability Index): al training viene salvata la distribuzione delle feature; in produzione, se la distribuzione corrente diverge (PSI ≥ 0.40), il retrain online si blocca da solo. I sample weight sono cappati a 1.5x per evitare che pochi trade recenti sbilancino il modello.
Risultato OOS onesto: AUC 0.52 con lift +42% sui segnali top
Validazione strict 60/40 (16 mesi out-of-sample): il modello con cross-asset features produce 12 segnali ad alta convinzione con 83% win rate, contro 40% del modello senza cross-asset. Pochi ma genuini — non è un coin-flip dressed up con risk management.
Bug del feature-lag scoperto e rimosso
Il sistema usava feature di 3 ore prima per generare segnali (legacy build_features droppava le ultime righe per i label futuri). Ora il modello vede la barra corrente reale, le label triple-barrier sono calcolate in una funzione separata.
Pipeline rifatto: AND-logic, niente più pesi mutabili
Ogni filtro (min_prob, min_edge, sessione, smart safety, drift) deve passare in modo conjunctive. L'ML non aggrega segnali con pesi dinamici, può solo rifiutare. Era esattamente quello che, nelle versioni precedenti, faceva sbilanciare il modello dopo una settimana.
Perché H1 è diventato il capo trader
Dai primi test il timeframe H1 è risultato più stabile; M15 e M5 sono stati esclusi dal live perché generavano frequenza alta con qualità bassa (90% trade chiusi in managed_stop nel backtest legacy).
TP e SL non sono più completamente statici
Il bot usa ATR, probabilità, regime e struttura del mercato per adattare stop e target sui nuovi trade.
Obiettivo: 50 trade live puliti
Prima di giudicare il sistema servono abbastanza esempi reali. I trade manuali vengono evitati salvo emergenze. Aspettative onestamente comunicate: 2-6 €/mese atteso, non promesse di profitto giornaliero.
Roadmap
Da esperimento live a progetto misurabile.
La direzione è costruire un laboratorio pubblico: dati, decisioni, errori, retrain e miglioramenti documentati senza vendere illusioni.
Bot live controllato
Connessione MT5, gestione rischio minima, log, decisioni, trade chiusi e dashboard pubblica.
Pipeline ML onesto
Triple-barrier labels, walk-forward OOS, feature lag bug rimosso, cross-asset features integrate, drift detection PSI, online learning weight-bounded.
Raccolta live OOS
Multi-symbol H1 (4 major), validazione frequenza-qualità su 50+ trade live reali. L'OOS storico promette 65-80% WR a soglia 0.56+, ma serve conferma sui dati live.
Setup-based architecture
Refactor: regole deterministiche (breakout, pullback, divergenza) generano i candidati, l'ML li scorerizza. L'ML non inventa più segnali, filtra solo. Architettura più robusta al drift.
Mercati meno efficienti
FX H1 retail è il mercato più efficiente al mondo. Crypto (Binance/Bybit via CCXT) e altri asset con microstruttura più rumorosa offrono più edge per chi sa estrarlo.
Metodo
La pipeline in quattro passaggi.
Osserva
Legge MT5 in tempo reale: feature tecniche dell'asset + 32 feature dei 7 major FX (USD basket, correlazioni, momentum cross).
Predice
Stima la probabilità di TP-prima-di-SL sui prossimi 24 H1 bar (triple-barrier label), niente direzione "next bar" arbitraria.
Filtra
AND-logic stretta: soglia probabilità + edge + sessione + smart safety + drift. L'ML può solo rifiutare segnali, mai inventarli.
Gestisce
SL/TP ATR adattivo, breakeven a +14 pips, trailing a +18 pips con distanza 8 pips. Max 1 posizione, max 2€ loss/trade.
Impara
Online retrain con sample weight cappato a 1.5x e drift gate (PSI ≥ 0.40 → blocca retrain). Niente più sbilanciamenti settimanali.
Trasparenza tecnica
Cosa viene mostrato e cosa resta privato.
Setup operativo
- Piattaforma: MT5 (ActivTrades)
- Asset: EURUSD, GBPUSD, USDJPY, USDCHF
- Timeframe: H1 solo
- Feature: 83 (51 tecniche + 32 cross-asset)
- Modello: HistGradientBoosting + isotonic calibration + regime KMeans
- Soglia ingresso: p_up ≥ 0.56, edge ≥ 0.08, direzionale H1 ≥ 0.58
- Finestra operativa: 6:00–23:00 Roma (Tokyo→London open + NY late close)
- Stato: PAPER (nessun ordine reale) — il modello non ha edge validato; live solo dopo aver superato il cancello di validazione
- Rischio (quando live): 0.01 lot, una posizione aperta, max 3€ loss/trade (vincolo minimo broker su capitale ~52€), halt a 4€ rolling loss/giorno
- Exit: breakeven +14/+2 pips, trailing trigger +18 pips con distanza 8 pips
- Anti-drift: PSI gate al retrain, sample_weight cap 1.5x
Dati pubblicati
- Trade chiusi anonimizzati
- Metriche aggregate
- Diario tecnico e roadmap
- Retrain solo con sample sufficienti
- Valutazione su storico live, non su singoli trade
Dati non pubblicati
- Credenziali, token e configurazioni private
- Ticket broker e account id
- Trade aperti in dettaglio o copiabili
- Segnali real-time
- Log raw o stack trace
Cosa NON è NeuralForex
Confini chiari, niente ambiguità.
Contatti e community
Segui il progetto o scrivimi.
Segui il laboratorio, non copiare operazioni. La community serve per aggiornamenti tecnici, diario e trasparenza: non è un canale segnali.
Disclaimer
NeuralForex è un diario sperimentale e contenuto educativo. Non è consulenza finanziaria, non fornisce raccomandazioni personalizzate, non sollecita investimenti, non vende promesse di rendimento e non invita a copiare operazioni. Il trading forex è rischioso e può comportare perdita totale o parziale del capitale. Performance passate, live o simulate non garantiscono risultati futuri. Ogni utente deve fare valutazioni indipendenti prima di qualsiasi decisione finanziaria.