Avec Python, les bibliothèques qui proposent des bougies chandeliers ne sont pas toujours pratiques :

Lightweight-charts-python, au contraire, nous permet tout l’inverse : interactivité totale et personnalisation facile.

lightweight-charts-python

lightweight-charts-python

Installer les bibliothèques

PYTHON
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

PYTHON
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

Envoyer les données au graphique

PYTHON
# 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

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().

PYTHON
# -------------------------------
# É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 !