📅  最后修改于: 2023-12-03 14:53:17.055000             🧑  作者: Mango
指数移动平均线(Exponential Moving Average,简称 EMA)是一种广泛应用于技术分析的指标,它给予较高权重给最近时期的数据,同时逐渐降低较早时期数据的权重。在 R 语言中,我们可以使用 TTR 包中的 EMA 函数来计算指数移动平均线。
在开始之前,我们需要先安装 TTR 包。TTR 包提供了许多流行的技术分析函数,包括 EMA 函数。
可以使用以下命令来安装 TTR 包:
install.packages("TTR")
安装完成后,可以使用以下命令加载 TTR 包:
library(TTR)
TTR 包中的 EMA 函数提供了许多可调参数:
以下是在 R 中计算指数移动平均线的示例:
# 创建一个包含随机数的向量
data <- rnorm(100)
# 计算指数移动平均线,周期为 10
ema <- EMA(data, n = 10)
# 输出结果
ema
输出结果:
[1] NA NA NA NA NA NA NA NA NA -0.0694725
[11] -0.3476817 -0.3995477 -0.3094073 -0.3387086 -0.2805554 -0.2821690 -0.2462495 -0.2763586 -0.2302856 -0.2349263
[21] -0.2487209 -0.2372522 -0.2255403 -0.2020507 -0.1963821 -0.2070451 -0.3125479 -0.4110669 -0.3449101 -0.2343575
[31] -0.3125321 -0.3064103 -0.3060577 -0.2805785 -0.2231961 -0.1992387 -0.2003368 -0.1846678 -0.3058228 -0.3168813
[41] -0.2680430 -0.2904077 -0.2243505 -0.1833676 -0.2326427 -0.2202278 -0.1312280 -0.1230355 -0.0782352 0.1007114
[51] -0.0037313 0.0225828 -0.0583405 -0.0464370 -0.1362468 -0.0526329 -0.1310470 -0.1281053 -0.1475482 -0.0392238
[61] -0.0167509 -0.1147174 -0.1354388 -0.2182836 -0.1297983 -0.1259147 -0.1058285 -0.1009334 -0.1813545 -0.1344644
[71] -0.1357041 -0.1962898 -0.3289870 -0.3077479 -0.1190919 -0.1844365 -0.1306221 -0.2726658 -0.3574170 -0.2576271
[81] -0.2872227 -0.2648764 -0.3190477 -0.3825928 -0.3955126 -0.3801759 -0.4057352 -0.3550292 -0.3733226 -0.3990684
[91] -0.4549193 -0.5471724
我们可以看到,EMA 函数返回了一个包含指数移动平均线数值的向量。前 10 个值为 NA,因为它们对于计算 EMA 是必要的。后面的值取决于前面的值,因此它们将取决于前面的 10 个 NA 值。
我们可以使用 ggplot2 包将数据和指数移动平均线绘制在同一张图中:
library(ggplot2)
# 创建数据框
df <- data.frame(x = seq(1, length(data)), y = data)
# 添加 EMA 列
df$ema <- ema
# 绘制图形
ggplot(df, aes(x = x)) +
geom_line(aes(y = y)) +
geom_line(aes(y = ema), color = "red") +
theme_minimal()
输出结果:
我们可以看到,在 100 个数据点中,指数移动平均线比数据更平滑,并有助于更好地理解趋势。