cyberosa commited on
Commit
2dc3f1e
·
1 Parent(s): 7bb8323

updating 2weeks avg roi graph

Browse files
Files changed (2) hide show
  1. app.py +16 -6
  2. tabs/agent_graphs.py +6 -77
app.py CHANGED
@@ -162,7 +162,15 @@ def load_all_data():
162
  repo_type="dataset",
163
  )
164
  df10 = pd.read_parquet(weekly_avg_roi_pearl_agents)
165
- return df1, df2, df3, df4, df5, df6, df7, df8, df9, df10
 
 
 
 
 
 
 
 
166
 
167
 
168
  def prepare_data():
@@ -178,6 +186,7 @@ def prepare_data():
178
  daa_qs_df,
179
  daa_pearl_df,
180
  weekly_avg_roi_pearl_agents,
 
181
  ) = load_all_data()
182
  all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
183
  "UTC"
@@ -256,6 +265,7 @@ def prepare_data():
256
  daa_qs_df,
257
  daa_pearl_df,
258
  weekly_avg_roi_pearl_agents,
 
259
  )
260
 
261
 
@@ -270,6 +280,7 @@ def prepare_data():
270
  daa_qs_df,
271
  daa_pearl_df,
272
  weekly_avg_roi_pearl_agents,
 
273
  ) = prepare_data()
274
 
275
  retention_df = prepare_retention_dataset(
@@ -571,11 +582,10 @@ with demo:
571
  with gr.Row():
572
  gr.Markdown("# 2-weeks rolling average ROI for Pearl agents")
573
  with gr.Row():
574
- # pearl_rolling_avg_plot = plot_rolling_average_roi(
575
- # traders_data=traders_data,
576
- # pearl_agents=weekly_avg_roi_pearl_agents,
577
- # )
578
- print("WIP")
579
  with gr.Row():
580
  gr.Markdown("# Average weekly ROI for Pearl agents")
581
  with gr.Row():
 
162
  repo_type="dataset",
163
  )
164
  df10 = pd.read_parquet(weekly_avg_roi_pearl_agents)
165
+
166
+ # two_weeks_avg_roi_pearl_agents.parquet
167
+ two_weeks_avg_roi_pearl_agents = hf_hub_download(
168
+ repo_id="valory/Olas-predict-dataset",
169
+ filename="two_weeks_avg_roi_pearl_agents.parquet",
170
+ repo_type="dataset",
171
+ )
172
+ df11 = pd.read_parquet(two_weeks_avg_roi_pearl_agents)
173
+ return df1, df2, df3, df4, df5, df6, df7, df8, df9, df10, df11
174
 
175
 
176
  def prepare_data():
 
186
  daa_qs_df,
187
  daa_pearl_df,
188
  weekly_avg_roi_pearl_agents,
189
+ two_weeks_avg_roi_pearl_agents,
190
  ) = load_all_data()
191
  all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
192
  "UTC"
 
265
  daa_qs_df,
266
  daa_pearl_df,
267
  weekly_avg_roi_pearl_agents,
268
+ two_weeks_avg_roi_pearl_agents,
269
  )
270
 
271
 
 
280
  daa_qs_df,
281
  daa_pearl_df,
282
  weekly_avg_roi_pearl_agents,
283
+ two_weeks_avg_roi_pearl_agents,
284
  ) = prepare_data()
285
 
286
  retention_df = prepare_retention_dataset(
 
582
  with gr.Row():
583
  gr.Markdown("# 2-weeks rolling average ROI for Pearl agents")
584
  with gr.Row():
585
+ pearl_rolling_avg_plot = plot_rolling_average_roi(
586
+ two_weeks_avg_roi_pearl_agents
587
+ )
588
+
 
589
  with gr.Row():
590
  gr.Markdown("# Average weekly ROI for Pearl agents")
591
  with gr.Row():
tabs/agent_graphs.py CHANGED
@@ -24,37 +24,20 @@ def plot_rolling_average_dune(
24
  )
25
 
26
 
27
- def plot_rolling_average_roi(
28
- traders_data: pd.DataFrame, pearl_agents: pd.DataFrame
29
- ) -> gr.Plot:
30
- """Function to plot the rolling average of ROI for pearl agents"""
31
- # Get the list of unique addresses from the daa_pearl_df
32
- unique_addresses = pearl_agents["safe_address"].unique()
33
- # Filter the weekly_roi_df to include only those addresses
34
- filtered_traders_data = traders_data[
35
- traders_data["trader_address"].isin(unique_addresses)
36
- ].copy()
37
- # create the date column
38
- filtered_traders_data["creation_timestamp"] = pd.to_datetime(
39
- filtered_traders_data["creation_timestamp"]
40
- )
41
- filtered_traders_data["creation_date"] = filtered_traders_data[
42
- "creation_timestamp"
43
- ].dt.date
44
 
45
- # Get the 2-week rolling average of ROI
46
- rolling_avg_roi_df = get_twoweeks_rolling_average_roi(filtered_traders_data)
47
  print("Rolling average ROI DataFrame:")
48
- print(rolling_avg_roi_df.head())
49
 
50
  fig2 = px.bar(
51
- rolling_avg_roi_df,
52
  x="creation_date",
53
- y="roi",
54
  )
55
  fig2.update_layout(
56
  xaxis_title="Week",
57
- yaxis_title="2-week rolling average of ROI at the trader level",
58
  )
59
 
60
  return gr.Plot(
@@ -62,60 +45,6 @@ def plot_rolling_average_roi(
62
  )
63
 
64
 
65
- def get_twoweeks_rolling_average_roi(traders_data: pd.DataFrame) -> pd.DataFrame:
66
- """Function to get the 2-week rolling average of the ROI by market_creator and total"""
67
-
68
- # Create a copy to avoid SettingWithCopyWarning
69
- local_df = traders_data.copy()
70
-
71
- # Ensure creation_date is datetime64[ns]
72
- # Since creation_date comes from .dt.date, it's a date object, not datetime
73
- local_df["creation_date"] = pd.to_datetime(local_df["creation_date"])
74
-
75
- # Aggregate ROI at the date level
76
- daily_avg2 = local_df.groupby("creation_date")["roi"].mean().reset_index()
77
-
78
- # Set the datetime index
79
- daily_avg2 = daily_avg2.set_index("creation_date")
80
-
81
- # Now resample and rolling average
82
- weekly_avg2 = daily_avg2.resample("W").mean()
83
- rolling_avg = weekly_avg2.rolling(window=2).mean().reset_index()
84
-
85
- return rolling_avg
86
-
87
-
88
- def get_weekly_average_roi(traders_data: pd.DataFrame) -> pd.DataFrame:
89
- """Function to get the weekly average ROI by market_creator and total"""
90
-
91
- # Create a copy to avoid SettingWithCopyWarning
92
- local_df = traders_data.copy()
93
-
94
- # Ensure creation_date is datetime64[ns]
95
- # Since creation_date comes from .dt.date, it's a date object, not datetime
96
- local_df["creation_date"] = pd.to_datetime(local_df["creation_date"])
97
- # take the daily mean roi at the trader_address level
98
- daily_mean_roi = (
99
- local_df.groupby(["trader_address", "creation_date"])["roi"]
100
- .mean()
101
- .reset_index()
102
- )
103
-
104
- # Aggregate ROI at the date level first
105
- daily_avg = daily_mean_roi.groupby("creation_date")["roi"].mean().reset_index()
106
-
107
- # Set the datetime index
108
- daily_avg = daily_avg.set_index("creation_date")
109
-
110
- # Resample to weekly frequency and calculate mean
111
- weekly_avg = daily_avg.resample("W").mean().reset_index()
112
-
113
- # Remove NaN values
114
- weekly_avg = weekly_avg.dropna(subset=["roi"])
115
-
116
- return weekly_avg
117
-
118
-
119
  def plot_weekly_average_roi(weekly_avg_roi_df: pd.DataFrame) -> gr.Plot:
120
  """Function to plot the weekly average of ROI for pearl agents"""
121
 
 
24
  )
25
 
26
 
27
+ def plot_rolling_average_roi(two_weeks_avg_roi_pearl_agents: pd.DataFrame) -> gr.Plot:
28
+ """Function to plot the 2-weeks rolling average ROI for pearl agents"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
 
 
30
  print("Rolling average ROI DataFrame:")
31
+ print(two_weeks_avg_roi_pearl_agents.head())
32
 
33
  fig2 = px.bar(
34
+ two_weeks_avg_roi_pearl_agents,
35
  x="creation_date",
36
+ y="two_weeks_avg_roi",
37
  )
38
  fig2.update_layout(
39
  xaxis_title="Week",
40
+ yaxis_title="2-week rolling average ROI of pearl agents",
41
  )
42
 
43
  return gr.Plot(
 
45
  )
46
 
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  def plot_weekly_average_roi(weekly_avg_roi_df: pd.DataFrame) -> gr.Plot:
49
  """Function to plot the weekly average of ROI for pearl agents"""
50