Main Content

movavg

金融时间序列的移动平均线

说明

示例

ma = movavg(Data,type,windowSize) 计算金融时间序列的移动平均线 (MA)。

示例

ma = movavg(___,initialPoints) 添加了一个可选参量 initialPoints

示例

ma = movavg(Data,type,weights) 使用 'custom' typeweights 计算金融时间序列的移动平均线 (MA)。

示例

ma = movavg(___,initialPoints) 添加了一个可选参量 initialPoints

示例

全部折叠

加载文件 SimulatedStock.mat 并使用模拟的收盘价数据计算移动平均线。

load SimulatedStock.mat
type = 'linear';
windowSize = 14;
ma = movavg(TMW_CLOSE,type,windowSize)
ma = 1000×1

  100.2500
  100.3433
  100.8700
  100.4916
   99.9937
   99.3603
   98.8769
   98.6364
   98.4348
   97.8491
      ⋮

加载文件 SimulatedStock.mat 并使用模拟的收盘价数据计算移动平均线。

load SimulatedStock.mat 
type = 'linear';
mashort_term=movavg(TMW_CLOSE,type,20) % Short-term moving average
mashort_term = 1000×1

  100.2500
  100.3423
  100.8574
  100.4943
  100.0198
   99.4230
   98.9728
   98.7509
   98.5688
   98.0554
      ⋮

malong_term=movavg(TMW_CLOSE,type,3) % Long-term moving average
malong_term = 1000×1

  100.2500
  100.3580
  101.0900
  100.4300
   99.3183
   97.8217
   97.0833
   97.1950
   97.4133
   96.1133
      ⋮

绘制长期移动平均线和短期移动平均线。

plot(TMW_CLOSE(1:100))
hold on
plot(malong_term(1:100))
plot(mashort_term(1:100))
hold off
legend('Actual','Long-term','Short-term')

输入参数

全部折叠

金融序列的数据,指定为列向矩阵、表或时间表。时间表和表只能包含数值类型的变量。

数据类型: double | table | timetable

要计算的移动平均线的类型,指定为具有关联值的字符向量或字符串。移动平均线的类型为:

  • "simple" - 简单移动平均线 (SMA) 的计算方式是,将指定数量的数据点相加,然后将总和除以数据点数量。SMA 对指定时间段内的每个数据点给与同等的重要性。得到的值表示指定时间段内的平均价格。

  • "square-root" - 在平方根方法中,分配给每个数据点的权重随着数据点在时间上向后移动而以平方根方式递减。最近的数据点具有最高的权重,对于较旧的数据点,权重逐渐降低。

  • "linear" - 线性方法为每个数据点分配的权重随着数据点在时间上向后移动而以线性方式递减。这种方法对捕捉趋势和价格走势很有用,同时还会最小化离群值或极值的影响。

  • "square" - 平方法为每个数据点分配的权重随着数据点在时间上向后移动而以平方方式递减。最近的数据点具有最高的权重,对于较旧的数据点,权重逐渐降低。

  • "exponential" - 指数移动平均线 (EMA) 对最近的数据点分配更高的权重和显著性。指数移动平均线也被称为指数加权移动平均线。简单移动平均线 (SMA) 向时间段内的所有观测值应用同等的权重,与之相比,指数加权移动平均线则对近期价格变化的反应更显著。

  • "triangular" - 三角移动平均线 (TMA) 是 SMA 的一个变体,它以三角模式向数据点分配权重。这种方法旨在向移动平均时间段中间的数据点分配更高的权重,向时间段开头和末尾的数据点分配更低的权重。

  • "modified" - 修正移动平均线 (MMA) 是一个指标,显示一个时间段内证券价格的平均值。它也被称为运行移动平均线 (RMA) 或平滑移动平均线 (SMMA)。修正移动平均线与简单移动平均线相似,不同之处是它会先加上新价格,然后从所得总和中减去上一个平均值来计算所有后续点。

  • "custom" - 使用自定义方法的移动平均线是这样的一种移动平均线,它使用 weights 的自定义测量值来计算平均值,而不是像大多数其他移动平均线那样只取每个条形的收盘价。自定义测量会计算不同数据点上最小低点值和最大高点值之间的差值。

数据类型: char | string

要包含在移动平均线中的输入序列的观测值数量,指定为正整数标量。观测值包括当前数据点及其之前的 (windowSize - 1) 个数据点。

注意

windowSize 参量仅适用于 type'simple''square-root''linear''square''exponential''triangular''modified' 的移动平均线。

数据类型: double

用于计算移动平均线的自定义权重,指定为向量。

注意

权重的长度 (N) 确定移动平均线窗的大小 (windowSize)。weights 参量仅适用于 'custom'type 的移动平均线。

为了计算具有自定义权重的移动平均线,请先对权重 (w) 进行归一化,使其总和为 1:

W(i) = w(i)/sum(w), for i = 1,2,...,N

然后使用归一化权重 (W) 形成输入数据 (x) 的 N 点加权移动平均线 (y):

y(t) = W(1)*x(t) + W(2)*x(t-1) + ... + W(N)*x(t-N)

然后根据名称-值对组参量 initialPoints 中指定的方法调整窗大小内的初始移动平均值。

数据类型: double

(可选)指示如何计算初始点处(在有足够的数据填充窗之前)的移动平均线,指定为使用下列值之一的字符向量或字符串:

  • 'shrink' - 初始化移动平均线,使得初始点仅包括观测到的数据

  • 'zero' - 使用 0 初始化初始点

  • 'fill' - 使用 NaN 填充初始点

注意

initialPoints 参量适用于除 'exponential''modified' 选项之外的所有 type 设定。

数据类型: char | string

输出参量

全部折叠

移动平均线序列,返回与输入 Data 相同的行数 (M) 和相同的类型(矩阵、表或时间表)。

参考

[1] Achelis, S. B. Technical Analysis from A to Z. Second Edition. McGraw-Hill, 1995, pp. 184–192.

版本历史记录

在 R2006a 之前推出

全部展开