R语言 如何计算指数型移动平均线

R语言 如何计算指数型移动平均线

在这篇文章中,我们将了解如何在R编程语言中计算指数移动平均线。

指数移动平均线(EMA) 告诉我们之前K个数据点的加权平均值。EMA将更大的权重和意义放在最近的数据点上。为了得到EMA,我们将使用R编程语言中的pracma包。要安装,请运行以下命令。

install.packages("pracma")

创建用于演示的数据框架

# create data frame
df <- data.frame(Rank=1:10,
                 Marks=c(65, 60, 54, 46, 37,
                         30, 29, 25, 24, 19))
  
# Display data frame
print(df)

输出

   Rank Marks
1     1    65
2     2    60
3     3    54
4     4    46
5     5    37
6     6    30
7     7    29
8     8    25
9     9    24
10   10    19

在R中计算指数型移动平均线

movavg()函数用于计算R中的EMA。

movavg(x, n, type=c(“s”, “t”, “w”, “m”, “e”, “r”)

参数

  • x:数字向量的时间序列。
  • n:后向窗口长度。
  • type:”s”、”t”、”w”、”m”、”e”、或 “r “中的一个。
library(pracma)
  
df <- data.frame(Rank=1:10,
                 Marks=c(65, 60, 54, 46, 37,
                         30, 29, 25, 24, 19))
  
# Exponentially weighted moving average 
# using the 3 previous marks
dfEMA <- movavg(dfMarks, n=3, type='e')
  
# Display DataFrame 
print(df)

输出

   Rank Marks      EMA
1     1    65 65.00000
2     2    60 62.50000
3     3    54 58.25000
4     4    46 52.12500
5     5    37 44.56250
6     6    30 37.28125
7     7    29 33.14062
8     8    25 29.07031
9     9    24 26.53516
10   10    19 22.76758

EMA的可视化

在这里,我们将通过线图将标记与3天指数加权移动平均线相比进行可视化。

library(ggplot2)
library(reshape2)
library(pracma)
  
  
df <- data.frame(Rank=1:10,
                 Marks=c(65, 60, 54, 46, 37, 
                         30, 29, 25, 24, 19))
  
# Exponentially weighted moving average
# using the 3 previous marks
dfEMA <- movavg(dfMarks, n=3, type='e')
  
df <- melt(df ,  id.vars = 'Rank', variable.name = 'series')
  
ggplot(df, aes(Rank, value)) +
  geom_line(aes(colour = series))

输出

如何在R语言中计算指数型移动平均线?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程