相关疑难解决方法(0)

在python中找到价格动量的有效方法:平均列的最后n个条目

我定义的价格动量是过去n天给定股票动量的平均值.

反过来,动量是一种分类:如果当天的收盘价高于前一天,则每天标记为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
Run Code Online (Sandbox Code Playgroud)

Momentum应该是:[1,1,1,-1,1,1].

因此,如果我发现过去n = 3天的平均动量,我希望我的价格势头为:

Price_momentum = [Nan, Nan, 1, 1/3, 1/3, 1/3]
Run Code Online (Sandbox Code Playgroud)

我设法使用以下代码使其工作,但这非常慢(数据集是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()
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

1
推荐指数
2
解决办法
2862
查看次数

标签 统计

numpy ×1

pandas ×1

python ×1