Dans cet article, nous allons explorer comment utiliser TimeGPT, un modèle avancé de prévision de séries temporelles, pour prédire le prix du Bitcoin (∞BTC-USD) à partir des données de Yahoo Finance. Nous allons implémenter cela en Python en utilisant la bibliothèque Nixtla et visualiser les prédictions avec Matplotlib.
1. Prérequis
Avant de commencer, assurez-vous d’avoir Python installé, ainsi que les bibliothèques suivantes :
pip install nixtla yfinance pandas matplotlib
Assurez-vous aussi de créer une clé API Nixtla sur https://dashboard.nixtla.io.
2. Récupération des données du Bitcoin
Nous allons utiliser Yahoo Finance pour récupérer les prix historiques du Bitcoin sur 2 ans :
import yfinance as yf
import pandas as pd
# Charger les données Bitcoin
crypto_symbol = "BTC-USD"
data = yf.download(crypto_symbol, period="2y", interval="1d")
# Préparer les données
data = data[['Close']].reset_index()
data.columns = ['timestamp', 'value'] # Adapter aux paramètres de TimeGPT
Nous renommons les colonnes pour correspondre aux exigences de TimeGPT :
timestamp: la date de chaque enregistrementvalue: le prix de clôture du Bitcoin
3. Prédiction avec TimeGPT
Initialisation du client Nixtla
Nous devons initialiser TimeGPT avec notre clé API Nixtla :
from nixtla import NixtlaClient
# Initialiser le client avec la clé API
API_KEY = "VOTRE_CLE_API"
nixtla_client = NixtlaClient(api_key=API_KEY)
Conversion des dates
Pour éviter toute erreur, nous convertissons les dates en datetime :
data['timestamp'] = pd.to_datetime(data['timestamp'])
Prédiction avec TimeGPT
Nous allons prédire les 15 prochains jours :
forecast_df = nixtla_client.forecast(
df=data,
h=15, # Horizon de prédiction (15 jours)
freq='D', # Fréquence journalière
time_col='timestamp', # Nom de la colonne des dates
target_col='value' # Nom de la colonne des valeurs
)
Nous obtenons un DataFrame contenant les prédictions de TimeGPT.

4. Visualisation des prédictions
Nous allons maintenant afficher les prédictions avec Matplotlib.
import matplotlib.pyplot as plt
# Convertir les timestamps des prédictions
forecast_df['timestamp'] = pd.to_datetime(forecast_df['timestamp'])
# Tracer les données historiques et les prédictions
plt.figure(figsize=(12, 6))
plt.plot(data['timestamp'], data['value'], label="Prix Historique (BTC)", color="blue")
plt.plot(forecast_df['timestamp'], forecast_df['TimeGPT'], label="Prédiction TimeGPT", color="red", linestyle="dashed")
plt.xlabel("Date")
plt.ylabel("Prix du Bitcoin (USD)")
plt.title(f"Prédiction du prix de {crypto_symbol} avec TimeGPT (h=15)")
plt.legend()
plt.xticks(rotation=45)
plt.grid()
plt.show()
Nous avons maintenant un graphique clair montrant les prix passés du Bitcoin et ses prédictions futures !

5. Conclusion
Nous avons utilisé TimeGPT pour prédire le prix du Bitcoin avec les données de Yahoo Finance et affiché les résultats sous forme de graphique. Ce système peut être appliqué à d’autres cryptos ou actifs financiers !
Points à retenir :
- Nixtla TimeGPT est simple à utiliser avec
forecast() - Prendre en compte les avertissements (éviter un horizon trop long)
- Bien convertir les timestamps en
datetimepour Matplotlib
Code complet
from nixtla import NixtlaClient
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
# Remplace par ta clé API Nixtla
API_KEY = "CLE_API"
nixtla_client = NixtlaClient(api_key=API_KEY)
#Télécharger les données Bitcoin depuis Yahoo Finance
crypto_symbol = "BTC-USD"
data = yf.download(crypto_symbol, period="2y", interval="1d")
#Préparer les données pour TimeGPT
data = data[['Close']].reset_index()
data.columns = ['timestamp', 'value'] # Adapter aux paramètres attendus par Nixtla
#Conversion correcte des dates en datetime (évite l'erreur Matplotlib)
data['timestamp'] = pd.to_datetime(data['timestamp'])
#Envoyer les données à TimeGPT via Nixtla
forecast_df = nixtla_client.forecast(
df=data,
h=15, # Prédire 15 jours pour plus de précision
freq='D', # Fréquence journalière
time_col='timestamp', # Nom de la colonne des dates
target_col='value' # Nom de la colonne des valeurs
)
#Convertir les dates des prévisions pour éviter l'erreur Matplotlib
forecast_df['timestamp'] = pd.to_datetime(forecast_df['timestamp'])
#Tracer les prédictions TimeGPT
plt.figure(figsize=(12, 6))
plt.plot(data['timestamp'], data['value'], label="Prix Historique (BTC)", color="blue")
plt.plot(forecast_df['timestamp'], forecast_df['TimeGPT'], label="Prédiction TimeGPT", color="red", linestyle="dashed")
plt.xlabel("Date")
plt.ylabel("Prix du Bitcoin (USD)")
plt.title(f"Prédiction du prix de {crypto_symbol} avec TimeGPT (h=15)")
plt.legend()
plt.xticks(rotation=45)
plt.grid()
plt.show()
#Afficher les 5 premières prédictions
print(forecast_df.head())