1. 数据准备

1.1 计算因子IC重要函数

def get_clean_factor_and_forward_returns(factor,
                                         prices,
                                         groupby=None,
                                         binning_by_group=False,
                                         quantiles=5,
                                         bins=None,
                                         periods=(1, 5, 10),
                                         filter_zscore=20,
                                         groupby_labels=None,
                                         max_loss=0.35,
                                         zero_aware=False,
                                         cumulative_returns=True)

1.2 准备因子数据

请添加图片描述

code = ["IC9999.CCFX", "IH9999.CCFX", "IF9999.CCFX"]
start_date = "2022-1-18"
end_date = "2023-1-18"
fre = "1d"
period = 5

# Todo: 循环获取因子数据
factor_df = pd.DataFrame()

for future in code:
    df = get_price(future, start_date=start_date, end_date=end_date, frequency=fre, panel=False)
    df["mom"] = momentum_factor(df, time_period=period)
    df["code"] = [future] * len(df)

factor_df = pd.concat([factor_df, df[["code", "mom"]]])
factor_df = factor_df.reset_index()
factor_df = factor_df.sort_values(by="index")
factor_df = factor_df.set_index(["index", "code"])
print(factor_df)

请添加图片描述

factor_series = factor_df["mom"]
print(factor_series)

请添加图片描述

1.3 行情数据准备

请添加图片描述

code = ["IC9999.CCFX", "IH9999.CCFX", "IF9999.CCFX"]
df = get_price(code, start_date=start_date, end_date=end_date, frequency=fre, panel=False, fields=["close"])
df = df.set_index(["time", "code"])
df = df.close.unstack()

请添加图片描述

1.4 注意点

需要修改 alphalens.utils.compute_forward_returns中源码(342行)

# df.index.levels[0].name = "date"
# df.index.levels[1].name = "asset"
df.index.set_names(["date", "asset"], inplace=True)

2. 计算

2.1 IC 计算以及结果展示

# Todo: 生成alphalens通用结构
factor_return = utils.get_clean_factor_and_forward_returns(factor_series, df)
print(factor_return)

# 获取每天的IC结果
res_ic = performance.factor_information_coefficient(factor_return)
print(res_ic)

alphalens.plotting.plot_ic_ts(res_ic)
alphalens.plotting.plot_ic_hist(res_ic)
alphalens.plotting.plot_ic_qq(res_ic)

plt.show()

请添加图片描述

请添加图片描述
请添加图片描述

2.2 因子收益率

请添加图片描述

factor_pnl = tears.create_returns_tear_sheet(factor_return)

请添加图片描述

请添加图片描述

  • 分组因子的累积收益(一期)

请添加图片描述

请添加图片描述

2.3 统计指标

因子名称 因子平均收益 IC mean IC std IC > 0.02 IR
0.0004 -0.017 0.192 0.425 -0.0885

|

请添加图片描述

2.3 打分依据

  • 因子平均收益 > 0.002
  • IC mean > 0.03
  • IC > 0.02(50%)
  • IR > 0.3

2.4 研报统计结果

2.5 注意点

原文地址:https://blog.csdn.net/xu624735206/article/details/129162947

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44956.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注