Guida alla Creazione di Strategie con TimesFM in FIRE

A: Team di Sviluppo e Ricerca Strategie Data: 2025-10-27 Scopo: Fornire un framework, lezioni apprese e spunti creativi per lo sviluppo di strategie di trading che sfruttino le capacità predittive del modello TimesFM all’interno della piattaforma FIRE.


1. Il Contesto: Cos’è l’ “Edge” di TimesFM?

La nostra ricerca iniziale ha validato un punto fondamentale: il modello TimesFM, integrato nel nostro backtest engine, possiede un edge predittivo statisticamente significativo sulla direzione del prezzo a breve termine.

Tuttavia, abbiamo anche scoperto una lezione cruciale:

Un edge predittivo, da solo, non è sufficiente per creare una strategia profittevole. Il successo dipende interamente da come questo edge viene sfruttato attraverso una logica di trading e una gestione del rischio disciplinate.

Questo documento serve a guidarvi nella creazione di tale logica.


2. L’Architettura a Vostra Disposizione: Il Pre-Calcolo

Per garantire performance e semplicità, FIRE adotta un’architettura a pre-calcolo. Quando eseguite un backtest, il sistema prima “arricchisce” i dati storici con diverse colonne di forecast.

Come funziona per lo stratega: All’interno dei vostri metodi init() e next(), avrete accesso a un DataFrame self.data che contiene, oltre alle classiche colonne OHLCV, anche:

  • forecast_hN: La previsione puntuale (mediana) a N periodi nel futuro.
  • forecast_lower_hN: La banda di confidenza inferiore (es. 5° percentile) a N periodi.
  • forecast_upper_hN: La banda di confidenza superiore (es. 95° percentile) a N periodi.

Il vostro compito è usare queste colonne per definire le regole di ingresso e uscita.


3. Lezioni Apprese dalle Strategie Prototipo

Lezione 1: La Logica di Uscita è Sovrana

  • MomentumStrategyV1 (Anti-Pattern): Usava forecast > close per entrare e forecast < close per uscire.

    • Risultato: Molti trade, Win Rate alto (>60%), ma enormi perdite.
    • Insegnamento: Una logica di uscita che è semplicemente l’inverso dell’ingresso è inefficace. Disaccoppiare la logica di ingresso da quella di uscita è fondamentale.
  • MomentumStrategyV2 (Pattern Efficace): Usava forecast > close per entrare e un time exit (uscita dopo N barre) per uscire.

    • Risultato: Strategia profittevole con un profilo di rischio eccellente (Max Drawdown < 1%).
    • Insegnamento: Una regola di uscita disciplinata (come il time exit) è il modo più efficace per trasformare l’edge direzionale di TimesFM in un risultato controllato.

Lezione 2: Le Bande di Confidenza Sono Segnali di “Stress” del Mercato

  • MeanReversionStrategy: Usava close < lower_band per entrare.
    • Risultato: Frequenza di trading molto bassa.
    • Insegnamento: Le bande di confidenza del modello sono ben calibrate. Un superamento del prezzo è un evento raro che segnala condizioni di mercato estreme, un segnale potenzialmente di alta qualità.

4. Spunti per Nuove Strategie (Direzioni di Ricerca)

Per aiutarti a iniziare, di seguito trovi diverse direzioni di ricerca che puoi esplorare. Sentiti libero di prendere una di queste idee e svilupparla, oppure usale come ispirazione per una tua creazione originale.

Idea A: Ottimizzare l’Orizzonte Temporale

  • Domanda: Abbiamo usato un hold_period di 5 giorni. È ottimale?
  • Esperimento: Create variazioni della MomentumStrategyV2 con hold_period diversi (es. 3, 7, 10, 15).

Idea B: Combinare Direzione e Bande di Confidenza

  • Domanda: Possiamo migliorare il segnale di ingresso della strategia Momentum?
  • Esperimento: Create una strategia che entri solo se forecast_h5 > close E close è vicino o sotto la lower_band.

Idea C: Sfruttare l’Ampiezza delle Bande (Incertezza del Modello)

  • Domanda: L’ampiezza delle bande ci dice qualcosa sulla potenziale volatilità futura?
  • Esperimento: Calcolate band_width = forecast_upper_h10 - forecast_lower_h10 e usatela come filtro (entrare solo con band_width bassa) o come segnale di breakout (entrare solo con band_width alta).

Idea D: Sviluppare Strategie Short

  • Domanda: L’edge del modello è simmetrico? È bravo a prevedere i ribassi quanto i rialzi?
  • Esperimento: Create la versione “short” della MomentumStrategyV2 (forecast_h5 < close).

5. Il Tuo Compito: Proporre e Sviluppare

Sulla base di questo framework, il tuo compito è quello di progettare e implementare una o più logiche di trading. Puoi scegliere uno dei due percorsi seguenti:

Percorso 1: Migliorare una Strategia Esistente

  • Prendi una delle strategie che abbiamo sviluppato (es. MomentumStrategyV2TimeExit) come base.
  • Introduci una modifica o un filtro che, secondo la tua ipotesi, ne migliorerà le performance (es. aumentare il Profit Factor, ridurre il drawdown).
  • Crea un nuovo file per la tua versione (es. MomentumStrategy_v3_TrendFilter.py).

Percorso 2: Creare una Nuova Strategia

  • Prendi spunto da una delle “Idee di Ricerca” (o da una tua idea originale).
  • Scrivi da zero una nuova classe di strategia che implementi la tua logica.
  • Dai alla strategia un nome descrittivo (es. BandBreakoutStrategy_v1.py).

Output Atteso per ogni Strategia Proposta:

  1. Il file .py contenente il codice della strategia, completo di docstring che ne spieghino la logica.
  2. Il trade log e le metriche di performance finali ottenute da un backtest su un ticker a tua scelta (es. AAPL, su un periodo di test significativo).
  3. Un breve commento che spieghi perché hai fatto determinate scelte e come i risultati si confrontano con i nostri prototipi.

6. Linee Guida per la Sperimentazione

  1. Isola una Variabile alla Volta: Quando testi una nuova idea, modifica solo un parametro o una regola alla volta.
  2. Dai un Nome Chiaro alle Tue Strategie: Segui la convenzione NomeStrategia_vX_DescrizioneModifica.py.
  3. Analizza le Metriche Chiave: Non guardare solo al profitto. Il Max Drawdown, il Profit Factor e il Rapporto Vincita/Perdita Media sono fondamentali.

Buona ricerca!