我正在定义价格动量是给定股票过去动量的平均值n days.
反过来,动量是一种分类:如果当天的收盘价高于前一天,则每天标记为 1;如果当天的收盘价低于前一天,则标记为 -1。
我的库存变化百分比如下:
df['close in percent'] = np.array([0.27772152, 1.05468772,
0.124156 , -0.39298394,
0.56415267, 1.67812005])
momentum = df['close in percent'].apply(lambda x: 1 if x > 0 else -1).values
Momentum
应该:[1,1,1,-1,1,1]
.
所以如果我找到最后的平均动量n = 3 天,我希望我的价格动量是:
Price_momentum = [Nan, Nan, 1, 1/3, 1/3, 1/3]
我设法使用以下代码让它工作,但这非常慢(数据集有 5000 多行,执行需要 10 分钟)。
for i in range(3,len(df)+1,1):
data = np.array(momentum[i-3:i])
df['3_day_momentum'].iloc[i-1]=data.mean()