增加移动平均线
Increased Moving Averages
我想计算增加的移动平均线。
我的主要目标是增加 MA,例如第一个 MA 是第一个值的平均值,下一个 MA 是前 2 个值的平均值,下一个 MA 是前 4 个值的平均值,下一个 MA 是前 6 个值的平均值等等。
如何在 Python 中使用 numpy 库来完成此操作?
我正在使用 Python 对时间序列数据进行分析。我也对移动平均线感兴趣,为了计算我的目标变量的移动平均线,我使用以下函数计算我的目标变量的 MA。
def movingaverage(values, avg_number):
weights = np.repeat(1.0, avg_number)/avg_number
smas = np.convolve(values, weights, 'valid')
return smas
在这个函数中,我提供了我的 pandas 系列和要计算的平均数。相应的平均值。
现在,我想计算增加的移动平均线。像上面一样,平均值是在固定数字上计算的,比如 90。
但是,在 reduced/increased 移动平均线的情况下,这个数字将 reduce/increase 在每个下一个值。
我的主要目标是增加 MA,例如第一个 MA 是第一个值的平均值,下一个 MA 是前 2 个值的平均值,下一个 MA 是前 4 个值的平均值,下一个 MA 是前 6 个值的平均值等等。
如何在 Python 中使用 numpy 库来完成此操作?
如果输入为[1,5,3,6,8,4,6,8,4,2,3,5,8,6,4]
,输出将增加移动平均线,如[1,3,3,3.75....]
您可以使用 cumsum
和 np.arange
即
x = np.array([1,5,3,6,8,4,6,8,4,2,3,5,8,6,4])
y = x.cumsum()/np.arange(1,len(x)+1)
输出:
array([ 1. , 3. , 3. , 3.75 , 4.6 ,
4.5 , 4.71428571, 5.125 , 5. , 4.7 ,
4.54545455, 4.58333333, 4.84615385, 4.92857143, 4.86666667])
我想计算增加的移动平均线。
我的主要目标是增加 MA,例如第一个 MA 是第一个值的平均值,下一个 MA 是前 2 个值的平均值,下一个 MA 是前 4 个值的平均值,下一个 MA 是前 6 个值的平均值等等。
如何在 Python 中使用 numpy 库来完成此操作?
我正在使用 Python 对时间序列数据进行分析。我也对移动平均线感兴趣,为了计算我的目标变量的移动平均线,我使用以下函数计算我的目标变量的 MA。
def movingaverage(values, avg_number):
weights = np.repeat(1.0, avg_number)/avg_number
smas = np.convolve(values, weights, 'valid')
return smas
在这个函数中,我提供了我的 pandas 系列和要计算的平均数。相应的平均值。
现在,我想计算增加的移动平均线。像上面一样,平均值是在固定数字上计算的,比如 90。
但是,在 reduced/increased 移动平均线的情况下,这个数字将 reduce/increase 在每个下一个值。
我的主要目标是增加 MA,例如第一个 MA 是第一个值的平均值,下一个 MA 是前 2 个值的平均值,下一个 MA 是前 4 个值的平均值,下一个 MA 是前 6 个值的平均值等等。
如何在 Python 中使用 numpy 库来完成此操作?
如果输入为[1,5,3,6,8,4,6,8,4,2,3,5,8,6,4]
,输出将增加移动平均线,如[1,3,3,3.75....]
您可以使用 cumsum
和 np.arange
即
x = np.array([1,5,3,6,8,4,6,8,4,2,3,5,8,6,4])
y = x.cumsum()/np.arange(1,len(x)+1)
输出:
array([ 1. , 3. , 3. , 3.75 , 4.6 ,
4.5 , 4.71428571, 5.125 , 5. , 4.7 ,
4.54545455, 4.58333333, 4.84615385, 4.92857143, 4.86666667])