Code:
import my_functions as mf
regular = "mdl110_score"
region = "USA"
neutralization = "STATISTICAL"
oprt_list = [
#"rank({data})",
"zscore({data})",
"ts_rank({data}, 252)",
"ts_zscore({data}, 252)",
"ts_delta({data}, 252)",
"rank({data} - ts_delay({data}, 252))",
"rank({data} / ts_delay({data}, 252))",
"rank(ts_delta({data}, 120))",
"normalize(quantile({data}))",
"group_rank({data}, bucket(rank(cap), range='0,1,0.1'))",
"group_zscore(group_neutralize({data}, bucket(rank(cap), range='0.1,1,0.1')), exchange)"
]
expr_list = mf.generate_expr_list(regular, oprt_list)
REGION_UNIVERSE_MAP = {
"USA": "TOP3000",
"ASI": "MINVOL1M",
"GLB": "MINVOL1M",
"EUR": "TOP2500",
"IND": "TOP500",
}
universe = REGION_UNIVERSE_MAP.get(region, "MINVOL1M")
max_trade_value = "ON" if region == "ASI" else "OFF"
alpha_spec = [
ace.generate_alpha(
regular=expr,
region=region,
universe=universe,
neutralization=neutralization,
truncation=0.01,
max_trade=max_trade_value,
)
for expr in expr_list
]
sim_result = ace.simulate_alpha_list_multi(s, alpha_spec)