Avec Python, les bibliothèques qui proposent des bougies chandeliers ne sont pas toujours pratiques :
- mplfinance est trop rigide
- plotly le zoom n’est pas ergonomique
Lightweight-charts-python, au contraire, nous permet tout l’inverse : interactivité totale et personnalisation facile.
lightweight-charts-python
Installer les bibliothèques
pip install yfinance lightweight-charts
Pour ce faire, nous avons besoin d’une source de données. Je vais utiliser yfinance, puis ajouter la bibliothèque lightweight-charts-python.
Ne pas confondre lightweight-charts-python avec lightweight-charts, qui est la version JavaScript proposée par TradingView. La version Python a été créée par un utilisateur sur GitHub.
Récupérer et préparer les données
import yfinance as yf
from lightweight_charts import JupyterChart #Chart <- pour IDE
# Télécharger les données EUR/USD
df = yf.download('EURUSD=X', period='90d', interval='1h')
# Sélectionner et renommer les colonnes OHLCV
df = df[['Open','High','Low','Close','Volume']]
df.columns = ['open','high','low','close','volume']
# Ajouter la colonne time à partir de l'index
df['time'] = df.index.strftime('%Y-%m-%d %H:%M:%S')
# Préparer le DataFrame pour le graphique
df_for_chart = df[['time','open','high','low','close','volume']]
df_for_chart
- time doit être en index et avec le type string au format YYYY-MM-DD HH:MM:SS
- Les autres colonnes sont des valeurs numériques : open, high, low, close, volume
Envoyer les données au graphique
# Créer un graphique interactif avec toolbox pour Notebook
chart_lightweight_charts = JupyterChart(width=1200, height=600, toolbox=True) # Largeur, hauteur et toolbox activée
chart_lightweight_charts.set(df_for_chart) # Envoyer les données préparées
chart_lightweight_charts.load() # Afficher le graphique dans Jupyter
# Créer un graphique interactif avec toolbox pour IDE
if __name__ == '__main__':
chart = Chart(width=1200, height=600, toolbox=True) # Largeur, hauteur et toolbox activée
chart.set(df_for_chart) # Envoyer les données préparées
chart.show(block=True) # Afficher le graphique dans l'IDE
lightweight-charts-python avec formes ajoutées grâce à la toolbox
C’est bon, nous avons maintenant le graphique. Grâce à la toolbox activée, nous pouvons même dessiner des formes dessus, les modifier et changer leurs couleurs. Personnaliser le graphique avec les fonctions suivantes à ajouter entre .set() et .load() ou .show().
# -------------------------------
# Éléments de style du graphique
# -------------------------------
chart.legend() # Affiche et configure la légende
chart.grid() # Active/désactive la grille
chart.layout() # Définit les couleurs du layout
chart.price_line() # Modifie l'affichage de la ligne de prix et du label
chart.candle_style() # Style des chandeliers (haussier/baissier)
chart.precision() # Nombre de décimales affichées
chart.crosshair() # Style du crosshair
chart.watermark() # Texte watermark en arrière-plan
# -------------------------------
# Éléments graphiques
# -------------------------------
chart.trend_line() # Ligne de tendance entre deux points
chart.box() # Zone/rectangle entre deux niveaux
chart.ray_line() # Ligne infinie partant d’un point
chart.vertical_line() # Ligne verticale à un temps donné
chart.horizontal_line() # Ligne horizontale à un prix donné
chart.marker() # Marqueur (icône + texte) sur le graphique
À bientôt !
ACCÈS MEMBRES
Accès à la newsletter et contenus exclusifs.