movavg
Moving average of a financial time series
Syntax
Description
computes the moving average (MA) of a financial time series.ma
= movavg(Data
,type
,windowSize
)
adds an optional argument for ma
= movavg(___,initialPoints
)initialPoints
.
Examples
Calculate the Moving Average for a Data Series
Load the file SimulatedStock.mat
and compute the moving average using simulated closing price data.
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
⋮
Calculate the Leading and Lagging Moving Averages for a Data Series
Load the file SimulatedStock.mat
and compute the moving average using simulated closing price data.
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 the long-term and short-term moving averages.
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')
Input Arguments
Data
— Data for a financial series
matrix | table | timetable
Data for a financial series, specified as a column-oriented matrix, table, or timetable. Timetables and tables must contain variables with only a numeric type.
Data Types: double
| table
| timetable
type
— Type of moving average to compute
character vector with value of 'simple'
,
'square-root'
, 'linear'
,
'square'
, 'exponential'
,
'triangular'
, 'modified'
, or
'custom'
| string with value of "simple"
,
"square-root"
, "linear"
,
"square"
, "exponential"
,
"triangular"
, "modified"
, or
"custom"
Type of moving average to compute, specified as a character vector or string with an associated value.
Data Types: char
| string
windowSize
— Number of observations of the input series to include in moving average
positive integer
Number of observations of the input series to include in moving average,
specified as a scalar positive integer. The observations include
(windowSize
- 1) previous data points and the current
data point.
Note
The windowSize
argument applies only to moving
averages whose type
is
'simple'
, 'square-root'
,
'linear'
, 'square'
,
'exponential'
,
'triangular'
, or
'modified'
.
Data Types: double
weights
— Custom weights used to compute moving average
vector
Custom weights used to compute the moving average, specified as a vector.
Note
The length of weights (N) determines the size
of the moving average window (windowSize
). The
weights
argument applies only to a
'custom'
type
of moving average.
To compute moving average with custom weights, the weights
(w
) are first normalized such that they sum to
one:
W(i) = w(i)/sum(w), for i = 1,2,...,N
The normalized weights (W
) are then used to form the
N-point weighted moving average
(y) of the input Data (x):
y(t) = W(1)*x(t) + W(2)*x(t-1) + ... +
W(N)*x(t-N)
The initial moving average values within the window size are then adjusted
according to the method specified in the name-value pair argument
initialPoints
.
Data Types: double
initialPoints
— Indicates how moving average is calculated at initial points
'shrink'
(default) | character vector with values of 'shrink'
,
'fill'
, or 'zero'
| string with values of "shrink"
,
"fill"
, or "zero"
(Optional) Indicates how the moving average is calculated at initial points (before there is enough data to fill the window), specified as a character vector or string using one of the following values:
'shrink'
- Initializes the moving average such that the initial points include only observed data'zero'
- Initializes the initial points with0
'fill'
- Fills initial points withNaN
s
Note
The initialPoints
argument applies to all
type
specifications except for the
'exponential'
and 'modified'
options.
Data Types: char
| string
Output Arguments
ma
— Moving average series
matrix | table | timetable
Moving average series, returned with the same number of rows
(M
) and the same type (matrix, table, or timetable)
as the input Data
.
References
[1] Achelis, S. B. Technical Analysis from A to Z. Second Edition. McGraw-Hill, 1995, pp. 184–192.
Version History
Introduced before R2006aR2023a: fints
support removed for Data
input argument
fints
object support for the Data
input
argument is removed.
R2018a: Lead
and Lag
input arguments not supported
The syntax for movavg
has changed. There is no longer support
for the input arguments Lead
and Lag
, only a
single windowSize
is supported, and there is only one output
argument (ma
). If you want to compute the leading and lagging
moving averages, you need to run movavg
twice and adjust the
windowSize
.
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
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 bat365 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)