35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
|
|
# Charger les fichiers
|
|
signals = pd.read_pickle('backtest-result-2025-04-06_21-30-24_signals.pkl')
|
|
exited = pd.read_pickle('backtest-result-2025-04-06_21-30-24_exited.pkl')
|
|
rejected = pd.read_pickle('backtest-result-2025-04-06_21-30-24_rejected.pkl') # facultatif
|
|
|
|
# Choisir un marché pour le graphique (ex : BTC/USDT)
|
|
pair = 'BTC/USDT'
|
|
df_signals = signals[signals['pair'] == pair]
|
|
df_exited = exited[exited['pair'] == pair]
|
|
|
|
# Charger les données de prix si besoin (par ex. OHLCV depuis Freqtrade)
|
|
# Ici on suppose que vous avez une DataFrame de prix : price_df avec ['date', 'close']
|
|
price_df = df_signals[['date', 'price']].rename(columns={'price': 'close'}).copy()
|
|
price_df.set_index('date', inplace=True)
|
|
|
|
# Affichage
|
|
plt.figure(figsize=(14, 6))
|
|
plt.plot(price_df.index, price_df['close'], label='Prix', color='gray')
|
|
|
|
# Ajouter les points d'entrée
|
|
plt.scatter(df_signals['date'], df_signals['price'], color='green', label='Signal', marker='^')
|
|
# Ajouter les points de sortie
|
|
plt.scatter(df_exited['exit_date'], df_exited['exit_price'], color='red', label='Sortie', marker='v')
|
|
|
|
plt.title(f"Graphique avec signaux pour {pair}")
|
|
plt.xlabel("Date")
|
|
plt.ylabel("Prix")
|
|
plt.legend()
|
|
plt.grid(True)
|
|
plt.tight_layout()
|
|
plt.show()
|