tsmovavg

Скользящее среднее значение

tsmovavg не рекомендуется. Использовать timetable вместо этого. Для получения дополнительной информации смотрите Преобразование финтов финансовых временных рядов в Timetables.

Описание

tsmovavg вычисляет простое, экспоненциальное, треугольное, взвешенное и модифицированное скользящее среднее значение для вектора или fints объект данных. Для получения информации о работе с финансовыми временными рядами (fints Данные, см. Работу с объектами финансовых Временных рядов.

пример

output = tsmovavg(tsobj,'s',lag) возвращает простое скользящее среднее значение для объекта финансовых временных рядов, tsobj. lag указывает количество предыдущих точек данных, используемых с текущей точкой данных при вычислении скользящего среднего значения.

output = tsmovavg(vector,'s',lag,dim) возвращает простое скользящее среднее значение для вектора. lag указывает количество предыдущих точек данных, используемых с текущей точкой данных при вычислении скользящего среднего значения.

пример

output = tsmovavg(tsobj,'e',timeperiod) возвращает экспоненциальное взвешенное скользящее среднее значение для объекта финансовых временных рядов, tsobj. Экспоненциальное скользящее среднее значение является взвешенным скользящим средним значением, где timeperiod определяет период времени. Экспоненциальные средние значения сокращают задержку, применяя больший вес к недавним ценам. Для примера 10-периодный экспоненциал скользящего среднего взвешивает самую последнюю цену на 18,18%. Exponential Percentage = 2/(TIMEPER + 1) or 2/(WINDOW_SIZE + 1).

output = tsmovavg(vector,'e',timeperiod,dim) возвращает экспоненциальное взвешенное скользящее среднее значение для вектора. Экспоненциальное скользящее среднее значение является взвешенным скользящим средним значением, где timeperiod определяет период времени. Экспоненциальные средние значения сокращают задержку, применяя больший вес к недавним ценам. Для примера 10-периодный экспоненциал скользящего среднего взвешивает самую последнюю цену на 18,18%. (2/(timeperiod + 1)).

пример

output = tsmovavg(tsobj,'t',numperiod) возвращает треугольное скользящее среднее значение для объекта финансовых временных рядов, tsobj. Треугольное скользящее среднее значение двойное сглаживает данные. tsmovavg вычисляет первое простое скользящее среднее значение с шириной окна ceil(numperiod + 1)/2. Затем он вычисляет второе простое скользящее среднее значение по первому скользящему среднему значению с тем же размером окна.

output = tsmovavg(vector,'t',numperiod,dim) возвращает треугольное скользящее среднее значение для вектора. Треугольное скользящее среднее значение двойное сглаживает данные. tsmovavg вычисляет первое простое скользящее среднее значение с шириной окна ceil(numperiod + 1)/2. Затем он вычисляет второе простое скользящее среднее значение по первому скользящему среднему значению с тем же размером окна.

пример

output = tsmovavg(tsobj,'w',weights) возвращает взвешенное скользящее среднее значение для объекта финансовых временных рядов, tsobj, путем подачи весов для каждого элемента в движущемся окне. Длина вектора веса определяет размер окна. Если более высокие весовые коэффициенты используются для более поздних цен и меньшие коэффициенты для предыдущих цен, тренд более чувствительна к недавним изменениям.

output = tsmovavg(vector,'w',weights,dim) возвращает взвешенное скользящее среднее значение для вектора путем подачи весов для каждого элемента в движущемся окне. Длина вектора веса определяет размер окна. Если более высокие весовые коэффициенты используются для более поздних цен и меньшие коэффициенты для предыдущих цен, тренд более чувствительна к недавним изменениям.

пример

output = tsmovavg(tsobj,'m',numperiod) возвращает измененное скользящее среднее значение для объекта финансовых временных рядов, tsobj. Измененное скользящее среднее значение подобно простому скользящему среднему значению. Рассмотрим аргумент numperiod чтобы быть задержкой простого скользящего среднего значения. Первое измененное скользящее среднее значение вычисляется как простое скользящее среднее значение. Последующие значения вычисляются путем сложения новой цены и вычитания последнего среднего значения из полученной суммы.

output = tsmovavg(vector,'m',numperiod,dim) возвращает измененное скользящее среднее значение для вектора. Измененное скользящее среднее значение подобно простому скользящему среднему значению. Рассмотрим аргумент numperiod чтобы быть задержкой простого скользящего среднего значения. Первое измененное скользящее среднее значение вычисляется как простое скользящее среднее значение. Последующие значения вычисляются путем сложения новой цены и вычитания последнего среднего значения из полученной суммы.

Примеры

свернуть все

Загрузите объект финансовых временных рядов, dis для акций Disney и посмотрите на еженедельные данные для этих временных рядов.

load disney.mat
weekly = toweekly(dis);
Warning: FINTS is not recommended. Use convert2weekly instead.
dates = (weekly.dates);
price = fts2mat(weekly.CLOSE);
Warning: FINTS is not recommended. Use TIMETABLE instead. For more information, see <a href="matlab:web(fullfile(docroot, 'finance/convert-from-fints-to-timetables.html'))">Convert Financial Time Series Objects (fints) to Timetables</a>.

Установите the'lag| входному параметру для размера окна для движущегося среднего значения.

window_size = 12;

Вычислите простое скользящее среднее значение.

simple = tsmovavg(price,'s',window_size,1);
Warning: TSMOVAVG will be removed in a future release. Use MOVAVG instead.

Вычислите экспоненциальное взвешенное скользящее среднее скользящее среднее значение.

exp = tsmovavg(price,'e',window_size,1);
Warning: TSMOVAVG will be removed in a future release. Use MOVAVG instead.

Вычислите треугольное скользящее среднее скользящее среднее значение.

tri = tsmovavg(price,'t',window_size,1);
Warning: TSMOVAVG will be removed in a future release. Use MOVAVG instead.

Вычислите взвешенное скользящее среднее скользящее среднее значение.

semi_gaussian = [0.026 0.045 0.071 0.1 0.12 0.138];
semi_gaussian = [semi_gaussian fliplr(semi_gaussian)];
weighted = tsmovavg(price,'w',semi_gaussian,1);
Warning: TSMOVAVG will be removed in a future release. Use MOVAVG instead.

Вычислите измененное скользящее среднее скользящее среднее значение.

modif = tsmovavg(price,'m',window_size,1);
Warning: TSMOVAVG will be removed in a future release. Use MOVAVG instead.

Постройте график результатов для пяти вычислений скользящего среднего для акции Disney.

plot(dates,price,...
    dates,simple,...
    dates,exp,...
    dates,tri,...
    dates,weighted,...
    dates,modif)
datetick
legend('Stock Price','Simple','Exponential','Triangular','Weighted',...
    'Modified','Location','NorthWest')
title('Disney Weekly Price & Moving Averages')

Входные параметры

свернуть все

Объект финансовых временных рядов, заданный с помощью объекта временных рядов, созданного с помощью fints.

lag - параметр, указывающий количество предыдущих точек данных, которые будут использоваться в сочетании с текущей точкой данных при вычислении простого скользящего среднего значения.

Количество предыдущих точек данных, заданное в виде неотрицательного целого числа. Lag указывает размер окна или количество периодов скользящего среднего значения.

Набор наблюдений, заданных в виде вектора или матрицы.

Размерность для работы, заданная как положительное целое число со значением 1 или 2. dim является необязательным входным аргументом, и если он не включен в качестве входа, значение по умолчанию 2 принято. Значение по умолчанию dim = 2 указывает матрицу, ориентированную на строку, где каждая строка является переменной, а каждый столбец - наблюдением.

Если dim = 1Входной параметр принимается как матрица, ориентированная на вектор-столбец или столбец, где каждый столбец является переменной, а каждая строка - наблюдением.

Экспоненциальное скользящее среднее значение является взвешенным скользящим средним значением, где timeperiod - период времени экспоненциала движущегося среднего значения. Экспоненциальные средние значения сокращают задержку, применяя больший вес к недавним ценам. Для примера, 10 период экспоненциала скользящего среднего взвешивает самую последнюю цену на 18,18%.

Exponential Percentage = 2/(TIMEPER + 1) or 2/(WINDOW_SIZE + 1)

Продолжительность периода времени, заданная как неотрицательное целое число.

Треугольное скользящее среднее значение является двойным сглаживанием данных. Первое простое скользящее среднее значение вычисляется шириной окна ceil(numperiod + 1)/2. Затем вычисляется второе простое скользящее среднее значение по первому скользящему среднему значению с тем же размером окна.

Измененное скользящее среднее значение подобно простому скользящему среднему значению. Рассмотрим аргумент numperiod быть lag простого скользящего среднего значения. Первое измененное скользящее среднее значение вычисляется как простое скользящее среднее значение. Последующие значения вычисляются путем сложения новой цены и вычитания последнего среднего значения из полученной суммы.

Количество рассматриваемых периодов, заданное как неотрицательное целое число.

Взвешенное скользящее среднее значение вычисляется вектором веса, weights. Длина вектора веса определяет размер окна. Если более высокие весовые коэффициенты используются для более поздних цен и меньшие коэффициенты для предыдущих цен, тренд более чувствительна к недавним изменениям.

Веса для каждого элемента в окне, заданные как вектор весов.

Выходные аргументы

свернуть все

Вычисление скользящего среднего возвращается как вектор или матрица. The output возвращен из tsmovavg идентичен по формату входу.

Ссылки

[1] Achelis, Steven B. Технический анализ от A до Z. Second Edition. McGraw-Hill, 1995, pp. 184-192.

Представлено до R2006a