cyberosa
commited on
Commit
·
7839697
1
Parent(s):
efabdf9
winning graph by trader types
Browse files- app.py +60 -34
- 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 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
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("#
|
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
|