cyberosa commited on
Commit
7839697
·
1 Parent(s): efabdf9

winning graph by trader types

Browse files
Files changed (2) hide show
  1. app.py +60 -34
  2. scripts/metrics.py +6 -1
app.py CHANGED
@@ -131,6 +131,13 @@ weekly_non_agent_metrics_by_market_creator = compute_weekly_metrics_by_market_cr
131
  weekly_winning_metrics = compute_winning_metrics_by_trader(
132
  trader_agents_data=trader_agents_data
133
  )
 
 
 
 
 
 
 
134
  with demo:
135
  gr.HTML("<h1>Trader agents monitoring dashboard </h1>")
136
  gr.Markdown(
@@ -229,38 +236,38 @@ with demo:
229
  inputs=trader_na_details_selector,
230
  outputs=na_trader_markets_plot,
231
  )
232
- with gr.TabItem("🔥 Daily metrics"):
233
- with gr.Row():
234
- gr.Markdown("# Daily metrics of last week of all traders")
235
- with gr.Row():
236
- trader_daily_details_selector = gr.Dropdown(
237
- label="Select a daily trader metric",
238
- choices=trader_metric_choices,
239
- value=default_trader_metric,
240
- )
241
-
242
- with gr.Row():
243
- with gr.Column(scale=3):
244
- trader_daily_markets_plot = (
245
- plot_trader_daily_metrics_by_market_creator(
246
- metric_name=default_trader_metric,
247
- traders_df=daily_metrics_by_market_creator,
248
- )
249
- )
250
- with gr.Column(scale=1):
251
- trade_details_text = get_metrics_text()
252
-
253
- def update_trader_daily_details(trader_detail):
254
- return plot_trader_daily_metrics_by_market_creator(
255
- metric_name=trader_detail,
256
- traders_df=daily_metrics_by_market_creator,
257
- )
258
-
259
- trader_daily_details_selector.change(
260
- update_trader_daily_details,
261
- inputs=trader_daily_details_selector,
262
- outputs=trader_daily_markets_plot,
263
- )
264
 
265
  with gr.TabItem("📉Closed Markets Kullback–Leibler divergence"):
266
  with gr.Row():
@@ -281,11 +288,30 @@ with demo:
281
 
282
  with gr.TabItem("🎖️Weekly winning trades % per trader"):
283
  with gr.Row():
284
- gr.Markdown("# Winning trades percentage from weekly trades by trader")
285
  with gr.Row():
286
  metrics_text = get_metrics_text()
287
  with gr.Row():
288
-
289
  winning_metric = plot_winning_metric_per_trader(weekly_winning_metrics)
290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  demo.queue(default_concurrency_limit=40).launch()
 
131
  weekly_winning_metrics = compute_winning_metrics_by_trader(
132
  trader_agents_data=trader_agents_data
133
  )
134
+ weekly_agent_winning_metrics = compute_winning_metrics_by_trader(
135
+ trader_agents_data=trader_agents_data, trader_filter="agent"
136
+ )
137
+ weekly_non_agent_winning_metrics = compute_winning_metrics_by_trader(
138
+ trader_agents_data=trader_agents_data, trader_filter="non_agent"
139
+ )
140
+
141
  with demo:
142
  gr.HTML("<h1>Trader agents monitoring dashboard </h1>")
143
  gr.Markdown(
 
236
  inputs=trader_na_details_selector,
237
  outputs=na_trader_markets_plot,
238
  )
239
+ # with gr.TabItem("🔥 Daily metrics (WIP)"):
240
+ # with gr.Row():
241
+ # gr.Markdown("# Daily metrics of last week of all traders")
242
+ # with gr.Row():
243
+ # trader_daily_details_selector = gr.Dropdown(
244
+ # label="Select a daily trader metric",
245
+ # choices=trader_metric_choices,
246
+ # value=default_trader_metric,
247
+ # )
248
+
249
+ # with gr.Row():
250
+ # with gr.Column(scale=3):
251
+ # trader_daily_markets_plot = (
252
+ # plot_trader_daily_metrics_by_market_creator(
253
+ # metric_name=default_trader_metric,
254
+ # traders_df=daily_metrics_by_market_creator,
255
+ # )
256
+ # )
257
+ # with gr.Column(scale=1):
258
+ # trade_details_text = get_metrics_text()
259
+
260
+ # def update_trader_daily_details(trader_detail):
261
+ # return plot_trader_daily_metrics_by_market_creator(
262
+ # metric_name=trader_detail,
263
+ # traders_df=daily_metrics_by_market_creator,
264
+ # )
265
+
266
+ # trader_daily_details_selector.change(
267
+ # update_trader_daily_details,
268
+ # inputs=trader_daily_details_selector,
269
+ # outputs=trader_daily_markets_plot,
270
+ # )
271
 
272
  with gr.TabItem("📉Closed Markets Kullback–Leibler divergence"):
273
  with gr.Row():
 
288
 
289
  with gr.TabItem("🎖️Weekly winning trades % per trader"):
290
  with gr.Row():
291
+ gr.Markdown("# Weekly winning trades percentage from all traders")
292
  with gr.Row():
293
  metrics_text = get_metrics_text()
294
  with gr.Row():
 
295
  winning_metric = plot_winning_metric_per_trader(weekly_winning_metrics)
296
 
297
+ # Agentic traders
298
+ with gr.Row():
299
+ gr.Markdown("# Weekly winning trades percentage from traders Agents")
300
+ with gr.Row():
301
+ metrics_text = get_metrics_text()
302
+ with gr.Row():
303
+ winning_metric = plot_winning_metric_per_trader(
304
+ weekly_agent_winning_metrics
305
+ )
306
+
307
+ # Non_agentic traders
308
+ with gr.Row():
309
+ gr.Markdown("# Weekly winning trades percentage from Non-agent traders")
310
+ with gr.Row():
311
+ metrics_text = get_metrics_text()
312
+ with gr.Row():
313
+ winning_metric = plot_winning_metric_per_trader(
314
+ weekly_non_agent_winning_metrics
315
+ )
316
+
317
  demo.queue(default_concurrency_limit=40).launch()
scripts/metrics.py CHANGED
@@ -224,7 +224,7 @@ def compute_daily_metrics_by_market_creator(
224
 
225
 
226
  def compute_winning_metrics_by_trader(
227
- trader_agents_data: pd.DataFrame,
228
  ) -> pd.DataFrame:
229
  """Function to compute the winning metrics at the trader level per week and with different market creators"""
230
  market_all = trader_agents_data.copy(deep=True)
@@ -234,6 +234,11 @@ def compute_winning_metrics_by_trader(
234
  final_traders = pd.concat([market_all, trader_agents_data], ignore_index=True)
235
  final_traders = final_traders.sort_values(by="creation_timestamp", ascending=True)
236
 
 
 
 
 
 
237
  winning_df = win_metrics_trader_level(final_traders)
238
  winning_df.head()
239
  return winning_df
 
224
 
225
 
226
  def compute_winning_metrics_by_trader(
227
+ trader_agents_data: pd.DataFrame, trader_filter: str = None
228
  ) -> pd.DataFrame:
229
  """Function to compute the winning metrics at the trader level per week and with different market creators"""
230
  market_all = trader_agents_data.copy(deep=True)
 
234
  final_traders = pd.concat([market_all, trader_agents_data], ignore_index=True)
235
  final_traders = final_traders.sort_values(by="creation_timestamp", ascending=True)
236
 
237
+ if trader_filter == "agentic":
238
+ final_traders = final_traders.loc[final_traders["staking"] != "non_agent"]
239
+ else: # non_agent traders
240
+ final_traders = final_traders.loc[final_traders["staking"] == "non_agent"]
241
+
242
  winning_df = win_metrics_trader_level(final_traders)
243
  winning_df.head()
244
  return winning_df