movavg
金融时间序列的移动平均线
语法
说明
计算金融时间序列的移动平均线 (MA)。ma
= movavg(Data
,type
,windowSize
)
添加了一个可选参量 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')
输入参数
Data
— 金融序列的数据
矩阵 | 表 | 时间表
金融序列的数据,指定为列向矩阵、表或时间表。时间表和表只能包含数值类型的变量。
数据类型: double
| table
| timetable
type
— 要计算的移动平均线的类型
值为 'simple'
、'square-root'
、'linear'
、'square'
、'exponential'
、'triangular'
、'modified'
或 'custom'
的字符向量 | 值为 "simple"
、"square-root"
、"linear"
、"square"
、"exponential"
、"triangular"
、"modified"
或 "custom"
的字符串
要计算的移动平均线的类型,指定为具有关联值的字符向量或字符串。移动平均线的类型为:
"simple"
- 简单移动平均线 (SMA) 的计算方式是,将指定数量的数据点相加,然后将总和除以数据点数量。SMA 对指定时间段内的每个数据点给与同等的重要性。得到的值表示指定时间段内的平均价格。"square-root"
- 在平方根方法中,分配给每个数据点的权重随着数据点在时间上向后移动而以平方根方式递减。最近的数据点具有最高的权重,对于较旧的数据点,权重逐渐降低。"linear"
- 线性方法为每个数据点分配的权重随着数据点在时间上向后移动而以线性方式递减。这种方法对捕捉趋势和价格走势很有用,同时还会最小化离群值或极值的影响。"square"
- 平方法为每个数据点分配的权重随着数据点在时间上向后移动而以平方方式递减。最近的数据点具有最高的权重,对于较旧的数据点,权重逐渐降低。"exponential"
- 指数移动平均线 (EMA) 对最近的数据点分配更高的权重和显著性。指数移动平均线也被称为指数加权移动平均线。简单移动平均线 (SMA) 向时间段内的所有观测值应用同等的权重,与之相比,指数加权移动平均线则对近期价格变化的反应更显著。"triangular"
- 三角移动平均线 (TMA) 是 SMA 的一个变体,它以三角模式向数据点分配权重。这种方法旨在向移动平均时间段中间的数据点分配更高的权重,向时间段开头和末尾的数据点分配更低的权重。"modified"
- 修正移动平均线 (MMA) 是一个指标,显示一个时间段内证券价格的平均值。它也被称为运行移动平均线 (RMA) 或平滑移动平均线 (SMMA)。修正移动平均线与简单移动平均线相似,不同之处是它会先加上新价格,然后从所得总和中减去上一个平均值来计算所有后续点。"custom"
- 使用自定义方法的移动平均线是这样的一种移动平均线,它使用weights
的自定义测量值来计算平均值,而不是像大多数其他移动平均线那样只取每个条形的收盘价。自定义测量会计算不同数据点上最小低点值和最大高点值之间的差值。
数据类型: char
| string
windowSize
— 要包含在移动平均线中的输入序列的观测值数量
正整数
要包含在移动平均线中的输入序列的观测值数量,指定为正整数标量。观测值包括当前数据点及其之前的 (windowSize
- 1) 个数据点。
注意
windowSize
参量仅适用于 type
为 'simple'
、'square-root'
、'linear'
、'square'
、'exponential'
、'triangular'
或 'modified'
的移动平均线。
数据类型: double
weights
— 用于计算移动平均线的自定义权重
向量
用于计算移动平均线的自定义权重,指定为向量。
注意
权重的长度 (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
initialPoints
— 指示如何计算初始点处的移动平均线
'shrink'
(默认) | 值为 'shrink'
、'fill'
或 'zero'
的字符向量 | 值为 "shrink"
、"fill"
或 "zero"
的字符串
(可选)指示如何计算初始点处(在有足够的数据填充窗之前)的移动平均线,指定为使用下列值之一的字符向量或字符串:
'shrink'
- 初始化移动平均线,使得初始点仅包括观测到的数据'zero'
- 使用0
初始化初始点'fill'
- 使用NaN
填充初始点
注意
initialPoints
参量适用于除 'exponential'
和 'modified'
选项之外的所有 type
设定。
数据类型: char
| string
参考
[1] Achelis, S. B. Technical Analysis from A to Z. Second Edition. McGraw-Hill, 1995, pp. 184–192.
版本历史记录
在 R2006a 之前推出R2023a: 不再支持对 Data
输入参量使用 fints
不再支持对 Data
输入参量使用 fints
对象。
R2018a: 不支持 Lead
和 Lag
输入参量
movavg
的语法有所变化。不再支持输入参量 Lead
和 Lag
,只支持单个 windowSize
,并且只有一个输出参量 (ma
)。如果您要计算超前和滞后移动平均线,您需要运行两次 movavg
并调整 windowSize
。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)