File size: 1,932 Bytes
2ca4655
786c7d5
2ca4655
 
 
 
 
f9ef62b
 
 
 
 
b60f995
285f2a6
2ca4655
 
 
 
 
 
 
 
786c7d5
 
f9ef62b
b60f995
960332d
 
 
 
 
 
b60f995
 
960332d
f9ef62b
 
2ca4655
960332d
2ca4655
 
278fab8
2ca4655
f7c2ff7
 
 
 
 
 
 
 
2ca4655
 
 
285f2a6
 
 
2ca4655
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import logging
from utils import measure_execution_time, DATA_DIR, TMP_DIR
from profitability import (
    analyse_all_traders,
    label_trades_by_staking,
)
import pandas as pd
from nr_mech_calls import (
    create_unknown_traders_df,
    compute_daily_mech_calls,
    transform_to_datetime,
)
from markets import check_current_week_data
from staking import generate_retention_activity_file

logging.basicConfig(level=logging.INFO)


@measure_execution_time
def prepare_live_metrics(
    tools_filename="new_tools.parquet", trades_filename="new_fpmmTrades.parquet"
):
    fpmmTrades = pd.read_parquet(TMP_DIR / trades_filename)
    tools = pd.read_parquet(TMP_DIR / tools_filename)

    # TODO if monday data of the week is missing in new_fpmmTrades then take it from the general file
    try:
        fpmmTrades["creationTimestamp"] = fpmmTrades["creationTimestamp"].apply(
            lambda x: transform_to_datetime(x)
        )
    except Exception as e:
        print(f"Transformation not needed")
    # check missing data from Monday
    fpmmTrades = check_current_week_data(fpmmTrades)

    print("Computing the estimated mech calls dataset")
    trader_mech_calls = compute_daily_mech_calls(fpmmTrades=fpmmTrades, tools=tools)
    print("Analysing trades...")
    all_trades_df = analyse_all_traders(fpmmTrades, trader_mech_calls, daily_info=True)

    # staking label
    all_trades_df = label_trades_by_staking(all_trades_df)

    # create the unknown traders dataset
    unknown_traders_df, all_trades_df = create_unknown_traders_df(
        trades_df=all_trades_df
    )
    unknown_traders_df.to_parquet(
        TMP_DIR / "unknown_daily_traders.parquet", index=False
    )

    # save into a separate file
    all_trades_df.to_parquet(DATA_DIR / "daily_info.parquet", index=False)

    # prepare the retention info file
    generate_retention_activity_file()


if __name__ == "__main__":
    prepare_live_metrics()