gpt4 book ai didi

pandas - Pandas 计算 ewm 错误吗?

转载 作者:行者123 更新时间:2023-12-04 05:06:24 25 4
gpt4 key购买 nike

当尝试从数据框中的金融数据计算指数移动平均线 (EMA) 时,Pandas 的 ewm 方法似乎不正确。

以下链接很好地解释了基础知识:
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averages

在去 Pandas 解释时,采取的方法如下(使用“调整”参数为 False):

   weighted_average[0] = arg[0];
weighted_average[i] = (1-alpha) * weighted_average[i-1] + alpha * arg[i]

这在我看来是不正确的。 “arg”应该是(例如)收盘值,但是,arg[0] 是第一个平均值(即所选周期长度的第一个数据系列的简单平均值),而不是第一个收盘值.因此 arg[0] 和 arg[i] 永远不可能来自相同的数据。使用“min_periods”参数似乎不能解决这个问题。

谁能解释一下如何(或是否)可以使用 Pandas 来正确计算数据的 EMA?

最佳答案

有几种方法可以初始化指数移动平均线,所以我不会说 Pandas 做错了,只是不同。

这是一种根据需要计算它的方法:

In [20]: s.head()
Out[20]:
0 22.27
1 22.19
2 22.08
3 22.17
4 22.18
Name: Price, dtype: float64

In [21]: span = 10

In [22]: sma = s.rolling(window=span, min_periods=span).mean()[:span]

In [24]: rest = s[span:]

In [25]: pd.concat([sma, rest]).ewm(span=span, adjust=False).mean()
Out[25]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 22.221000
10 22.208091
11 22.241165
12 22.266408
13 22.328879
14 22.516356
15 22.795200
16 22.968800
17 23.125382
18 23.275312
19 23.339801
20 23.427110
21 23.507635
22 23.533520
23 23.471062
24 23.403596
25 23.390215
26 23.261085
27 23.231797
28 23.080561
29 22.915004
Name: Price, dtype: float64

关于pandas - Pandas 计算 ewm 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com