我想用ewma(指数加权移动平均)函数,在Python的pandas库中提供,具有等效的Julia函数。在Julia中,有一个名为MarketTechnicals.ema(m)
的函数用于计算EMA值。然而,该函数从大小为n
的数据序列中的第m
个元素开始计算值,因此,结果数据的长度为(n-m+1)
。虽然这是可以理解的,因为跨度为m
,但无论跨度长度是多少,panda ewma函数都从第一个元素开始计算,如下所示:
#python
import pandas as pd
data = {"val": [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
df['val'].ewm(m).mean()
#output m=3
0 1.000000
1 1.571429
2 2.189189
3 2.851429
4 3.555698
5 4.299079
如果df ['val']的长度为n,则此Python代码将返回n个值。但Julia代码段后面的长度为(n-m+1)
# julia
using DataFrames, MarketTechnicals
df = DataFrame(val = [1, 2, 3, 4, 5, 6])
ema(df.val,m)
#output m=3
4×1 Matrix{Float64}:
2.0
3.0
4.0
5.0
我偶然发现了一个repo,它允许在Julia中使用pandas功能,但我不清楚语法,也无法在网上找到任何示例。
有人能帮我用pandas ewma函数的Julia等价物吗?
1条答案
按热度按时间cu6pst1q1#
注:以下代码受this blog中所提出方法的启发。在以下函数中,
a
是平滑系数: