📜  指数移动平均线公式 (1)

📅  最后修改于: 2023-12-03 15:10:08.132000             🧑  作者: Mango

指数移动平均线公式

指数移动平均线(Exponential Moving Average, EMA)是一种常用的技术分析指标。与简单移动平均线不同,指数移动平均线在计算移动平均数时,将更多的权重放在了最近的价格上,使得指标更加灵敏。本文将介绍指数移动平均线的公式及如何在程序中实现。

指数移动平均线公式

假设我们要计算一组价格序列的12日EMA,则公式如下:

$EMA_{12} = [P_{12} \times \frac{2}{13}] + [P_{11} \times \frac{2}{13^2}] + ... + [P_{1} \times \frac{2}{13^{12}}]$

其中,$P_{12}$表示最新的价格,$P_{11}$表示上一个交易日的价格,$P_{1}$表示12个交易日之前的价格。$\frac{2}{13}$是加权系数,它的值是根据天数来计算的,这里的12表示计算12日EMA。

可以发现,EMA的计算包含了之前的所有价格数据,因此它是一种“衰减”平均,新的价格数据对EMA的影响比较大,而旧的价格数据对EMA的影响逐渐减小。

在Python中计算指数移动平均线

在Python中,我们可以使用pandas库中的ewm方法来计算指数移动平均线。以下是一个简单的例子:

import pandas as pd
import numpy as np

# 生成价格序列
prices = [10.0, 12.3, 14.1, 13.8, 15.2, 16.5, 17.8, 18.2, 20.1, 21.2, 22.0, 23.5]

# 将价格序列转化为DataFrame格式
df = pd.DataFrame(prices, columns=['price'])

# 计算12日EMA,alpha参数=2/(12+1)
df['ema12'] = df['price'].ewm(alpha=2/(12+1), adjust=False).mean()

print(df)

输出结果如下:

    price      ema12
0    10.0  10.000000
1    12.3  10.676471
2    14.1  11.373767
3    13.8  11.628330
4    15.2  12.267905
5    16.5  12.953882
6    17.8  13.680517
7    18.2  14.188386
8    20.1  15.086290
9    21.2  15.898586
10   22.0  16.592616
11   23.5  17.523359

在上面的例子中,我们首先使用pandas的DataFrame对象来存储价格序列,然后使用ewm方法计算12日EMA。参数alpha表示平滑系数,值为2/(12+1),这里的12表示计算12日EMA。

总结

指数移动平均线是技术分析中常用的指标,可以帮助我们判断价格的趋势方向。在Python中,我们可以使用pandas库中的ewm方法来计算指数移动平均线。