# 载入你的数据集
data = {
‘Close’: np.random.randint(50, 150, 100),
A’: np.random.randint(30, 70, 100),
B’: np.random.randint(-90, -10, 100),
C_Signal’: np.random.randint(0, 2, 100)
}
df = pd.DataFrame(data)
# df[‘Alpha_Factor_1’] = df[‘Close’] – df[‘Close’].shift(1)df[‘Alpha_Factor_2’] = np.where(df[‘Close’] > df[‘Close’].rolling(window=20).max(), 1, 0)df[‘Alpha_Factor_3’] = np.where(df[‘Close’].rolling(window=10).mean() > df[‘Close’].rolling(window=20).mean(), 1, 0)
alpha_factors_values = df.filter(like=’Alpha_Factor’).values
print(alpha_factors_values)
Alpha_Factor_1: 这个因子是价格的变化量,代表了当天收盘价与前一天收盘价之间的差异。它可以反映股票价格在短期内的波动情况。
Alpha_Factor_2: 这个因子涉及区间突破信号,判断当天收盘价是否突破了过去20个交易日内的最高价。如果收盘价高于这一区间的最高价,信号为1,否则为0。这类信号常被用作交易策略中的突破型信号。
Price_Momentum(价格动量因子): 这个因子计算了当天收盘价与前一天收盘价之间的差异,类似于 Alpha_Factor_1 ,但在代码中没有明确命名这个因子。
Breakout_Signal(区间突破信号): 与 Alpha_Factor_2 类似,这个因子判断当天收盘价是否突破了过去20个交易日内的最高价。
Moving_Average_Cross(均线交叉信号): 这个因子通过比较10日均线和20日均线的关系来判断是否出现了均线的金叉(10日均线超过20日均线)。这种策略用于捕捉长期趋势的变化。
“Price_Change_Index”:反映价格变动的指数。 “Breakout_Indicator”:代表突破信号的指标。 “Momentum_Trigger”:暗示价格动能的触发器。 “Trend_Crossing_Metric”:描述趋势交叉的度量。
IC(信息系数)和IR(信息比率)是常用的衡量标准。IC度量了因子值与未来收益的相关性,IR衡量了因子收益与其波动性之比。通常,IC的绝对值越接近1,说明因子对未来收益的预测能力越强,IR的值越高则代表风险调整后的收益率越好。
价格变动指数(Price_Change_Index)、突破信号指标(Breakout_Indicator)
动量触发器(Momentum_Trigger)、趋势交叉度量(Trend_Crossing_Metric)
Price_Change_Index:IC0.3-0.5,IR0.5-1.0。
Breakout_Indicator:IC0.4-0.6,IR0.6-1.2。
Momentum_Trigger:IC0.2-0.4,IR0.3-0.7。
Trend_Crossing_Metric:IC0.5-0.7,IR0.8-1.5。