Come eseguire Mistral Timestral in locale per il forecasting di serie temporali
Timestral di Mistral AI può prevedere accuratamente i prezzi azionari? Scopri come eseguire in locale questo modello leggero per il forecasting di serie temporali con Python, testarlo su dati reali di mercato e generare segnali Buy, Hold e Sell basati sull'AI.
E se potessi prevedere i prezzi azionari con un piccolo modello di AI che gira in locale, restituisce previsioni in millisecondi e non richiede alcun training aggiuntivo?
Il forecasting di serie temporali di solito significa metodi statistici come ARIMA, pipeline di machine learning o modelli addestrati su un dataset specifico. Timestral, una famiglia di modelli di forecasting open-weight rilasciata da Mistral AI il 15 ottobre 2026, adotta un approccio diverso. Prevede i valori futuri a partire dai dati storici senza fine-tuning e, secondo Mistral, il suo modello più grande si classifica al primo posto tra i modelli pretrained zero-shot su tre benchmark pubblici.
Nonostante le dimensioni ridotte, i modelli offrono un'accuratezza competitiva su più benchmark di forecasting e possono essere applicati a tutto, dai mercati finanziari ai consumi energetici e alla domanda retail.
In questo tutorial vedremo cos'è Timestral e come funziona, come configurarlo in locale con Python e uv, e lo testeremo su dati reali del titolo Apple (AAPL). Genereremo previsioni rolling a un giorno, le confronteremo con i prezzi di chiusura effettivi e con una baseline ingenua, e trasformeremo le previsioni in semplici segnali Buy, Sell o Hold. Puoi anche dare un'occhiata ai nostri tutorial su time series forecasting con TimeGPT e ARIMA per il forecasting di serie temporali.
Che cos'è Mistral Timestral?
Timestral è una famiglia di foundation model open-weight per serie temporali di Mistral AI, pensata per un forecasting rapido e general-purpose. Un foundation model per serie temporali è pre-addestrato una volta su una vasta e variegata collezione di serie, così da poter prevedere dati mai visti.
A differenza dei modelli tradizionali di forecasting che richiedono training su un dataset specifico, Timestral supporta il forecasting zero-shot. Prevede i valori futuri direttamente dai dati storici, senza training o fine-tuning aggiuntivi.
Timestral è un transformer causale, basato su patch, addestrato principalmente su dati sintetici, seguito da una seconda fase di training su un mix di dati reali e sintetici. Gestisce prezzi azionari, domanda di energia, vendite e misurazioni da sensori. Mistral descrive architettura e training nel suo technical report.
Mistral ha rilasciato quattro dimensioni, ciascuna con un diverso compromesso tra grandezza del modello, velocità e accuratezza:
Modello
Parametri
Dimensione pesi (FP32)
Timestral-5M
5 milioni
21 MB
Timestral-28M
28 milioni
111 MB
Timestral-123M
123 milioni
490 MB
Timestral-209M
209 milioni
837 MB
Secondo i benchmark pubblicati da Mistral, Timestral-209M si classifica primo tra i modelli pretrained e zero-shot su GIFT-Eval, TIME e fev-bench. Nelle comparazioni riportate, supera modelli più grandi come TimesFM-3 e Falcon-2.0. Si tratta dei risultati di Mistral, inviati alle leaderboard di GIFT-Eval e TIME, quindi verifica le leaderboard per conferme indipendenti.
La velocità è un altro vantaggio. Su una CPU server standard con 8 thread, Mistral riporta che Timestral-209M prevede un giorno avanti partendo da tre settimane di storico a 15 minuti in 113 millisecondi, e il modello da 5M impiega 17 millisecondi. Non è richiesta una GPU.
Timestral supporta queste funzionalità di forecasting:
Contesto storico lungo: Accetta fino a 32.768 passi temporali storici.
Forecasting multivariato: Prevede più serie temporali correlate insieme per migliorare le previsioni.
Previsioni probabilistiche: Restituisce 21 quantili per stimare l'incertezza, invece di un singolo valore.
Covariate: Accetta variabili solo passate e note nel futuro, numeriche o categoriali, che possono influenzare la previsione.
Inferenza locale: Gira su CPU e GPU senza API a pagamento. Il codice è rilasciato sotto Apache 2.0 e i pesi sotto una licenza MIT modificata.
Per questo tutorial useremo Timestral-209M, il modello più grande e accurato della famiglia secondo i benchmark pubblicati da Mistral. Lo eseguiremo in locale su una NVIDIA RTX 4070 per prevedere i prezzi azionari e valutarne le prestazioni su dati reali di mercato.
Configura Timestral su Linux
Timestral richiede Python 3.10 o successivo e PyTorch 2.4 o successivo. Useremo Python 3.12, PyTorch 2.7.0 e uv per creare un ambiente di sviluppo leggero su una macchina Linux. Timestral supporta anche l'inferenza su CPU, quindi la GPU è opzionale.
Per prima cosa, verifica che la tua GPU NVIDIA sia rilevata e che i driver funzionino:
Questo comando mostra informazioni sulla GPU, versione del driver e compatibilità CUDA. Se la tua GPU compare nell'output, puoi procedere.
Poi installa uv, un gestore veloce di pacchetti ed environment per Python:
curl-LsSf https://astral.sh/uv/install.sh |shOfferto da
Riavvia il terminale dopo aver installato uv in modo che il comando sia disponibile nella tua shell.
Ora crea una directory di progetto e un ambiente virtuale Python 3.12:
mkdir timestral-project
cd timestral-project
uv venv --python3.12source .venv/bin/activateOfferto da
Successivamente, installa PyTorch 2.7.0 con supporto CUDA 12.6:
uv pip installtorch==2.7.0 \
--index-url https://download.pytorch.org/whl/cu126Offerto da
Durante i test, la build CUDA 12.8 ha generato un errore di compatibilità del driver sulla nostra RTX 4070. Passare a PyTorch 2.7.0 con CUDA 12.6 ha risolto senza aggiornare il driver. In base alla tua GPU e al driver NVIDIA, potresti aver bisogno di una build CUDA diversa.
Se non hai una GPU, installa invece la build per CPU sostituendo l'index URL con https://download.pytorch.org/whl/cpu. Il codice più avanti in questo tutorial esegue automaticamente il fallback su CPU.
Usiamo yfinance per recuperare i prezzi storici, pandas e NumPy per l'elaborazione dei dati e Matplotlib per tracciare prezzi effettivi vs previsti. Limitiamo anche la versione di pandas all'intervallo usato durante i test per evitare avvisi dovuti alla compatibilità.
Prima di procedere, verifica che PyTorch possa accedere alla tua GPU:
python -c"import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'No CUDA GPU available')"Offerto da
Il nostro output:
2.7.0+cu126
True
NVIDIA GeForce RTX 4070Offerto da
Il valore True conferma che CUDA è disponibile per PyTorch e l'ultima riga identifica la GPU. Siamo pronti per iniziare a sperimentare con Timestral.
Invece di script Python separati, useremo JupyterLab così da eseguire il codice passo passo, ispezionare i valori previsti e confrontare le previsioni con i dati reali di mercato. Avvia JupyterLab dalla directory del progetto:
Apri l'URL mostrato nel terminale, di solito http://localhost:8888/lab, e crea un nuovo notebook Python usando l'ambiente appena configurato. Useremo questo notebook per caricare Timestral, generare previsioni e valutare le prestazioni del modello.
Prevedi i prezzi Apple con Timestral
Invece di generare dati sintetici, useremo prezzi storici reali di Apple e misureremo quanto accuratamente Timestral prevede il prezzo di chiusura del giorno di trading successivo.
Per rendere l'esperimento più realistico, useremo previsioni rolling a un giorno. Per ogni giorno di trading nel periodo di test, Timestral riceve le 500 chiusure precedenti e prevede solo la chiusura del giorno seguente.
Confronteremo anche due metodi:
Previsione sul prezzo grezzo: Prevedere direttamente la prossima chiusura.
Previsione sul log-return: Prevedere la prossima variazione logaritmica del prezzo e riconvertirla in una chiusura.
1. Scarica i prezzi storici
Avvia un notebook e importa le librerie necessarie. Impostiamo anche il ticker, il numero di giorni di test, la finestra di contesto e il nome del modello.
import numpy as np
import pandas as pd
import torch
import yfinance as yf
import matplotlib.pyplot as plt
from tqdm.auto import tqdm
from IPython.display import display
from timestral import TimestralForecaster
TICKER ="AAPL"
DAYS =60
WINDOW =500
MODEL ="mistralai/Timestral-209M"Offerto da
Ora scarica cinque anni di dati giornalieri di Apple. Impostando auto_adjust=True ottieni prezzi di chiusura aggiustati per split e dividendi.
data = yf.download(
TICKER,
period="5y",
interval="1d",
auto_adjust=True,
multi_level_index=False,
progress=False,)
close = data["Close"].dropna().astype(float)assertlen(close)>= WINDOW + DAYS
assert(close >0).all()
display(data.tail())Offerto da
Usiamo le ultime 60 sessioni di trading per il test e le 500 osservazioni precedenti come contesto per ciascuna previsione.
2. Carica Timestral sulla tua GPU
Carica il modello 209M sulla GPU, con fallback su CPU se CUDA non è disponibile. Gli 837 MB di pesi vengono scaricati da Hugging Face alla prima esecuzione di questa cella.
device ="cuda"if torch.cuda.is_available()else"cpu"
model = TimestralForecaster.from_pretrained(
MODEL,
device=device,)print(f"Loaded {MODEL} on {device}")Offerto da
Il nostro modello è stato caricato con successo sulla RTX 4070:
Ora generiamo due previsioni per ogni giorno di trading: una dai prezzi di chiusura storici e una dai log-return. Un log-return è la variazione giorno su giorno del logaritmo del prezzo, e convertiamo ogni ritorno previsto in un prezzo usando la chiusura precedente.
Il modello genera 60 previsioni rolling a un giorno, usando le 500 chiusure precedenti per ciascuna. Ogni previsione usa solo dati disponibili prima del giorno target, quindi i prezzi futuri non possono infiltrarsi negli input del modello.
4. Valuta l'accuratezza delle previsioni
Misuriamo mean absolute error (MAE), root mean squared error (RMSE), mean absolute percentage error (MAPE) e accuratezza direzionale. Confrontiamo anche Timestral con una baseline ingenua che assume che la chiusura di domani sia uguale a quella di oggi.
I nostri risultati mostrano che Timestral si comporta leggermente meglio quando prevede i log-return invece dei prezzi grezzi.
L'approccio con i log-return ha ottenuto i MAE (3,05 $), RMSE (3,84 $) e MAPE (0,93%) più bassi, superando di poco il nostro modello baseline.
Ancora più importante, l'accuratezza direzionale è passata dal 41,67% con i prezzi grezzi al 55% con i log-return, suggerendo una migliore capacità di prevedere se i prezzi saliranno o scenderanno.
Il modello sul prezzo grezzo ha anche raggiunto una copertura dell'intervallo di previsione del 81,7%, vicino all'80% atteso, indicando stime di incertezza ragionevolmente calibrate. Nel complesso, Timestral ha generato previsioni di prezzo abbastanza accurate, ma il miglioramento rispetto alla semplice baseline è stato minimo, e saranno necessari ulteriori test per capire se le sue previsioni possano supportare in modo affidabile decisioni di trading.
5. Visualizza le previsioni di Timestral
Tracciamo i prezzi di chiusura effettivi rispetto a entrambi i metodi di forecasting usando Matplotlib.
Il grafico mostra quanto da vicino Timestral segue i prezzi effettivi di Apple nei 60 giorni di trading. Entrambi gli approcci catturano il trend rialzista, e l'area arancione ombreggiata è l'intervallo di previsione 10-90% del modello sul prezzo grezzo. Il pannello inferiore traccia gli errori giornalieri.
La maggior parte degli errori resta entro circa 5 $, con alcuni scostamenti maggiori di 9-11 $ durante movimenti improvvisi. I due metodi producono previsioni quasi identiche, con un leggero vantaggio per i log-return. Entrambe le linee di previsione inoltre inseguono il prezzo effettivo con circa un giorno di ritardo, in linea con il piccolo divario rispetto alla baseline ingenua.
6. Genera segnali Buy, Hold e Sell
Ora convertiamo le previsioni sul prezzo grezzo in segnali sperimentali Buy, Hold e Sell. Usiamo una soglia dell'1% sulla variazione prevista del prezzo:
BUY: Aumento previsto del prezzo superiore all'1%.
SELL: Diminuzione prevista del prezzo superiore all'1%.
Tutti i 60 giorni di trading hanno prodotto segnali HOLD, senza raccomandazioni BUY o SELL. Nelle ultime 10 righe mostrate, la variazione attesa non supera mai lo 0,15% in nessuna direzione, ben al di sotto della nostra soglia dell'1%.
Questi segnali derivano dalle previsioni sul prezzo grezzo, che avevano un'accuratezza direzionale più debole (41,67%). Per vedere i segnali dalle previsioni sui log-return, sostituisci price_predictions con return_predictions nel calcolo di change_pct. Una soglia più bassa produrrebbe più segnali BUY e SELL, ma li renderebbe anche più sensibili agli errori di previsione e al rumore di mercato.
Questi segnali servono per la sperimentazione, non per il trading live, e nulla in questo tutorial costituisce consulenza finanziaria. Servirebbero ulteriori backtest, ottimizzazione delle soglie e analisi dei costi di transazione per capire se possano supportare una strategia profittevole.
Considerazioni finali
Nel complesso, Timestral mi ha davvero colpito.
L'intera configurazione è stata semplice, l'inferenza veloce e ho potuto eseguire tutto in locale sulla mia RTX 4070 senza dipendere da API esterne.
Ancora meglio, questi modelli leggeri possono girare anche su CPU, rendendoli accessibili senza hardware costoso.
Quanto all'accuratezza, i nostri risultati sono stati misti.
Timestral ha seguito i prezzi azionari in modo ragionevole, ma ha superato di poco una semplice baseline.
Non sono un esperto di forecasting finanziario o trading, quindi probabilmente potrei fare di più con la preparazione dei dati, le strategie di previsione e la messa a punto dei parametri per ottenere risultati migliori.
In passato ho usato servizi di forecasting hosted come TimeGPT, ma Timestral ha reso il forecasting locale molto più interessante. Dalla sua uscita, ho iniziato a spostare più carichi di lavoro di forecasting su modelli locali perché sono veloci, leggeri e liberi da chiamate API e costi basati sull'utilizzo.
Per me, il punto di forza maggiore di Timestral non è solo l'accuratezza, ma quanto renda facile ed economico fare forecasting.
Puoi eseguire un modello di serie temporali capace sull'hardware che già possiedi, sperimentare liberamente e integrarlo nelle applicazioni senza dipendere da servizi esterni. Anche se le nostre previsioni azionarie non sono state impressionanti, penso che Timestral sia un'ottima opzione per chiunque stia costruendo applicazioni di forecasting in locale.
Timestral è la prima famiglia di foundation model per serie temporali di Mistral AI, rilasciata il 15 ottobre 2026. È disponibile in quattro dimensioni (5M, 28M, 123M e 209M parametri) e prevede in zero-shot, cioè non richiede training sui tuoi dati.
Timestral può girare senza GPU?⌄
Sì. Mistral riporta che su una CPU server standard a 8 thread, il modello da 209M produce una previsione a un giorno da tre settimane di dati a 15 minuti in 113 millisecondi, e il modello da 5M impiega 17 millisecondi.
Timestral è gratuito?⌄
Timestral è open-weight, quindi puoi scaricare i pesi da Hugging Face ed eseguirli in locale senza API a pagamento. Il codice è concesso in licenza Apache 2.0 e i pesi sotto una licenza MIT modificata, quindi leggi la licenza in ciascun repository del modello prima dell'uso commerciale.
Quale modello Timestral dovrei usare?⌄
Usa Timestral-209M per la migliore accuratezza. Secondo Mistral, il modello da 123M arriva entro lo 0,2% del punteggio del 209M con tre quarti della sua latenza, e il modello da 28M è 3,6 volte più veloce del 209M.
Timestral può prevedere i prezzi azionari?⌄
Può produrre previsioni, ma nel nostro test ha mostrato poco vantaggio rispetto a una baseline ingenua. Su 60 giorni di dati Apple, le previsioni sui log-return hanno raggiunto un MAE di 3,05 $ contro 3,06 $ della baseline, quindi non lo useremmo per decisioni di trading senza ulteriori test.
In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
E se potessi prevedere i prezzi azionari con un piccolo modello di AI che gira in locale, restituisce previsioni in millisecondi e non richiede alcun training aggiuntivo?
Il forecasting di serie temporali di solito significa metodi statistici come ARIMA, pipeline di machine learning o modelli addestrati su un dataset specifico. Timestral, una famiglia di modelli di forecasting open-weight rilasciata da Mistral AI il 15 ottobre 2026, adotta un approccio diverso. Prevede i valori futuri a partire dai dati storici senza fine-tuning e, secondo Mistral, il suo modello più grande si classifica al primo posto tra i modelli pretrained zero-shot su tre benchmark pubblici.
Nonostante le dimensioni ridotte, i modelli offrono un'accuratezza competitiva su più benchmark di forecasting e possono essere applicati a tutto, dai mercati finanziari ai consumi energetici e alla domanda retail.
In questo tutorial vedremo cos'è Timestral e come funziona, come configurarlo in locale con Python e uv, e lo testeremo su dati reali del titolo Apple (AAPL). Genereremo previsioni rolling a un giorno, le confronteremo con i prezzi di chiusura effettivi e con una baseline ingenua, e trasformeremo le previsioni in semplici segnali Buy, Sell o Hold. Puoi anche dare un'occhiata ai nostri tutorial su time series forecasting con TimeGPT e ARIMA per il forecasting di serie temporali.
Che cos'è Mistral Timestral?
Timestral è una famiglia di foundation model open-weight per serie temporali di Mistral AI, pensata per un forecasting rapido e general-purpose. Un foundation model per serie temporali è pre-addestrato una volta su una vasta e variegata collezione di serie, così da poter prevedere dati mai visti.
A differenza dei modelli tradizionali di forecasting che richiedono training su un dataset specifico, Timestral supporta il forecasting zero-shot. Prevede i valori futuri direttamente dai dati storici, senza training o fine-tuning aggiuntivi.
Timestral è un transformer causale, basato su patch, addestrato principalmente su dati sintetici, seguito da una seconda fase di training su un mix di dati reali e sintetici. Gestisce prezzi azionari, domanda di energia, vendite e misurazioni da sensori. Mistral descrive architettura e training nel suo technical report.
Mistral ha rilasciato quattro dimensioni, ciascuna con un diverso compromesso tra grandezza del modello, velocità e accuratezza:
Secondo i benchmark pubblicati da Mistral, Timestral-209M si classifica primo tra i modelli pretrained e zero-shot su GIFT-Eval, TIME e fev-bench. Nelle comparazioni riportate, supera modelli più grandi come TimesFM-3 e Falcon-2.0. Si tratta dei risultati di Mistral, inviati alle leaderboard di GIFT-Eval e TIME, quindi verifica le leaderboard per conferme indipendenti.
La velocità è un altro vantaggio. Su una CPU server standard con 8 thread, Mistral riporta che Timestral-209M prevede un giorno avanti partendo da tre settimane di storico a 15 minuti in 113 millisecondi, e il modello da 5M impiega 17 millisecondi. Non è richiesta una GPU.
Timestral supporta queste funzionalità di forecasting:
Per questo tutorial useremo Timestral-209M, il modello più grande e accurato della famiglia secondo i benchmark pubblicati da Mistral. Lo eseguiremo in locale su una NVIDIA RTX 4070 per prevedere i prezzi azionari e valutarne le prestazioni su dati reali di mercato.
Configura Timestral su Linux
Timestral richiede Python 3.10 o successivo e PyTorch 2.4 o successivo. Useremo Python 3.12, PyTorch 2.7.0 e uv per creare un ambiente di sviluppo leggero su una macchina Linux. Timestral supporta anche l'inferenza su CPU, quindi la GPU è opzionale.
Per prima cosa, verifica che la tua GPU NVIDIA sia rilevata e che i driver funzionino:
Questo comando mostra informazioni sulla GPU, versione del driver e compatibilità CUDA. Se la tua GPU compare nell'output, puoi procedere.
Poi installa uv, un gestore veloce di pacchetti ed environment per Python:
Riavvia il terminale dopo aver installato uv in modo che il comando sia disponibile nella tua shell.
Ora crea una directory di progetto e un ambiente virtuale Python 3.12:
Successivamente, installa PyTorch 2.7.0 con supporto CUDA 12.6:
Durante i test, la build CUDA 12.8 ha generato un errore di compatibilità del driver sulla nostra RTX 4070. Passare a PyTorch 2.7.0 con CUDA 12.6 ha risolto senza aggiornare il driver. In base alla tua GPU e al driver NVIDIA, potresti aver bisogno di una build CUDA diversa.
Se non hai una GPU, installa invece la build per CPU sostituendo l'index URL con
https://download.pytorch.org/whl/cpu. Il codice più avanti in questo tutorial esegue automaticamente il fallback su CPU.Ora installa Timestral direttamente dal suo repository GitHub ufficiale:
Installa le librerie rimanenti per scaricare dati di mercato, processare le previsioni, creare visualizzazioni ed eseguire notebook:
Usiamo yfinance per recuperare i prezzi storici, pandas e NumPy per l'elaborazione dei dati e Matplotlib per tracciare prezzi effettivi vs previsti. Limitiamo anche la versione di pandas all'intervallo usato durante i test per evitare avvisi dovuti alla compatibilità.
Prima di procedere, verifica che PyTorch possa accedere alla tua GPU:
Il nostro output:
Il valore
Trueconferma che CUDA è disponibile per PyTorch e l'ultima riga identifica la GPU. Siamo pronti per iniziare a sperimentare con Timestral.Invece di script Python separati, useremo JupyterLab così da eseguire il codice passo passo, ispezionare i valori previsti e confrontare le previsioni con i dati reali di mercato. Avvia JupyterLab dalla directory del progetto:
Apri l'URL mostrato nel terminale, di solito
http://localhost:8888/lab, e crea un nuovo notebook Python usando l'ambiente appena configurato. Useremo questo notebook per caricare Timestral, generare previsioni e valutare le prestazioni del modello.Prevedi i prezzi Apple con Timestral
Invece di generare dati sintetici, useremo prezzi storici reali di Apple e misureremo quanto accuratamente Timestral prevede il prezzo di chiusura del giorno di trading successivo.
Per rendere l'esperimento più realistico, useremo previsioni rolling a un giorno. Per ogni giorno di trading nel periodo di test, Timestral riceve le 500 chiusure precedenti e prevede solo la chiusura del giorno seguente.
Confronteremo anche due metodi:
1. Scarica i prezzi storici
Avvia un notebook e importa le librerie necessarie. Impostiamo anche il ticker, il numero di giorni di test, la finestra di contesto e il nome del modello.
Ora scarica cinque anni di dati giornalieri di Apple. Impostando
auto_adjust=Trueottieni prezzi di chiusura aggiustati per split e dividendi.Usiamo le ultime 60 sessioni di trading per il test e le 500 osservazioni precedenti come contesto per ciascuna previsione.
2. Carica Timestral sulla tua GPU
Carica il modello 209M sulla GPU, con fallback su CPU se CUDA non è disponibile. Gli 837 MB di pesi vengono scaricati da Hugging Face alla prima esecuzione di questa cella.
Il nostro modello è stato caricato con successo sulla RTX 4070:
3. Genera previsioni rolling a un giorno
Ora generiamo due previsioni per ogni giorno di trading: una dai prezzi di chiusura storici e una dai log-return. Un log-return è la variazione giorno su giorno del logaritmo del prezzo, e convertiamo ogni ritorno previsto in un prezzo usando la chiusura precedente.
Il modello genera 60 previsioni rolling a un giorno, usando le 500 chiusure precedenti per ciascuna. Ogni previsione usa solo dati disponibili prima del giorno target, quindi i prezzi futuri non possono infiltrarsi negli input del modello.
4. Valuta l'accuratezza delle previsioni
Misuriamo mean absolute error (MAE), root mean squared error (RMSE), mean absolute percentage error (MAPE) e accuratezza direzionale. Confrontiamo anche Timestral con una baseline ingenua che assume che la chiusura di domani sia uguale a quella di oggi.
I nostri risultati mostrano che Timestral si comporta leggermente meglio quando prevede i log-return invece dei prezzi grezzi.
L'approccio con i log-return ha ottenuto i MAE (3,05 $), RMSE (3,84 $) e MAPE (0,93%) più bassi, superando di poco il nostro modello baseline.
Ancora più importante, l'accuratezza direzionale è passata dal 41,67% con i prezzi grezzi al 55% con i log-return, suggerendo una migliore capacità di prevedere se i prezzi saliranno o scenderanno.
Il modello sul prezzo grezzo ha anche raggiunto una copertura dell'intervallo di previsione del 81,7%, vicino all'80% atteso, indicando stime di incertezza ragionevolmente calibrate. Nel complesso, Timestral ha generato previsioni di prezzo abbastanza accurate, ma il miglioramento rispetto alla semplice baseline è stato minimo, e saranno necessari ulteriori test per capire se le sue previsioni possano supportare in modo affidabile decisioni di trading.
5. Visualizza le previsioni di Timestral
Tracciamo i prezzi di chiusura effettivi rispetto a entrambi i metodi di forecasting usando Matplotlib.
Il grafico mostra quanto da vicino Timestral segue i prezzi effettivi di Apple nei 60 giorni di trading. Entrambi gli approcci catturano il trend rialzista, e l'area arancione ombreggiata è l'intervallo di previsione 10-90% del modello sul prezzo grezzo. Il pannello inferiore traccia gli errori giornalieri.
La maggior parte degli errori resta entro circa 5 $, con alcuni scostamenti maggiori di 9-11 $ durante movimenti improvvisi. I due metodi producono previsioni quasi identiche, con un leggero vantaggio per i log-return. Entrambe le linee di previsione inoltre inseguono il prezzo effettivo con circa un giorno di ritardo, in linea con il piccolo divario rispetto alla baseline ingenua.
6. Genera segnali Buy, Hold e Sell
Ora convertiamo le previsioni sul prezzo grezzo in segnali sperimentali Buy, Hold e Sell. Usiamo una soglia dell'1% sulla variazione prevista del prezzo:
Possiamo implementare queste regole con NumPy:
Tutti i 60 giorni di trading hanno prodotto segnali HOLD, senza raccomandazioni BUY o SELL. Nelle ultime 10 righe mostrate, la variazione attesa non supera mai lo 0,15% in nessuna direzione, ben al di sotto della nostra soglia dell'1%.
Questi segnali derivano dalle previsioni sul prezzo grezzo, che avevano un'accuratezza direzionale più debole (41,67%). Per vedere i segnali dalle previsioni sui log-return, sostituisci
price_predictionsconreturn_predictionsnel calcolo dichange_pct. Una soglia più bassa produrrebbe più segnali BUY e SELL, ma li renderebbe anche più sensibili agli errori di previsione e al rumore di mercato.Questi segnali servono per la sperimentazione, non per il trading live, e nulla in questo tutorial costituisce consulenza finanziaria. Servirebbero ulteriori backtest, ottimizzazione delle soglie e analisi dei costi di transazione per capire se possano supportare una strategia profittevole.
Considerazioni finali
Nel complesso, Timestral mi ha davvero colpito.
L'intera configurazione è stata semplice, l'inferenza veloce e ho potuto eseguire tutto in locale sulla mia RTX 4070 senza dipendere da API esterne.
Ancora meglio, questi modelli leggeri possono girare anche su CPU, rendendoli accessibili senza hardware costoso.
Quanto all'accuratezza, i nostri risultati sono stati misti.
Timestral ha seguito i prezzi azionari in modo ragionevole, ma ha superato di poco una semplice baseline.
Non sono un esperto di forecasting finanziario o trading, quindi probabilmente potrei fare di più con la preparazione dei dati, le strategie di previsione e la messa a punto dei parametri per ottenere risultati migliori.
In passato ho usato servizi di forecasting hosted come TimeGPT, ma Timestral ha reso il forecasting locale molto più interessante. Dalla sua uscita, ho iniziato a spostare più carichi di lavoro di forecasting su modelli locali perché sono veloci, leggeri e liberi da chiamate API e costi basati sull'utilizzo.
Per me, il punto di forza maggiore di Timestral non è solo l'accuratezza, ma quanto renda facile ed economico fare forecasting.
Puoi eseguire un modello di serie temporali capace sull'hardware che già possiedi, sperimentare liberamente e integrarlo nelle applicazioni senza dipendere da servizi esterni. Anche se le nostre previsioni azionarie non sono state impressionanti, penso che Timestral sia un'ottima opzione per chiunque stia costruendo applicazioni di forecasting in locale.
Se vuoi approfondire il forecasting, ti consiglio il nostro corso Time Series Analysis in Python. Per la modellazione specifica per la finanza, prova Machine Learning for Finance in Python.