Cum rulezi local Mistral Timestral pentru prognoza seriilor temporale
Poate Timestral de la Mistral AI să prezică precis prețurile acțiunilor? Învață cum să rulezi local acest model ușor pentru serii temporale cu Python, să-l testezi pe date reale de piață și să generezi semnale Buy, Hold și Sell asistate de AI.
Ce-ar fi dacă ai putea prognoza prețurile acțiunilor cu un model AI mic, care rulează local, întoarce predicții în milisecunde și nu are nevoie de antrenare suplimentară?
Prognoza pe serii temporale înseamnă de obicei metode statistice precum ARIMA, pipeline-uri de machine learning sau modele antrenate pe un set de date specific. Timestral, o familie de modele de prognoză cu greutăți deschise lansată de Mistral AI pe 15 octombrie 2026, abordează problema altfel. Prezice valorile viitoare din date istorice fără fine-tuning și, conform Mistral, cel mai mare model al său se clasează pe primul loc între modelele pre-antrenate zero-shot pe trei benchmark-uri publice.
În ciuda dimensiunii reduse, modelele oferă acuratețe competitivă pe multiple benchmark-uri de prognoză și pot fi aplicate de la piețe financiare la consum de energie și cerere în retail.
În acest tutorial, vom vedea ce este Timestral și cum funcționează, îl vom configura local cu Python și uv, și îl vom testa pe date reale pentru acțiunea Apple (AAPL). Vom genera prognoze derulante pe o zi, le vom compara cu prețurile reale de închidere și cu un baseline naiv și vom transforma predicțiile în semnale simple Buy, Sell sau Hold. Poți vedea și tutorialele noastre despre prognoza seriilor temporale cu TimeGPT și ARIMA pentru prognoza seriilor temporale.
Ce este Mistral Timestral?
Timestral este o familie de modele fundamentale pentru serii temporale, cu greutăți deschise, de la Mistral AI, pentru prognoză rapidă, cu scop general. Un model fundamental de serii temporale este pre-antrenat o singură dată pe o colecție mare și variată de serii, astfel încât poate prognoza date pe care nu le-a văzut.
Spre deosebire de modelele tradiționale de prognoză care au nevoie de antrenare pe un set de date specific, Timestral suportă prognoză zero-shot. Prezice valorile viitoare direct din date istorice, fără antrenare sau fine-tuning suplimentar.
Timestral este un transformer cauzal, bazat pe patch-uri, antrenat în mare parte pe date sintetice, urmate de o a doua etapă de antrenare pe un mix de date reale și sintetice. Gestionează prețuri de acțiuni, cerere de energie, vânzări și măsurători de senzori. Mistral descrie arhitectura și antrenarea în raportul tehnic.
Mistral a lansat patru dimensiuni, fiecare cu un compromis diferit între mărimea modelului, viteză și acuratețe:
Model
Parametri
Mărime greutăți (FP32)
Timestral-5M
5 milioane
21 MB
Timestral-28M
28 milioane
111 MB
Timestral-123M
123 milioane
490 MB
Timestral-209M
209 milioane
837 MB
Conform benchmark-urilor publicate de Mistral, Timestral-209M se clasează pe primul loc între modelele pre-antrenate și zero-shot pe GIFT-Eval, TIME și fev-bench. Îi depășește pe modele mai mari precum TimesFM-3 și Falcon-2.0 în comparațiile raportate. Acestea sunt rezultatele proprii ale Mistral, trimise către leaderboard-urile GIFT-Eval și TIME, așa că verifică leaderboard-urile pentru confirmare independentă.
Viteza este un alt avantaj. Pe un CPU de server standard cu 8 thread-uri, Mistral raportează că Timestral-209M prognozează cu o zi înainte pornind de la trei săptămâni de istoric la 15 minute în 113 milisecunde, iar modelul de 5M are nevoie de 17 milisecunde. Nu este necesar GPU.
Timestral suportă aceste funcționalități de prognoză:
Context istoric lung: Acceptă până la 32.768 pași de timp istorici.
Prognoză multivariată: Prognozează mai multe serii temporale înrudite împreună pentru a îmbunătăți predicțiile.
Predicții probabilistice: Returnează 21 de cuantile pentru a estima incertitudinea prognozei, în locul unei singure valori.
Covariate: Acceptă variabile doar-din-trecut și cunoscute-în-viitor, numerice sau categorice, care pot influența prognoza.
Inferență locală: Rulează pe CPU-uri și GPU-uri fără un API plătit. Codul este publicat sub Apache 2.0, iar greutățile sub o licență MIT modificată.
Pentru acest tutorial, vom folosi Timestral-209M, cel mai mare și mai precis model din familie conform benchmark-urilor publicate de Mistral. Îl vom rula local pe un NVIDIA RTX 4070 GPU pentru a prognoza prețuri de acțiuni și a-i evalua performanța pe date reale de piață.
Configurează Timestral pe Linux
Timestral are nevoie de Python 3.10 sau mai nou și PyTorch 2.4 sau mai nou. Noi vom folosi Python 3.12, PyTorch 2.7.0 și uv pentru a crea un mediu de dezvoltare ușor pe o mașină Linux. Timestral suportă și inferență pe CPU, deci GPU-ul este opțional.
Mai întâi, verifică dacă GPU-ul tău NVIDIA este detectat și driverele funcționează:
Această comandă afișează informații despre GPU, versiunea driverului și compatibilitatea CUDA. Dacă GPU-ul apare în output, poți continua.
Apoi, instalează uv, un manager rapid de pachete și medii Python:
curl-LsSf https://astral.sh/uv/install.sh |shFuncționează cu
Repornește terminalul după instalarea uv ca să devină disponibilă comanda în shell.
Acum creează un director de proiect și un mediu virtual Python 3.12:
mkdir timestral-project
cd timestral-project
uv venv --python3.12source .venv/bin/activateFuncționează cu
Apoi, instalează PyTorch 2.7.0 cu suport CUDA 12.6:
uv pip installtorch==2.7.0 \
--index-url https://download.pytorch.org/whl/cu126Funcționează cu
În timpul testelor, build-ul CUDA 12.8 a aruncat o eroare de compatibilitate a driverului pe RTX 4070-ul nostru. Trecerea la PyTorch 2.7.0 cu CUDA 12.6 a rezolvat-o fără update de driver. În funcție de GPU-ul și driverul tău NVIDIA, s-ar putea să ai nevoie de alt build CUDA.
Dacă nu ai GPU, instalează în schimb build-ul pentru CPU înlocuind index URL-ul cu https://download.pytorch.org/whl/cpu. Codul de mai târziu din acest tutorial revine automat pe CPU.
Folosim yfinance pentru a prelua prețuri istorice ale acțiunilor, pandas și NumPy pentru procesare de date și Matplotlib pentru a desena prețurile reale versus cele prezise. De asemenea, restrângem versiunea pandas la intervalul folosit în timpul testelor ca să evităm avertismente legate de compatibilitate.
Înainte de a continua, verifică dacă PyTorch poate accesa GPU-ul:
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')"Funcționează cu
Valoarea True confirmă că CUDA este disponibil pentru PyTorch, iar ultima linie identifică GPU-ul. Suntem gata să începem să experimentăm cu Timestral.
În loc de scripturi Python separate, vom folosi JupyterLab ca să putem rula codul pas cu pas, să inspectăm valorile prognozelor și să comparăm predicțiile cu date reale de piață. Lansează JupyterLab din directorul proiectului:
Deschide URL-ul afișat în terminal, de obicei http://localhost:8888/lab, și creează un notebook Python nou folosind mediul pe care tocmai l-am configurat. Vom folosi acest notebook pentru a încărca Timestral, a genera predicții și a evalua cât de bine performează modelul.
Prognozează prețurile acțiunilor Apple cu Timestral
În loc să generăm date sintetice, vom folosi prețuri istorice reale ale acțiunilor Apple și vom măsura cât de precis prezice Timestral prețul de închidere al următoarei zile de tranzacționare.
Pentru ca experimentul să fie mai realist, vom folosi prognoză derulantă pe o zi. Pentru fiecare zi de tranzacționare din perioada de test, Timestral primește precedentele 500 de prețuri de închidere și prezice doar închiderea din ziua următoare.
Vom compara și două metode:
Prognoza pe preț brut: Prezice direct următorul preț de închidere.
Prognoza pe randament logaritmic: Prezice următoarea schimbare logaritmică a prețului și o convertește înapoi într-un preț de închidere.
1. Descarcă prețuri istorice ale acțiunilor
Pornește un notebook și importă bibliotecile necesare. Setăm și tickerul, numărul de zile de test, fereastra de context și numele modelului.
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"Funcționează cu
Acum descarcă cinci ani de date zilnice pentru acțiunea Apple. Setarea auto_adjust=True întoarce prețuri de închidere ajustate pentru split-uri și dividende.
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())Funcționează cu
Folosim ultimele 60 de sesiuni de tranzacționare pentru testare și precedentele 500 de observații ca context pentru fiecare predicție.
2. Încarcă Timestral pe GPU-ul tău
Încarcă modelul de 209M pe GPU, cu fallback pe CPU dacă CUDA nu este disponibil. Cei 837 MB de greutăți se descarcă de pe Hugging Face prima dată când rulezi această celulă.
device ="cuda"if torch.cuda.is_available()else"cpu"
model = TimestralForecaster.from_pretrained(
MODEL,
device=device,)print(f"Loaded {MODEL} on {device}")Funcționează cu
Modelul nostru s-a încărcat cu succes pe RTX 4070:
Acum generăm două predicții pentru fiecare zi de tranzacționare: una din prețurile de închidere istorice și una din randamente logaritmice. Un randament logaritmic este schimbarea de la o zi la alta în logaritmul prețului, iar fiecare randament prezis este convertit înapoi într-un preț folosind închiderea anterioară.
Modelul generează 60 de prognoze derulante pe o zi, folosind precedentele 500 de prețuri de închidere pentru fiecare. Fiecare prognoză folosește doar date disponibile înainte de ziua țintă, astfel încât prețurile viitoare nu pot ajunge în intrările modelului.
4. Evaluează acuratețea prognozelor
Măsurăm eroarea medie absolută (MAE), rădăcina pătrată a erorii medii pătratice (RMSE), eroarea medie procentuală absolută (MAPE) și acuratețea direcțională. Comparăm și Timestral cu un baseline naiv care presupune că prețul de închidere de mâine va fi egal cu cel de azi.
Rezultatele noastre arată că Timestral performează ușor mai bine când prognozează randamente logaritmice în loc de prețuri brute.
Abordarea pe randamente logaritmice a obținut cel mai mic MAE (3,05 $), RMSE (3,84 $) și MAPE (0,93%), depășind la limită modelul nostru baseline.
Mai important, acuratețea direcțională a crescut de la 41,67% cu prețuri brute la 55% cu randamente logaritmice, sugerând o performanță mai bună în a prezice dacă prețurile vor crește sau vor scădea.
Modelul pe preț brut a obținut, de asemenea, o acoperire a intervalului de predicție de 81,7%, aproape de 80% așteptat, indicând estimări ale incertitudinii rezonabil calibrate. Per total, Timestral a generat prognoze de preț destul de precise, dar îmbunătățirea față de baseline-ul simplu a fost minimă, iar testări suplimentare sunt necesare pentru a stabili dacă predicțiile pot susține în mod fiabil decizii de tranzacționare.
5. Vizualizează predicțiile Timestral
Hai să desenăm prețurile reale de închidere versus ambele metode de prognoză folosind Matplotlib.
Graficul arată cât de îndeaproape urmărește Timestral prețurile reale ale Apple pe parcursul celor 60 de zile de tranzacționare. Ambele abordări surprind trendul ascendent, iar zona portocalie umbrită este intervalul de predicție 10-90% al modelului pe preț brut. Panoul de jos desenează erorile zilnice ale predicțiilor.
Majoritatea erorilor rămân în jur de 5 $, cu câteva depășiri mai mari de 9 până la 11 $ în timpul mișcărilor bruște de preț. Cele două metode produc prognoze aproape identice, cu un mic avans pentru randamentele logaritmice. Ambele linii de prognoză rămân și cu aproximativ o zi în urma prețului real, ceea ce se potrivește cu diferența mică față de baseline-ul naiv.
6. Generează semnale Buy, Hold și Sell
Acum să convertim predicțiile pe preț brut în semnale experimentale Buy, Hold și Sell. Folosim un prag de 1% pe schimbarea de preț prezisă:
Toate cele 60 de zile de tranzacționare au produs semnale HOLD, fără recomandări BUY sau SELL. În ultimele 10 rânduri afișate, schimbarea așteptată nu depășește niciodată 0,15% în nicio direcție, mult sub pragul nostru de 1%.
Aceste semnale provin din predicțiile pe preț brut, care au avut acuratețe direcțională mai slabă (41,67%). Pentru a vedea semnale din prognozele pe randamente logaritmice, înlocuiește price_predictions cu return_predictions în calculul change_pct. Un prag mai mic ar produce mai multe semnale BUY și SELL, dar le-ar face și mai sensibile la erorile de prognoză și la zgomotul pieței.
Aceste semnale sunt pentru experimentare, nu pentru tranzacționare live, și nimic din acest tutorial nu reprezintă sfat financiar. Ar fi necesare backtesting suplimentar, ajustarea pragurilor și analiza costurilor de tranzacționare ca să afli dacă pot susține o strategie profitabilă.
Gânduri finale
Per total, sunt foarte impresionat de Timestral.
Întregul setup a fost simplu, inferența a fost rapidă și am putut rula totul local pe RTX 4070 fără să depind de API-uri externe.
Și mai atrăgător este că aceste modele ușoare pot rula și pe CPU-uri, făcându-le accesibile fără hardware scump.
Când vine vorba de acuratețea prognozelor, rezultatele noastre au fost mixte.
Timestral a urmărit prețurile acțiunilor destul de bine, dar a depășit cu puțin un baseline simplu.
Nu sunt expert în prognoză financiară sau tranzacționare, așa că probabil aș putea îmbunătăți rezultatele prin pregătirea datelor, strategii de prognoză și reglaje de parametri.
Am folosit anterior servicii găzduite de prognoză precum TimeGPT, dar Timestral a făcut prognoza locală mult mai atractivă. De la lansare, am început să mut mai multe workload-uri de prognoză pe modele locale, pentru că sunt rapide, ușoare și nu depind de apeluri API și tarife pe utilizare.
Pentru mine, cel mai mare atu al Timestral nu este doar acuratețea, ci cât de ușoară și ieftină face prognoza.
Poți rula un model capabil de serii temporale pe propriul hardware, poți experimenta liber și îl poți integra în aplicații fără să depinzi de servicii externe. Chiar dacă predicțiile noastre pe acțiuni nu au fost impresionante, cred că Timestral este o opțiune excelentă pentru oricine construiește aplicații locale de prognoză.
Timestral este prima familie de modele fundamentale pentru serii temporale de la Mistral AI, lansată pe 15 octombrie 2026. Vine în patru dimensiuni (5M, 28M, 123M și 209M de parametri) și face prognoză zero-shot, ceea ce înseamnă că nu are nevoie de antrenare pe datele tale.
Poate Timestral rula fără GPU?⌄
Da. Mistral raportează că pe un CPU de server standard cu 8 thread-uri, modelul de 209M produce o prognoză pe o zi din trei săptămâni de date la 15 minute în 113 milisecunde, iar modelul de 5M are nevoie de 17 milisecunde.
Este Timestral gratuit de folosit?⌄
Timestral are greutăți deschise, așa că poți descărca greutățile de pe Hugging Face și le poți rula local fără un API plătit. Codul are licență Apache 2.0, iar greutățile au o licență MIT modificată, așa că citește licența din fiecare repository de model înainte de utilizare comercială.
Ce model Timestral ar trebui să folosesc?⌄
Folosește Timestral-209M pentru cea mai bună acuratețe. Conform Mistral, modelul de 123M ajunge la 0,2% de scorul lui 209M la trei sferturi din latența acestuia, iar modelul de 28M este de 3,6 ori mai rapid decât 209M.
Poate Timestral să prezică prețurile acțiunilor?⌄
Poate produce prognoze, dar testul nostru a arătat un avantaj mic față de un baseline naiv. Pe 60 de zile de tranzacționare pentru Apple, prognozele pe randamente logaritmice au atins un MAE de 3,05 $ față de 3,06 $ pentru baseline, deci nu l-am folosi pentru decizii de tranzacționare fără mai multe testări.
Ce-ar fi dacă ai putea prognoza prețurile acțiunilor cu un model AI mic, care rulează local, întoarce predicții în milisecunde și nu are nevoie de antrenare suplimentară?
Prognoza pe serii temporale înseamnă de obicei metode statistice precum ARIMA, pipeline-uri de machine learning sau modele antrenate pe un set de date specific. Timestral, o familie de modele de prognoză cu greutăți deschise lansată de Mistral AI pe 15 octombrie 2026, abordează problema altfel. Prezice valorile viitoare din date istorice fără fine-tuning și, conform Mistral, cel mai mare model al său se clasează pe primul loc între modelele pre-antrenate zero-shot pe trei benchmark-uri publice.
În ciuda dimensiunii reduse, modelele oferă acuratețe competitivă pe multiple benchmark-uri de prognoză și pot fi aplicate de la piețe financiare la consum de energie și cerere în retail.
În acest tutorial, vom vedea ce este Timestral și cum funcționează, îl vom configura local cu Python și uv, și îl vom testa pe date reale pentru acțiunea Apple (AAPL). Vom genera prognoze derulante pe o zi, le vom compara cu prețurile reale de închidere și cu un baseline naiv și vom transforma predicțiile în semnale simple Buy, Sell sau Hold. Poți vedea și tutorialele noastre despre prognoza seriilor temporale cu TimeGPT și ARIMA pentru prognoza seriilor temporale.
Ce este Mistral Timestral?
Timestral este o familie de modele fundamentale pentru serii temporale, cu greutăți deschise, de la Mistral AI, pentru prognoză rapidă, cu scop general. Un model fundamental de serii temporale este pre-antrenat o singură dată pe o colecție mare și variată de serii, astfel încât poate prognoza date pe care nu le-a văzut.
Spre deosebire de modelele tradiționale de prognoză care au nevoie de antrenare pe un set de date specific, Timestral suportă prognoză zero-shot. Prezice valorile viitoare direct din date istorice, fără antrenare sau fine-tuning suplimentar.
Timestral este un transformer cauzal, bazat pe patch-uri, antrenat în mare parte pe date sintetice, urmate de o a doua etapă de antrenare pe un mix de date reale și sintetice. Gestionează prețuri de acțiuni, cerere de energie, vânzări și măsurători de senzori. Mistral descrie arhitectura și antrenarea în raportul tehnic.
Mistral a lansat patru dimensiuni, fiecare cu un compromis diferit între mărimea modelului, viteză și acuratețe:
Conform benchmark-urilor publicate de Mistral, Timestral-209M se clasează pe primul loc între modelele pre-antrenate și zero-shot pe GIFT-Eval, TIME și fev-bench. Îi depășește pe modele mai mari precum TimesFM-3 și Falcon-2.0 în comparațiile raportate. Acestea sunt rezultatele proprii ale Mistral, trimise către leaderboard-urile GIFT-Eval și TIME, așa că verifică leaderboard-urile pentru confirmare independentă.
Viteza este un alt avantaj. Pe un CPU de server standard cu 8 thread-uri, Mistral raportează că Timestral-209M prognozează cu o zi înainte pornind de la trei săptămâni de istoric la 15 minute în 113 milisecunde, iar modelul de 5M are nevoie de 17 milisecunde. Nu este necesar GPU.
Timestral suportă aceste funcționalități de prognoză:
Pentru acest tutorial, vom folosi Timestral-209M, cel mai mare și mai precis model din familie conform benchmark-urilor publicate de Mistral. Îl vom rula local pe un NVIDIA RTX 4070 GPU pentru a prognoza prețuri de acțiuni și a-i evalua performanța pe date reale de piață.
Configurează Timestral pe Linux
Timestral are nevoie de Python 3.10 sau mai nou și PyTorch 2.4 sau mai nou. Noi vom folosi Python 3.12, PyTorch 2.7.0 și uv pentru a crea un mediu de dezvoltare ușor pe o mașină Linux. Timestral suportă și inferență pe CPU, deci GPU-ul este opțional.
Mai întâi, verifică dacă GPU-ul tău NVIDIA este detectat și driverele funcționează:
Această comandă afișează informații despre GPU, versiunea driverului și compatibilitatea CUDA. Dacă GPU-ul apare în output, poți continua.
Apoi, instalează uv, un manager rapid de pachete și medii Python:
Repornește terminalul după instalarea uv ca să devină disponibilă comanda în shell.
Acum creează un director de proiect și un mediu virtual Python 3.12:
Apoi, instalează PyTorch 2.7.0 cu suport CUDA 12.6:
În timpul testelor, build-ul CUDA 12.8 a aruncat o eroare de compatibilitate a driverului pe RTX 4070-ul nostru. Trecerea la PyTorch 2.7.0 cu CUDA 12.6 a rezolvat-o fără update de driver. În funcție de GPU-ul și driverul tău NVIDIA, s-ar putea să ai nevoie de alt build CUDA.
Dacă nu ai GPU, instalează în schimb build-ul pentru CPU înlocuind index URL-ul cu
https://download.pytorch.org/whl/cpu. Codul de mai târziu din acest tutorial revine automat pe CPU.Acum instalează Timestral direct din repository-ul oficial de pe GitHub:
Instalează bibliotecile rămase pentru descărcarea datelor de piață, procesarea predicțiilor, crearea de vizualizări și rularea de notebook-uri:
Folosim yfinance pentru a prelua prețuri istorice ale acțiunilor, pandas și NumPy pentru procesare de date și Matplotlib pentru a desena prețurile reale versus cele prezise. De asemenea, restrângem versiunea pandas la intervalul folosit în timpul testelor ca să evităm avertismente legate de compatibilitate.
Înainte de a continua, verifică dacă PyTorch poate accesa GPU-ul:
Output-ul nostru:
Valoarea
Trueconfirmă că CUDA este disponibil pentru PyTorch, iar ultima linie identifică GPU-ul. Suntem gata să începem să experimentăm cu Timestral.În loc de scripturi Python separate, vom folosi JupyterLab ca să putem rula codul pas cu pas, să inspectăm valorile prognozelor și să comparăm predicțiile cu date reale de piață. Lansează JupyterLab din directorul proiectului:
Deschide URL-ul afișat în terminal, de obicei
http://localhost:8888/lab, și creează un notebook Python nou folosind mediul pe care tocmai l-am configurat. Vom folosi acest notebook pentru a încărca Timestral, a genera predicții și a evalua cât de bine performează modelul.Prognozează prețurile acțiunilor Apple cu Timestral
În loc să generăm date sintetice, vom folosi prețuri istorice reale ale acțiunilor Apple și vom măsura cât de precis prezice Timestral prețul de închidere al următoarei zile de tranzacționare.
Pentru ca experimentul să fie mai realist, vom folosi prognoză derulantă pe o zi. Pentru fiecare zi de tranzacționare din perioada de test, Timestral primește precedentele 500 de prețuri de închidere și prezice doar închiderea din ziua următoare.
Vom compara și două metode:
1. Descarcă prețuri istorice ale acțiunilor
Pornește un notebook și importă bibliotecile necesare. Setăm și tickerul, numărul de zile de test, fereastra de context și numele modelului.
Acum descarcă cinci ani de date zilnice pentru acțiunea Apple. Setarea
auto_adjust=Trueîntoarce prețuri de închidere ajustate pentru split-uri și dividende.Folosim ultimele 60 de sesiuni de tranzacționare pentru testare și precedentele 500 de observații ca context pentru fiecare predicție.
2. Încarcă Timestral pe GPU-ul tău
Încarcă modelul de 209M pe GPU, cu fallback pe CPU dacă CUDA nu este disponibil. Cei 837 MB de greutăți se descarcă de pe Hugging Face prima dată când rulezi această celulă.
Modelul nostru s-a încărcat cu succes pe RTX 4070:
3. Generează prognoze derulante pe o zi
Acum generăm două predicții pentru fiecare zi de tranzacționare: una din prețurile de închidere istorice și una din randamente logaritmice. Un randament logaritmic este schimbarea de la o zi la alta în logaritmul prețului, iar fiecare randament prezis este convertit înapoi într-un preț folosind închiderea anterioară.
Modelul generează 60 de prognoze derulante pe o zi, folosind precedentele 500 de prețuri de închidere pentru fiecare. Fiecare prognoză folosește doar date disponibile înainte de ziua țintă, astfel încât prețurile viitoare nu pot ajunge în intrările modelului.
4. Evaluează acuratețea prognozelor
Măsurăm eroarea medie absolută (MAE), rădăcina pătrată a erorii medii pătratice (RMSE), eroarea medie procentuală absolută (MAPE) și acuratețea direcțională. Comparăm și Timestral cu un baseline naiv care presupune că prețul de închidere de mâine va fi egal cu cel de azi.
Rezultatele noastre arată că Timestral performează ușor mai bine când prognozează randamente logaritmice în loc de prețuri brute.
Abordarea pe randamente logaritmice a obținut cel mai mic MAE (3,05 $), RMSE (3,84 $) și MAPE (0,93%), depășind la limită modelul nostru baseline.
Mai important, acuratețea direcțională a crescut de la 41,67% cu prețuri brute la 55% cu randamente logaritmice, sugerând o performanță mai bună în a prezice dacă prețurile vor crește sau vor scădea.
Modelul pe preț brut a obținut, de asemenea, o acoperire a intervalului de predicție de 81,7%, aproape de 80% așteptat, indicând estimări ale incertitudinii rezonabil calibrate. Per total, Timestral a generat prognoze de preț destul de precise, dar îmbunătățirea față de baseline-ul simplu a fost minimă, iar testări suplimentare sunt necesare pentru a stabili dacă predicțiile pot susține în mod fiabil decizii de tranzacționare.
5. Vizualizează predicțiile Timestral
Hai să desenăm prețurile reale de închidere versus ambele metode de prognoză folosind Matplotlib.
Graficul arată cât de îndeaproape urmărește Timestral prețurile reale ale Apple pe parcursul celor 60 de zile de tranzacționare. Ambele abordări surprind trendul ascendent, iar zona portocalie umbrită este intervalul de predicție 10-90% al modelului pe preț brut. Panoul de jos desenează erorile zilnice ale predicțiilor.
Majoritatea erorilor rămân în jur de 5 $, cu câteva depășiri mai mari de 9 până la 11 $ în timpul mișcărilor bruște de preț. Cele două metode produc prognoze aproape identice, cu un mic avans pentru randamentele logaritmice. Ambele linii de prognoză rămân și cu aproximativ o zi în urma prețului real, ceea ce se potrivește cu diferența mică față de baseline-ul naiv.
6. Generează semnale Buy, Hold și Sell
Acum să convertim predicțiile pe preț brut în semnale experimentale Buy, Hold și Sell. Folosim un prag de 1% pe schimbarea de preț prezisă:
Putem implementa aceste reguli cu NumPy:
Toate cele 60 de zile de tranzacționare au produs semnale HOLD, fără recomandări BUY sau SELL. În ultimele 10 rânduri afișate, schimbarea așteptată nu depășește niciodată 0,15% în nicio direcție, mult sub pragul nostru de 1%.
Aceste semnale provin din predicțiile pe preț brut, care au avut acuratețe direcțională mai slabă (41,67%). Pentru a vedea semnale din prognozele pe randamente logaritmice, înlocuiește
price_predictionscureturn_predictionsîn calcululchange_pct. Un prag mai mic ar produce mai multe semnale BUY și SELL, dar le-ar face și mai sensibile la erorile de prognoză și la zgomotul pieței.Aceste semnale sunt pentru experimentare, nu pentru tranzacționare live, și nimic din acest tutorial nu reprezintă sfat financiar. Ar fi necesare backtesting suplimentar, ajustarea pragurilor și analiza costurilor de tranzacționare ca să afli dacă pot susține o strategie profitabilă.
Gânduri finale
Per total, sunt foarte impresionat de Timestral.
Întregul setup a fost simplu, inferența a fost rapidă și am putut rula totul local pe RTX 4070 fără să depind de API-uri externe.
Și mai atrăgător este că aceste modele ușoare pot rula și pe CPU-uri, făcându-le accesibile fără hardware scump.
Când vine vorba de acuratețea prognozelor, rezultatele noastre au fost mixte.
Timestral a urmărit prețurile acțiunilor destul de bine, dar a depășit cu puțin un baseline simplu.
Nu sunt expert în prognoză financiară sau tranzacționare, așa că probabil aș putea îmbunătăți rezultatele prin pregătirea datelor, strategii de prognoză și reglaje de parametri.
Am folosit anterior servicii găzduite de prognoză precum TimeGPT, dar Timestral a făcut prognoza locală mult mai atractivă. De la lansare, am început să mut mai multe workload-uri de prognoză pe modele locale, pentru că sunt rapide, ușoare și nu depind de apeluri API și tarife pe utilizare.
Pentru mine, cel mai mare atu al Timestral nu este doar acuratețea, ci cât de ușoară și ieftină face prognoza.
Poți rula un model capabil de serii temporale pe propriul hardware, poți experimenta liber și îl poți integra în aplicații fără să depinzi de servicii externe. Chiar dacă predicțiile noastre pe acțiuni nu au fost impresionante, cred că Timestral este o opțiune excelentă pentru oricine construiește aplicații locale de prognoză.
Dacă vrei să înveți mai multe despre prognoză, îți recomand cursul nostru Time Series Analysis in Python. Pentru modelare specifică în finanțe, încearcă Machine Learning for Finance in Python.