Trading-Bot-M20 / analyze.py
raghava4u's picture
Upload folder using huggingface_hub
d53dc44 verified
Raw History Blame Contribute Delete
1.2 kB
import pandas as pd
import glob
import os
pnl_files = glob.glob('backtest_results/*_daily_pnl.csv')
trades_files = glob.glob('backtest_results/*_trades.csv')
latest_pnl = max(pnl_files, key=os.path.getctime)
latest_trades = max(trades_files, key=os.path.getctime)
df_pnl = pd.read_csv(latest_pnl)
df_trades = pd.read_csv(latest_trades)
win_rate = (df_trades['pnl'] > 0).mean() * 100
total_trades = len(df_trades)
max_profit_per_day = df_pnl['pnl'].max()
max_loss_per_day = df_pnl['pnl'].min()
avg_pnl_per_day = df_pnl['pnl'].mean()
win_days = (df_pnl['pnl'] > 0).sum()
loss_days = (df_pnl['pnl'] < 0).sum()
max_win_trade = df_trades['pnl'].max()
max_loss_trade = df_trades['pnl'].min()
avg_win_trade = df_trades[df_trades['pnl'] > 0]['pnl'].mean()
avg_loss_trade = df_trades[df_trades['pnl'] < 0]['pnl'].mean()
print(f"Total Trades: {total_trades}")
print(f"Win Rate: {win_rate:.2f}%")
print(f"Max Profit in a Day: ")
print(f"Max Loss in a Day: ")
print(f"Avg P&L per Day: ")
print(f"Winning Days: {win_days}")
print(f"Losing Days: {loss_days}")
print(f"Max Profit on a single trade: ")
print(f"Max Loss on a single trade: ")
print(f"Avg Win per Trade: ")
print(f"Avg Loss per Trade: ")