Coverage for src/ifunnel/financial_data_preprocessing/gams_transfer.py: 100%
0 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-12 09:14 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-12 09:14 +0000
1# import os
2#
3# import gams.transfer as gt
4# import pandas as pd
5# from tqdm import tqdm
6#
7#
8# def save_into_gdx(monthly_returns_df):
9# # Initialize GAMS connection
10# working_dir = os.getcwd()
11#
12# # *** CREATE GDX FILE ***
13# # Initialization for GAMS version v47
14# # Documentation: https://www.gams.com/latest/docs/API_PY_GAMSTRANSFER.html#PY_GAMSTRANSFER_INSTALLATION
15# m = gt.Container(system_directory="/Library/Frameworks/GAMS.framework/Versions/47/Resources/")
16#
17# # Sets
18# asset_set = m.addSet(
19# "Asset",
20# records=[a[0] for a in monthly_returns_df.columns],
21# description="Asset ISIN",
22# )
23# asset_name_set = m.addSet(
24# "AssetName",
25# records=[a[1] for a in monthly_returns_df.columns],
26# description="Asset Name",
27# )
28# date_set = m.addSet(
29# "Date",
30# records=[str(date.date()) for date in monthly_returns_df.index],
31# description="Date",
32# )
33#
34# # Parameter
35# # Save weekly returns in a gams needed format
36# returns_gams = pd.DataFrame(columns=["Date", "Asset", "AssetName", "Return"])
37# for date in tqdm(monthly_returns_df.index):
38# for asset in monthly_returns_df.columns:
39# return_value = monthly_returns_df.loc[date, asset]
40# returns_gams.loc[len(returns_gams)] = [
41# str(date.date()),
42# asset[0],
43# asset[1],
44# float(return_value),
45# ]
46#
47# m.addParameter(
48# "AssetReturn",
49# domain=[date_set, asset_set, asset_name_set],
50# records=returns_gams,
51# description="Weekly adjusted returns",
52# )
53#
54# m.write(os.path.join(os.path.dirname(working_dir), "financial_data/input_data.gdx"))
55#
56#
57# if __name__ == "__main__":
58# monthly_returns = pd.read_parquet(
59# os.path.join(
60# os.path.dirname(os.getcwd()),
61# "financial_data/all_etfs_rets_2024.parquet.gzip",
62# )
63# )
64#
65# save_into_gdx(monthly_returns)