cyberosa
commited on
Commit
·
09ddc82
1
Parent(s):
f0f1e9a
DAA graphs based on Dune data
Browse files- app.py +42 -47
- tabs/daily_graphs.py +21 -1
app.py
CHANGED
@@ -33,7 +33,7 @@ from tabs.daily_graphs import (
|
|
33 |
plot_daily_metrics,
|
34 |
trader_daily_metric_choices,
|
35 |
default_daily_metric,
|
36 |
-
|
37 |
)
|
38 |
from scripts.utils import get_traders_family
|
39 |
from tabs.market_plots import (
|
@@ -137,14 +137,21 @@ def load_all_data():
|
|
137 |
)
|
138 |
df7 = pd.read_parquet(all_mech_calls_df)
|
139 |
|
140 |
-
#
|
141 |
-
|
142 |
repo_id="valory/Olas-predict-dataset",
|
143 |
-
filename="
|
144 |
repo_type="dataset",
|
145 |
)
|
146 |
-
df8 = pd.read_parquet(
|
147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
|
149 |
|
150 |
def prepare_data():
|
@@ -157,7 +164,8 @@ def prepare_data():
|
|
157 |
retention_df,
|
158 |
active_traders,
|
159 |
all_mech_calls,
|
160 |
-
|
|
|
161 |
) = load_all_data()
|
162 |
all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
|
163 |
"UTC"
|
@@ -204,40 +212,27 @@ def prepare_data():
|
|
204 |
.dt.start_time.dt.strftime("%b-%d-%Y")
|
205 |
)
|
206 |
|
207 |
-
# prepare daa
|
208 |
-
|
209 |
-
|
210 |
-
[
|
211 |
-
"market_creator",
|
212 |
-
"trader_address",
|
213 |
-
"creation_timestamp",
|
214 |
-
]
|
215 |
-
]
|
216 |
-
selected_trades.drop_duplicates(inplace=True)
|
217 |
-
selected_trades["tx_date"] = pd.to_datetime(
|
218 |
-
selected_trades["creation_timestamp"].dt.date, format="%b-%d-%Y"
|
219 |
)
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
gnosis_txs_df["tx_date"] = pd.to_datetime(
|
230 |
-
gnosis_txs_df["tx_date"], format="%b-%d-%Y"
|
231 |
)
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
]
|
239 |
-
daa_df = pd.concat([selected_trades, gnosis_txs_df], ignore_index=True)
|
240 |
-
daa_df.drop_duplicates(inplace=True)
|
241 |
return (
|
242 |
traders_data,
|
243 |
closed_markets,
|
@@ -246,7 +241,8 @@ def prepare_data():
|
|
246 |
retention_df,
|
247 |
active_traders,
|
248 |
all_mech_calls,
|
249 |
-
|
|
|
250 |
)
|
251 |
|
252 |
|
@@ -258,7 +254,8 @@ def prepare_data():
|
|
258 |
raw_retention_df,
|
259 |
active_traders,
|
260 |
all_mech_calls,
|
261 |
-
|
|
|
262 |
) = prepare_data()
|
263 |
|
264 |
retention_df = prepare_retention_dataset(
|
@@ -690,16 +687,14 @@ with demo:
|
|
690 |
with gr.Row():
|
691 |
gr.Markdown(" # Daily active agents in Pearl markets")
|
692 |
with gr.Row():
|
693 |
-
rolling_avg_plot =
|
694 |
-
|
695 |
-
market_creator="pearl",
|
696 |
)
|
697 |
with gr.Row():
|
698 |
gr.Markdown(" # Daily active agents in QS markets")
|
699 |
with gr.Row():
|
700 |
-
rolling_avg_plot =
|
701 |
-
|
702 |
-
market_creator="quickstart",
|
703 |
)
|
704 |
|
705 |
with gr.TabItem("📉 Markets Kullback–Leibler divergence"):
|
|
|
33 |
plot_daily_metrics,
|
34 |
trader_daily_metric_choices,
|
35 |
default_daily_metric,
|
36 |
+
plot_rolling_average_dune,
|
37 |
)
|
38 |
from scripts.utils import get_traders_family
|
39 |
from tabs.market_plots import (
|
|
|
137 |
)
|
138 |
df7 = pd.read_parquet(all_mech_calls_df)
|
139 |
|
140 |
+
# daa for quickstart and pearl
|
141 |
+
daa_qs_df = hf_hub_download(
|
142 |
repo_id="valory/Olas-predict-dataset",
|
143 |
+
filename="latest_result_DAA_QS.parquet",
|
144 |
repo_type="dataset",
|
145 |
)
|
146 |
+
df8 = pd.read_parquet(daa_qs_df)
|
147 |
+
|
148 |
+
daa_pearl_df = hf_hub_download(
|
149 |
+
repo_id="valory/Olas-predict-dataset",
|
150 |
+
filename="latest_result_DAA_Pearl.parquet",
|
151 |
+
repo_type="dataset",
|
152 |
+
)
|
153 |
+
df9 = pd.read_parquet(daa_pearl_df)
|
154 |
+
return df1, df2, df3, df4, df5, df6, df7, df8, df9
|
155 |
|
156 |
|
157 |
def prepare_data():
|
|
|
164 |
retention_df,
|
165 |
active_traders,
|
166 |
all_mech_calls,
|
167 |
+
daa_qs_df,
|
168 |
+
daa_pearl_df,
|
169 |
) = load_all_data()
|
170 |
all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
|
171 |
"UTC"
|
|
|
212 |
.dt.start_time.dt.strftime("%b-%d-%Y")
|
213 |
)
|
214 |
|
215 |
+
# prepare the daa dataframes
|
216 |
+
daa_pearl_df["day"] = pd.to_datetime(
|
217 |
+
daa_pearl_df["day"], format="%Y-%m-%d 00:00:00.000 UTC"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
)
|
219 |
+
daa_qs_df["day"] = pd.to_datetime(
|
220 |
+
daa_qs_df["day"], format="%Y-%m-%d 00:00:00.000 UTC"
|
221 |
+
)
|
222 |
+
daa_pearl_df["day"] = daa_pearl_df["day"].dt.tz_localize("UTC")
|
223 |
+
daa_qs_df["day"] = daa_qs_df["day"].dt.tz_localize("UTC")
|
224 |
+
daa_qs_df["tx_date"] = pd.to_datetime(daa_qs_df["day"]).dt.date
|
225 |
+
daa_pearl_df["tx_date"] = pd.to_datetime(daa_pearl_df["day"]).dt.date
|
226 |
+
daa_pearl_df["seven_day_trailing_avg"] = pd.to_numeric(
|
227 |
+
daa_pearl_df["seven_day_trailing_avg"], errors="coerce"
|
|
|
|
|
228 |
)
|
229 |
+
daa_pearl_df["seven_day_trailing_avg"] = daa_pearl_df[
|
230 |
+
"seven_day_trailing_avg"
|
231 |
+
].round(2)
|
232 |
+
daa_qs_df["seven_day_trailing_avg"] = pd.to_numeric(
|
233 |
+
daa_qs_df["seven_day_trailing_avg"], errors="coerce"
|
234 |
+
)
|
235 |
+
daa_qs_df["seven_day_trailing_avg"] = daa_qs_df["seven_day_trailing_avg"].round(2)
|
|
|
|
|
236 |
return (
|
237 |
traders_data,
|
238 |
closed_markets,
|
|
|
241 |
retention_df,
|
242 |
active_traders,
|
243 |
all_mech_calls,
|
244 |
+
daa_qs_df,
|
245 |
+
daa_pearl_df,
|
246 |
)
|
247 |
|
248 |
|
|
|
254 |
raw_retention_df,
|
255 |
active_traders,
|
256 |
all_mech_calls,
|
257 |
+
daa_qs_df,
|
258 |
+
daa_pearl_df,
|
259 |
) = prepare_data()
|
260 |
|
261 |
retention_df = prepare_retention_dataset(
|
|
|
687 |
with gr.Row():
|
688 |
gr.Markdown(" # Daily active agents in Pearl markets")
|
689 |
with gr.Row():
|
690 |
+
rolling_avg_plot = plot_rolling_average_dune(
|
691 |
+
daa_pearl_df,
|
|
|
692 |
)
|
693 |
with gr.Row():
|
694 |
gr.Markdown(" # Daily active agents in QS markets")
|
695 |
with gr.Row():
|
696 |
+
rolling_avg_plot = plot_rolling_average_dune(
|
697 |
+
daa_qs_df,
|
|
|
698 |
)
|
699 |
|
700 |
with gr.TabItem("📉 Markets Kullback–Leibler divergence"):
|
tabs/daily_graphs.py
CHANGED
@@ -265,7 +265,7 @@ def plot_rolling_average(
|
|
265 |
print(rolling_avg_df.head())
|
266 |
|
267 |
# Ensure 'creation_date' is a column, not an index
|
268 |
-
if "
|
269 |
rolling_avg_df = rolling_avg_df.reset_index()
|
270 |
|
271 |
fig = px.bar(
|
@@ -281,3 +281,23 @@ def plot_rolling_average(
|
|
281 |
return gr.Plot(
|
282 |
value=fig,
|
283 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
print(rolling_avg_df.head())
|
266 |
|
267 |
# Ensure 'creation_date' is a column, not an index
|
268 |
+
if "tx_date" not in rolling_avg_df.columns:
|
269 |
rolling_avg_df = rolling_avg_df.reset_index()
|
270 |
|
271 |
fig = px.bar(
|
|
|
281 |
return gr.Plot(
|
282 |
value=fig,
|
283 |
)
|
284 |
+
|
285 |
+
|
286 |
+
def plot_rolling_average_dune(
|
287 |
+
daa_df: pd.DataFrame,
|
288 |
+
) -> gr.Plot:
|
289 |
+
"""Function to plot the rolling average of daily active traders"""
|
290 |
+
|
291 |
+
fig = px.bar(
|
292 |
+
daa_df,
|
293 |
+
x="tx_date",
|
294 |
+
y="seven_day_trailing_avg",
|
295 |
+
)
|
296 |
+
fig.update_layout(
|
297 |
+
xaxis_title="Date",
|
298 |
+
yaxis_title="7-day rolling average of DAA",
|
299 |
+
)
|
300 |
+
|
301 |
+
return gr.Plot(
|
302 |
+
value=fig,
|
303 |
+
)
|