Spaces:
Runtime error
Runtime error
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
|