zman35 commited on
Commit
0aa4f49
·
verified ·
1 Parent(s): f240215

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -0
app.py CHANGED
@@ -96,6 +96,26 @@ def simulate_tp_strategy_full(starting_balance, trades_min, trades_max, weeks,
96
  }
97
 
98
  return pd.DataFrame(log), summary
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
100
 
101
  # UI
 
96
  }
97
 
98
  return pd.DataFrame(log), summary
99
+ def analytics_dashboard():
100
+ leaderboard = []
101
+ for name, config in strategy_presets.items():
102
+ df, summary = simulate_tp_strategy_full(**config, risk_reward_ratio=2)
103
+ returns = df['End Balance'].pct_change().dropna()
104
+ volatility = returns.std() * np.sqrt(52)
105
+ sharpe = returns.mean() / returns.std() * np.sqrt(52) if returns.std() > 0 else 0
106
+ peak = df['End Balance'].cummax()
107
+ dd = (peak - df['End Balance']) / peak
108
+ max_dd = dd.max() * 100 if not dd.empty else 0
109
+ final = df['End Balance'].iloc[-1] if not df.empty else config['starting_balance']
110
+ score = final / (1 + max_dd)
111
+ leaderboard.append({
112
+ "Strategy": name,
113
+ "Final Balance": round(final, 2),
114
+ "Max DD %": round(max_dd, 2),
115
+ "Sharpe": round(sharpe, 2),
116
+ "EdgeCast Score": round(score, 2)
117
+ })
118
+ return pd.DataFrame(leaderboard).sort_values("EdgeCast Score", ascending=False).reset_index(drop=True)
119
 
120
 
121
  # UI