File size: 1,195 Bytes
d53dc44 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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: ")
|