ВРЕМЕННЫЕ РЯДЫ ФОРЕКС

Лучшие Форекс брокеры 2021:

Содержание этой статьи:

Трейдинг: Предсказание финансовых временных рядов

Предсказание финансовых временных рядов — необходимый элемент любой инвестиционной деятельности. Сама идея инвестиций — вложения денег сейчас с целью получения дохода в будущем — основывается на идее прогнозирования будущего. Соответственно, предсказание финансовых временных рядов лежит в основе деятельности всей индустрии инвестиций — всех бирж и небиржевых систем торговли ценными бумагами.

В данной статье рассмотрено одно из самых популярных практических приложений нейросетей — предсказание рыночных временных рядов. В этой области предсказания наиболее тесно связаны с доходностью и могут рассматриваться как один из видов бизнеса.

Предсказание финансовых временных рядов — необходимый элемент любой инвестиционной деятельности. Сама идея инвестиций — вложения денег сейчас с целью получения дохода в будущем — основывается на идее прогнозирования будущего. Соответственно, предсказание финансовых временных рядов лежит в основе деятельности всей индустрии инвестиций — всех бирж и небиржевых систем торговли ценными бумагами.

Приведем несколько цифр, иллюстрирующих масштаб этой индустрии предсказаний (Шарп, 1997). Дневной оборот рынка акций только в США превышает 10 млрд долл. Депозитарий DTC (Depositary Trust Company) в США, где зарегистрировано ценных бумаг на сумму 11 трлн долл. (из общего объема 18 трлн долл.), регистрирует в день сделок примерно на 250 млрд долларов. Еще более активно идет торговля на мировом валютном рынке FOREX. Его дневной оборот превышает 1000 млрд долл. Это примерно 1/50 всего совокупного капитала человечества.

Известно, что 99% всех сделок — спекулятивные, т.е. направлены не на обслуживание реального товарооборота, а заключены с целью извлечения прибыли по схеме «купил дешевле — продал дороже «. Все они основаны на предсказаниях изменения курса участниками сделки. Причем, что немаловажно, предсказания участников каждой сделки противоположны друг другу. Так что объем спекулятивных операций характеризует степень различий в предсказаниях участников рынка, т.е. реально — степень непредсказуемости финансовых временных рядов.

Честные Форекс брокеры:

Это важнейшее свойство рыночных временных рядов легло в основу теории «эффективного » рынка, изложенной в диссертации Луи де Башелье (L. Bachelier) в 1900 г. Согласно этой доктрине, инвестор может надеяться лишь на среднюю доходность рынка, оцениваемую с помощью индексов, таких как Dow Jones или S&P500 (для Нью-Йоркской биржи). Всякий же спекулятивный доход носит случайный характер и подобен азартной игре на деньги. В основе непредсказуемости рыночных кривых лежит та же причина, по которой деньги редко валяются на земле в людных местах: слишком много желающих их поднять.

Теория эффективного рынка не разделяется, вполне естественно, самими участниками рынка (которые как раз и заняты поиском «упавших» денег). Большинство из них уверено, что рыночные временные ряды, несмотря на кажущуюся стохастичность, полны скрытых закономерностей, т.е. хотя бы отчасти предсказуемы. Такие скрытые эмпирические закономерности пытался выявить в 30-е годы в серии своих статей основатель технического анализа Ральф Эллиот (R. Elliott).

В 80-е годы неожиданную поддержку эта точка зрения нашла в незадолго до этого появившейся теории динамического хаоса. Эта теория построена на противопоставлении хаотичности и стохастичности (случайности). Хаотические ряды только выглядят случайными, но, как детерминированный динамический процесс, вполне допускают краткосрочное прогнозирование. Область возможных предсказаний ограничена по времени горизонтом прогнозирования, но этого может оказаться достаточно для получения реального дохода от предсказаний (Chorafas, 1994). И тот, кто обладает лучшими математическими методами извлечения закономерностей из зашумленных хаотических рядов, может надеяться на большую норму прибыли — за счет своих менее оснащенных собратьев.

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

Метод погружения позволяет количественно измерить предсказуемость реальных финансовых инструментов, т.е. проверить или опровергнуть гипотезу эффективности рынка. Согласно последней, разброс точек по всем координатам лагового пространства одинаков (если они — одинаково распределенные независимые случайные величины). Напротив, хаотическая динамика, обеспечивающая определенную предсказуемость, должна приводить к тому, что наблюдения будут группироваться вблизи некоторой гиперповерхности, т.е. экспериментальная выборка формирует некоторое множество размерности меньшей, чем размерность всего лагового пространства. Для измерения размерности можно воспользоваться следующим интуитивно понятным свойством: если множество имеет размерность D, то при разбиении его на все более мелкие покрытия кубиками со стороной d, число таких кубиков растет как d^-D. На этом факте основывается определение размерности W множеств уже знакомым нам методом box-counting. Размерность множества точек определяется по скорости возрастания числа ячеек (boxes), содержащих все точки множества.

Ниже приводится рисунок на котором изображена размерность (информационная) приращений этого ряда, подсчитанная методом box-counting для S&P500.

Надежные Форекс площадки:

и утверждается, что в 15-мерном пространстве погружения экспериментальные точки формируют множество размерности примерно 4. Это значительно меньше, чем 15, что мы получили бы исходя из гипотезы эффективного рынка, считающей ряд приращений независимыми случайными величинами.

У меня возникло непонимание связанное с:

1.Получилось, что информационная размерность W равна числу входов D только для случая равномерного заполнения случайной величиной (СВ) всего фазового пространства. Уже, для СВ распределённой по гауссу(рассмотрим для примера двумерный случай), для D=1 — W=0. 7 т.е. ряд приращений в этом случае не является случайным, а это не так!

Временные ряды и прогнозирование

2. Для реализации способа, когда «размерность множества точек определяется по скорости возрастания числа ячеек (boxes), содержащих все точки множества«, мы должны брать тем или иным способом n-кратый интеграл (сумму), где n заведомо больше 10-15. Это-же не реально по времени счёта!

Красивая статья, но в некоторых местах происходит подмена понятий (передергивание).

Для пояснения этого утверждения сошлюсь на самого автора. Фраза взята вот отсюда.

«Многие представители разных наук, занимающихся перечисленными выше задачами и уже накопившими изрядный опыт их решения, видят в нейросетях лишь перепев уже известных им мотивов. Каждый полагает, что перевод его методов на новый язык нейросетевых схем ничего принципиально нового не дает. Статистики говорят, что нейросети — это всего лишь частный способ статистической обработки данных, специалисты по оптимизации — что методы обучения нейросетей давно известны в их области, теория аппроксимации функций рассматривает нейросети наряду с другими методами многомерной аппроксимации. Нам же представляется, что именно синтез различных методов и идей в едином нейросетевом подходе и является неоценимым достоинством нейрокомпьютинга. Нейрокомпьютинг предоставляет единую методологию решения очень широкого круга практически интересных задач. Это, как правило, ускоряет и удешевляет разработку приложений

Да ускоряет и удешевляет, но все ли сделанное быстро и дешево обладает хорошим качеством ? В этой статье говориться про предсказание финансового временного ряда. И всю жизнь предсказание (экстраполяция) означало ответ чему будет равно значение ряда, допустим через N минут (часов, дней) и точность прогноза всегда оценивалась величиной ошибки = качество.

И автор, зная, что НС не умеет экстраполировать, а только решает задачу интерполяции начинает передергивать, пытается подменить эти понятия. Поясню на примере. Всем хорошо известна программа FineRider распознает отсканированный текст (самый яркий пример использования НС). Но она — эта программа никогда не ответит на вопрос, что сделали с отсканированным листком. Т.е. НС применительно к финансовым рядам, может ответить в каком состоянии мы сейчас находимся, но не может предсказать, что будет дальше.

Методы предсказания (экстраполяции) и методы интерполяции очень схожи между собой, но цели у них разные.

Теперь вернемся к точности, автор плавно уходит и от этого вопроса, убеждая, что точность не важна, важен знак + или — и быстро переходит на Buy(Sell). C моей точки зрения, это грубейшая ошибка. Ну хорошо пусть будет + или -. А где ответ про время прогноза и сколько пунктов в плюс. Это что не важно? 1 пункт в плюс к концу года, или 100 пунктов к концу дня ?

Если правильно решить задачу экстраполяции, т.е. ответить на вопрос какой курс будет завтра в 12:00 с хорошей точностью, то принять решение о Buy(Sell) мы всегда сможем и думаю теория оптимального управления к примеру, принцип максимума Понтрягина, даст намного лучшую точку входа в рынок, чем начало торгового дня. Не надо сваливать все в одну кучу, адаптивное предсказание и принятие решений это разные по своей сути вещи.

И разводить тут наукообразие про возможность предсказания временного ряда не стоило. Нужно просто знать что такое корреляция, автор знает и говорит про то что именно это свойство лежит в основе предсказания, но видимо не знает, что для анализа предсказуемости временного ряда уже давно используют АКФ (автокорреляционную функцию). Надо просто 1 раз увидеть картинку и понять что такое АКФ. Участниками этого форума проведены исследования вида и параметров АКФ, и эти исследования говорят о том, что финансовый ряд предсказуем (и думаю не только нами). Кто хочет это проверить можете взять индикатор рассчитывающий АКФ вот отсюда (‘Теория случайных потоков и FOREX’). И посмотреть, коррелирован ли этот процесс. Там все просто и наглядно, если дельта функция – то предсказать нельзя, т.к. нет корреляции.

В завершении хотел бы посоветовать тем, кто занимается НС (нейронными сетями), не наступать на грабли. Не делайте выходом НС Buy(Sell). Это дорога в никуда. Нельзя обучить на то чего нет (нет у этой кривой свойства Buy(Sell) это свойство принадлежит ТС ). Постарайтесь хотя бы делать как Better (выход это направление движения вверх или в низ). Попробуйте обучить на зиг-заг. Многие пытаются его (зигзаг) подать на вход, а может лучше это выход, то на что надо обучить НС.

ВРЕМЕННЫЕ РЯДЫ ФОРЕКС

Вводный материал о временных рядах. Понятие, классификация, общие принципы исследования. Суть применения временных рядов для изучения биржевых трендов финансовых инструментов.

Содержание:

Понятие временного ряда и цели его анализа

Временной ряд (далее по тексту ВР или, кратко, ряд) определяется как последовательность измерений, произведенных в неслучайные моменты времени. Другое наименование, применяемое для ВР – ряд динамики; для измерения временного ряда – уровень, отсчет (значение) на данный момент времени [1] .

Введение временной шкалы в явление ВР существенно отличает его от простой (случайной) выборки статистических данных. Ключевая особенность временного ряда – привязка значений (измерений) к соответствующим моментам времени. В изучении случайной выборки обычно не важна, а подчас, и вовсе не интересна подобная хронологическая взаимосвязь.

Анализ временного ряда преследует две главные цели:

  1. Определение его структуры (природы).
  2. Прогноз будущих значений ряда на основе текущих и прошлых измерений.

Обе тесно взаимосвязаны. Решение первой задачи необходимо для построения математической модели ВР, ее корректной идентификации и формализации. Матмодель станет, своего рода, лабораторией для исследования временного ряда и фундаментом для относительно точных (с допустимой нормой погрешности) предсказаний по ряду.

Структура любого ВР включает два сегмента: общий временной период с разбивкой на интервалы внутри него в которых (на концах) которых проводятся измерения (например, устанавливается котировка акции), и собственно, сами значения ряда (котировки ценной бумаги).

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

Очевидно, что для инвестора и трейдера методики изучения временных рядов имеют исключительную ценность . Их понимание, освоение и правильное применение в биржевой практике — залог успешных инвестиций и торговли финансовыми инструментами.

Классификация временных рядов

ВР различают по следующим признакам.

1. По временным параметрам.

1.1. Равноотстоящие и неравноотстоящие ряды.

В первом случае отметки времени, в которые фиксируются значения ВР, отстают друг от друга на одинаковые интервалы. Во втором — принцип равенства интервалов не соблюдается.

1.2. Моментные и интервальные ряды.

Значения моментного ВР устанавливаются в отдельные, точечные моменты времени. В интервальных рядах работают уровни за определенные периоды. Это может достигаться, допустим, усреднением отсчетов по взятым интервалам.

2. По размерности показателей (значений).

Одномерные и многомерные (двух-, трехмерные и т.д.) временные ряды.

3. По форме отображения (вида) отсчетов.

ВР могут содержать абсолютные, относительные и средние значения исследуемых показателей.

Полные и неполные ряды. В полных нет пропущенных значений, соответственно, в неполных ВР пропуски возможны.

5. По случайности отображаемого рядом процесса.

Случайные и детерминированные временные ряды. Случайный ВР — итог некоторого случайного явления. Детерминированный ряд может быть описан неслучайной (детерминированной) функцией [2] .

6. По наличию выделенной тенденции.

Стационарные и нестационарные ВР. Стационарные ряды характеризуются постоянством средних значений и дисперсий его величин. В нестационарных рядах прослеживается основная тенденция их эволюции.

Базовые принципы прогноза

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

1. Обнаружение закономерностей по ВР на прошлых (исторических) данных.

2. Конструирование функции (соотношений), способных максимально точно отразить выявленные на первом этапе трендовые тенденции. Отработка такой функции предоставит возможность оценить степень достоверности результатов начального этапа.

3. Экстраполяция найденных взаимосвязей на будущий период времени. Другими словами, попытка качественного предсказания уровней ряда в будущем. Математически “очень просто” — подстановка в трендовую формулу, найденную на этапе 2 будущих значений времени.

4. Сравнение прогнозных данных с текущими измерениями временного ряда. Отладка трендовой функции.

Далее, этапы 3 и 4 повторяются до достижении требуемой точности (удовлетворительности) прогноза.

Для построения заслуживающего доверия прогноза, временные параметры ряда должны отвечать нижеприведенным требованиям:

DATA секция: Александр Елецкий «Подходы в кластеризации временных рядов»

  1. Равенство интервалов.
  2. Фиксация значений ВР в аналогичных точках интервала (в начале, в конце, в середине и т.д.)
  3. Непрерывность ряда.

Подобные условия вполне укладываются в структуру стандартного случайного эксперимента [3] .

Для временного ряда котировок акции, отраженного на графике ее курса, анализируются один и тот же таймфрейм [4] , минута, пятиминутка, час и т.д. Значения берутся, как правило, по закрытию интервала, и каждому моменту времени должна отвечать своя котировка акции (допустим, bid, ask, (bid+ask)/2, цена последней сделки).

Легко видеть, что согласно приведенной выше классификации ВР, для полноценного изучения максимально подходят равноотстающие полные ряды. В случае, когда отсутствуют данные за сравнительно небольшие отрезки времени, их можно заменить путем усреднения находящихся рядом известных уровней ВР.

Компоненты временного ряда

В первом приближении, любой ВР (как и иной объект “временного” анализа) представляется как комбинация двух составляющих: регулярной (систематической) и случайной (шум, белый шум [5] ). Для простоты, шум часто рассматривают, как некоторую погрешность, ошибку, искажающую проявление регулярной компоненты временного ряда. Одна из ключевых задач в исследовании ВР — снижение (фильтрация) шума для выявления и идентификации систематической составляющей ряда, ответственной за его магистральный тренд.

В свою очередь, регулярную компоненту ВР можно разложить на две части. Первая — постоянная величина, константа, вторая — линейная или нелинейная компонента, функция времени. Именно она определяет тенденцию временного ряда.

Неплохая наглядная аналогия подобной визуализации ВР просматривается в зависимости доходности отдельной акции от общей среднерыночной доходности (доходности фондового индекса) через β-коэффициент:

Безусловно, данная зависимость не является временным рядом, так как время не входит в нее, как независимая переменная и отсчеты по времени не производятся. В известном смысле, “роль” времени исполняет параметр RI, доходность выбранного фондового индекса. Но прочие составляющие — налицо. Постоянная компонента — коэффициент смещения α и случайная погрешность ε.

Сглаживание. Скользящая средняя и медиана

К сожалению, не существует универсального способа обнаружения систематического ядра временного ряда, элемента, ответственного за формирование тренда, и, как следствие — создания абсолютно корректного прогноза поведения ВР.

Один из широко используемых подходов — сглаживание ряда. Он заключается в той или иной методике локального усреднения значений, когда случайные (несистематические) составляющие способны компенсировать друг друга.

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

Самая распространенная методика сглаживания — скользящая средняя.

Скользящая средняя, скользящее среднее (Moving Average, MA) — общее название для семейства функций, “значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период” [6] .

MA можно строить разными способами.

Базовая MA — простое или арифметическое скользящее среднее (Simple Moving Average, SMA). SMA в момент времени t (SMAt) рассчитывается, как среднее арифметическое n значений ряда:

где: pt-i — значение ряда в точке (в момент времени) t-i;

n именуется сглаживающим интервалом или шириной “окна”.

Графическая интерпретация простого скользящего среднего приведена на рисунке [6] :

Здесь n=4, зеленая и красная линии — кривые SMA.

В простоте и ясности SMA заложены и ее недостатки. В частности, все значения SMA входит с одинаковым весом, а также — двойное реагирование на каждое слагаемое при перемещении от окна к окну.

Вместе с тем, для временного ряда типична ситуация, когда одни его отсчеты более значимы, другие менее. Для корректного сглаживания такого ВР используют взвешенную скользящую среднюю (Weighted Moving Average, WMA).

WMA в момент t (WMAt):

где: pt-i — значение ряда в точке (момент времени) t-i;

wt-i — нормированный вес уровня pt-i.

Нормированные веса удовлетворяют традиционному условию:

То есть, их сумма по данному интервалу (окну) равна 1.

Медиана

Когда динамика временного ряда сопровождается большим количеством значительных выбросов (флуктуаций) внутри каждого (почти каждого) окна, более эффективным методом сглаживания будет медиана. Появление выбросов может быть связано, в том числе, и с большой относительной погрешностью измерений.

Напомним, что под медианой в статистике понимают “такое число <нечетной> выборки, что ровно половина из элементов выборки больше него, а другая половина меньше него” [7] . Например, медианой выборки (1,3,5,11,40) будет число 5. Число 40 можно считать выбросом.

С четными выборками ситуация несколько сложнее. Допустим, для выборки (1,3,5,11) медианой допустимо считать любое число из интервала от 3 до 5 (средние “по росту” члены массива). Традиционно медиану здесь считают, как среднее арифметическое, то есть (3+5)/2=4. Таким образом, медиана (число) может и не входить в состав выборки.

Применение медианного сглаживания для неустойчивых рядов приведет к вычерчиванию более гладких, и, что важно, более надежных кривых, чем дало бы скользящее среднее. В силе медианного подхода заложена и его слабость. В тех рядах, где выбросы сравнительно малы и/или редки медианное сглаживание строит неудобные зубчатые графики. Кроме того оно не позволяет задействовать веса.

Медианой и скользящим средним приемы сглаживания не исчерпываются. Существуют метод наименьших квадратов, взвешенных относительно расстояния, процедура отрицательного экспоненциально взвешенного сглаживания и целый ряд других более сложных методик.

Подбор функции

Исследование временного ряда значительно упрощается, если он имеет монотонный характер [8] . Другими словами, он (возможно, после сглаживания) не убывает или не возрастает во времени на значительных периодах. В таком случае, прогноз будущих значений реализуется через подбор функции. Процедура приемлема, прежде всего, для детерминированных ВР.

Грубо это можно сделать применив линейную зависимость. Более тонкие, нелинейные подходы, используют экспоненциальную, логарифмическую функции, а также степенной полином (многочлен).

Ряд Тейлора и ряд Маклорена

Самый популярный полином, знакомый из начал математического анализа — ряд Тейлора и его частный случай, ряд Маклорена. Авторство первого приписывают английскому математику Бруку Тейлору (1685-1731) [9] . Однако разложение функции в подобные ряды знали еще в Индии XIV века [10] . Значительный след в теме оставили шотландец Джеймс Грегори (1638-1675) [11] и великий Исаак Ньютон (1642-1727) [12] .

Исаак Ньютон, портрет Г. Кнеллера (1689) [12]

11. Анализ данных. Анализ временных рядов | Технострим

Колин Маклорен, шотландский математик, работал чуть позже, ближе к середине XVIII века (годы жизни 1698-1746) [13] .

Разложение функции f(z) в бесконечный ряд Тейлора имеет вид:

где: f k (a) — k-ая производная функции f(z) в некоторой точке «а».

Безусловно, выполнимость такого разложения предполагает взятие производной от функции любого порядка на ее области определения. В общем случае, ряд Тейлора имеет область (радиус) сходимости в районе точки “а”. Радиус сходимости R может быть вычислен с помощью формулы Даламбера. В частности, для экспоненты e x он равен бесконечности. Возможность разложения функции в ряд Тейлора является критерием ее аналитичности [14] .

В случае конечного (n) числа членов ряда Тейлора работает формула Тейлора:

n-ая частичная сумма ряда Тейлора для f(x).

Qn(x) — остаточный член, своего рода, погрешность разложения функции рядом Тейлора. Очевидно, Qn(x)→0 при n→∞.

На практике применяют частный случай ряда (формулы) Тейлора для а=0. Такой ряд именуется рядом Маклорена:

Приведем два распространенных варианта ряда Маклорена.

и натурального логарифма (ряд Меркатора):

Метод наименьших квадратов

Оптимизировать трендовую функцию полезно через метод наименьших квадратов [15] .

Запишем временной ряд в виде:

где:yt — значение ВР для t=1. ,n;

f — подобранная (оптимизируемая) функция, от некоего аргумента xt (например, комбинации предшествующих значений ряда yt-1, yt-2 и т.д.);

b — параметр оптимизации;

Суть метода наименьших квадратов заключается в минимизации суммы квадратов разницы между yt и f(xt,b) через подгон параметра b:

Интегрированный временной ряд и лаговый оператор

Особый интерес для алготрейдера представляют нестационарные ВР. Биржевые тренды ценных бумаг и прочих финансовых активов имеют именно такой характер. Среди нестационарных рядов принято выделять класс интегрированных временных рядов.

Интегрированный ВР трактуется, как “нестационарный временной ряд Xt, разности некоторого порядка которого являются уже стационарным временным рядом” [16] . При этом, требуется, чтобы ряды, составленные из разностей меньшего порядка, по-прежнему, имели нестационарный вид. Отсюда логично следует другое название интегрированного ВР — разностно-стационарный ряд или DS-ряд (англ. Difference Stationary). Принятая запись для интегрированного ряда k-го порядка: Xt

Под разностью k-го порядка понимают процедуру, когда из каждого i-го члена ВР вычитают (i-k)-ый член. Например, разность третьего порядка (k=3), предполагает, что из четвертого элемента ряда будет удален первый элемент (4-3=1), из пятого — второй (5-3=2), из шестого — третий (6-3=3) и т.д. В таком случае, новый ВР начнется с разности четвертого и третьего члена исходного ряда, так как для нее первой будет выполнено неравенство i-3>0.

Подобное вычитание может, во-первых, вскрыть неявную периодическую зависимость ВР. И, во-вторых — перейти от нестационарного ряда к ряду стационарному. В последнем случае и имеем интегрированный временной ряд.

Наглядно разности (иногда говорят “конечные разности”) k-го порядка показывает лаговый оператор (оператора смещения) L [17] .

Лаговый оператор k-го порядка вводится так:

Разность нулевого порядка не сдвигает члены ряда: L 0 Xt=Xt.

Модели временных рядов. От простого к сложному

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

Авторегрессионная модель (AR-модель)

Авторегрессионная модель, Autoregressive Model, кратко AR-модель, предполагает линейную зависимость члена временного ряда в заданный момент времени от предыдущих его значений [18] (с латинского regressus — возвращение, обратное движение):

где: c — константа, ai — авторегрессионные коэффициенты, εt — шум.

Число членов в сумме — p определяет порядок авторегрессионной модели. Таким образом, формула 13 описывает авторегрессионный процесс порядка p или, кратко, AR(p)-процесс.

Процесс первого порядка, AR(1)-процесс представляет знаменитое случайное блуждание:

Модель скользящего среднего (MA-модель)

Модели скользящего среднего, Moving Average Model, кратко MA-модели q-го порядка, MA(q) отвечает следующее соотношение [19] :

где: bj — коэффициенты скользящего среднего (b0=1) или параметры модели, εt — шум.

MA-модель нулевого порядка, MA(0) представляет собой просто белый шум: Xtt.

На практике обычно применяют MA-модель первого порядка, MA(1):

Модель авторегрессии — скользящего среднего (ARMA-модель)

Модель авторегрессии — скользящего среднего (AutoRegressive Moving-Average Model, ARMA) объединяет обе модели (AR+MA=ARMA) в одно целое [20] :

Обозначения в формуле 17 для ARMA те же самые, что в формулах 13, 15 для AR- и MA-моделей соответственно. Формула 17 характеризует ARMA-модель с двумя параметрами p и q — модель ARMA(p,q).

Лекция 7. Линейный регрессионный анализ. Прогнозирование коротких временных рядов

Комбинация AR- и MA-модели в единую ARMA позволяет более тонко смоделировать временной ряд, используя сильные стороны обеих методик. ARMA может трактоваться, как “линейная модель множественной регрессии”. Линейная часть заложена AR-компонентой, а влияние белого шума отражено MA-составляющей.

ARIMA

Еще более сложная конструкция известна, как “интегрированная модель авторегрессии — скользящего среднего” [21] , AutoRegressive Integrated Moving Average, кратко ARIMA (ровно в середину аббревиатуры ARMA добавили букву I=Integrated). Статистики именуют ее иногда также, как модель (методологию) Бокса-Дженкинса.

ARIMA адаптирует базовую ARMA под исследование интегрированных (разностно-стационарных) временных рядов и имеет уже три параметра. К p и q от ARMA прибавляется d — порядок разности интегрированного ряда, то есть, номер конечной разности, при которой нестационарный ряд переходит в стационарный. ARIMA (p,d,q) — это модель ARMA (p,q), примененная на разнице ряда d-го порядка.

Математика ARIMA (p,d,q) выглядит так:

где: с, ai, bj, εt — величины, уже определенные в формуле 17 для ARMA-модели;

Δ d X — разность d-го порядка по ряду X.

ARCH и GARCH

Относительно недавно исследователи финансовых нестационарных временных рядов взяли на вооружение модели линии ARCH и GARCH. Что стоит за этими англоязычными аббревиатурами?

В основе данных методик лежит модель авторегрессионной условной гетероскедастичности, AutoRegressive Conditional Heteroscedasticity, кратко ARCH [22] . Трудно произносимое слово “гетероскедастичность” отражает суть модели. В статистике гетероскедастичность — такое свойство ряда, при котором его значения неравномерно (с неустойчивой дисперсией) располагаются вдоль линии выявленного магистрального тренда на всем диапазоне анализа [23] . Приставка “гетеро” с греческого означает “ино-”, “разно-”, “различно-” [24] .

29 Нейронные сети для прогноза и выявления аномалий временных рядов

ARCH-модели предполагает, что условная (по предыдущим значениям) дисперсия гетероскедастичного ряда зависит от самих прошлых уровней ряда. “Отцом” ARCH считают американца Роберта Энгла, Robert Fry Engle III. В 1982 году он предложил модель, в которой дисперсия временного ряда может быть обусловлена его прошлыми значениями. В 2003 году Р. Энгл был удостаивается Нобелевской премии по экономике с формулировкой “за разработку методов анализа экономических временных рядов с временными изменениями” [25] .

Согласно гипотезе Р. Энгла, условная дисперсия в рамках модели ARCH q-го порядка, ARCH(q) описывается следующим образом:

ut — значения членов ряда.

ARCH показала свою эффективность при интерпретации кластеризации волатильности на фондовом, валютном и прочих финансовых рынках, когда периоды высокой волатильности сменяются периодами низкой, при том, что среднюю долгосрочную волатильность можно оценивать, как относительно неизменный фактор.

В 1986 году датчанин Тим Боллерслев, Tim Peter Bollerslev [26] модернизировал ARCH в GARCH. Приставленная впереди аббревиатуры буква G обозначает Generalized. Generalized ARCH (GARCH), по-русски — обобщенная ARCH-модель.

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

Оценка условной дисперсии модели GARCH порядка (p,q) — GARCH(p,q)-модели имеет вид:

где: α0, αi и ut уже введены в формуле 19 для ARCH;

σt-j — прошлые значения условных дисперсий;

βj — коэффициенты (параметры) модели.

Необходимое условие стационарности ряда, согласно GARCH записывается так:

Линейка актуальных моделей исследования временных рядов в алготрейдинге отнюдь не ограничивается приведенными выше примерами. Алгоритмы используют их комбинации и усовершенствованные варианты.

В частности, на слуху симбиоз ARIMA+GARCH и целое семейство, собственно “GARCH-ей” адаптированных для тех или иных целей: GARCH-M, асимметричные GARCH, в том числе, EGARCH, AGARCH, TGARCH, GJR-GARCH и многие другие.

В изложении использован материал «Анализ временных рядов» портала StatSoft

Источник изображения на заставке статьи — Википедия [1]

Примечания и ссылки (источник – Википедия/Wikipedia если не оговорено иное)

  1. “Временной ряд”.
  2. Функция является детерминированной, если для одного и того же набора входных значений она возвращает одинаковый результат, “Чистота функции”.
  3. “Случайный эксперимент”.
  4. Таймфрейм (time-frame) или торговый период — интервал времени, используемый для группировки котировок при построении элементов ценового графика, “Таймфрейм”.
  5. Белый шум — стационарный шум, спектральные составляющие которого равномерно распределены по всему диапазону задействованных частот, “Белый шум”.
  6. “Скользящая средняя”.
  7. “Медиана (статистика)”.
  8. “Монотонная функция”.
  9. “Тейлор, Брук”.
  10. “Ряд Тейлора”.
  11. “Грегори, Джеймс”.
  12. “Ньютон Исаак”.
  13. “Маклорен, Колин”.
  14. “Аналитическая функция”.
  15. “Метод наименьших квадратов”
  16. “Интегрированный временной ряд”.
  17. “Лаговый оператор”.
  18. “Авторегрессионная модель”.
  19. “Модель скользящего среднего”.
  20. “Модель авторегрессии — скользящего среднего”.
  21. “ARIMA”.
  22. “Авторегрессионная условная гетероскедастичность”.
  23. По информации портала Loginom.
  24. “Гетеро-”.
  25. “Энгл, Роберт”.
  26. ”Tim Bollerslev”.

ВР — временной ряд

MA — Moving Average, скользящая средняя, скользящее среднее

SMA — Simple Moving Average, простое или арифметическое скользящее среднее

WMA — Weighted Moving Average, взвешенное скользящее среднее

AR-модель — AutoRegressive Model, авторегрессионная модель

MA-модель — Moving Average Model, модель скользящего среднего

ARMA — AutoRegressive Moving-Average Model, модель авторегрессии — скользящего среднего

ARIMA — AutoRegressive Integrated Moving Average, интегрированная модель авторегрессии — скользящего среднего

ARCH — AutoRegressive Conditional Heteroscedasticity, модель авторегрессионной условной гетероскедастичности

Временные ряды в прогнозировании спроса, нагрузки на КЦ, товарных рекомендациях и поиске аномалий

В статье рассматриваются области применения временных рядов, решаемые задачи, и используемые алгоритмы. Прогнозирование временного ряда используется в таких задачах, как прогнозирование спроса, нагрузки на контактный центр, дорожного и интернет-трафика, решения задачи холодного старта в рекомендательных системах и поиска аномалий в поведении оборудования и пользователей.

Рассмотрим задачи подробнее.

1) Прогнозирование спроса.

Цель: снизить складские издержки и оптимизировать график работы персонала.

Как решается: имея прогноз покупкок товаров и количества клиентов, минимизируем количество товара на складе, и хранить ровно столько, сколько купят в заданный временной диапазон. Зная количество клиентов в каждый момент времени, составим оптимальное рабочее расписание, чтобы с минимумом затрат, было достаточное количество персонала.

2) Прогнозирование нагрузки на службу доставки

Цель: не допустить коллапса логистики при пиковых нагрузках.

Как решается: прогнозируя количество заказов, вывести на линию оптимальное количество машин и курьеров.

3) Прогнозирование нагрузки на контактный центр

Цель: при минимуме затрат на фонд оплаты труда обеспечить требуемую доступность контактного центра.

Как решается: прогнозирование количество звонков во времени, составим оптимальное расписание для операторов.

4) Прогнозирование трафика

Цель: спрогнозировать количество серверов и пропускного канала для устойчивой работы. Чтобы ваш сервис не упал в день премьеры популярного сериала или футбольного матча 😉

5) Прогнозирование оптимального времени инкассации банкоматов

Цель: минимизация объема наличности, хранимой в сети АТМ

6) Решения задачи холодного старта в рекомендательных системах

Цель: рекомендовать релевантные товары новым пользователям.

Когда пользователь совершил несколько покупок, для рекомендации можно построить алгоритм коллаборативной фильтрации, но когда информации о пользователе нет, оптимально рекомендовать наиболее популярные товары.

Решение: популярность товаров зависит от времени, когда сделана рекомендация. Использование прогнозирование временного ряда помогает выявить релевантные товары в каждый конкретный момент времени.

Лайфхаки построения рекомендательных систем мы рассмотрели в предыдущей статье.

7) Поиск аномалий

Цель: выявить проблемы в работе оборудования и нестандартные ситуации в бизнесе
Решение: если измеряемое значение выбивается из доверительного интервала прогноза, аномалия выявлена. Если это АЭС, пора наращивать квадрат расстояния 😉

Алгоритмы для решения задачи

1) Скользящее среднее

Простейшим алгоритмом является скользящее среднее. Давайте посчитаем среднее значение на нескольких последних элементах и сделаем прогноз. В прогнозе погоды больше чем на 10 дней, используется подобный подход.

Когда важно, чтобы последние значения в ряду вносили больший вес, введем коэффициенты в зависимости от удаленности даты, получив взвешенную модель:

Так, можно задать коэффициент W, чтобы максимальный вес приходился на 2 последних дня и входные.

Учет циклических факторов

На качество рекомендаций могут влияют циклические факторы, такие как совпадение с днем недели, датой, предшествование праздникам и т. д.

Рис. 1. Пример декомпозиции временного ряда на тренд, сезонный компонент и шум

Экспоненциальное сглаживание – решение учета циклических факторов.

Рассмотрим 3 базовых подхода

1. Простое сглаживание (модель Брауна)

Представляет собой вычисление взвешенного среднего на последних 2-х элементах ряда.

2. Двойное сглаживание (модель Хольта)

Принимает в расчет изменение тренда и колебания значений остатков вокруг этого тренда.

Вычисляем предсказание изменения остатков ® и тренда (d). Итоговое значение y — сумма этих двух величин.

3. Тройное сглаживание (модель Хольта — Винтерса)

Тройное сглаживание дополнительно учитывает сезонные колебания.

Формулы для тройного сглаживания.

Алгоритм ARIMA и SARIMA

Особенностью временных рядов для применения ARIMA заключается в связи прошлых значений связанных с текущими и будущими.

SARIMA – расширение для рядов с сезонной составляющей. SARIMAX – расширение, включающее внешнюю регрессионную составляющую.

ARIMA-модели позволяют моделировать интегрированные или разностно-стационарные временные ряды.

Подход ARIMA к временным рядам заключается в том, что в первую очередь оценивается стационарность ряда.

Далее ряд преобразуется взятием разности соответствующего порядка и уже для преобразованной модели строится некоторая ARMA-модель.

ARMA — линейная модель множественной регрессии.

Важно, чтобы ряд был стационарен, т.е. не менялось среднее, и дисперсия. Если ряд нестационарен, его следует привести к стационарному виду.

XGBoost – куда же без него

Если у ряда нет внутренней выраженной структуры, но есть внешние влияющие факторы (менеджер, погода и т.д.), то можно смело использовать такие модели машинного обучения как бустинг, случайные леса, регрессия, нейронные сети и SVM.

Из опыта работы команды DATA4, прогнозирование временных рядов, одна из основных задач для решения оптимизации складских затрат, затрат на персонал, оптимизации обслуживания сетей АТМ, логистики и построения рекомендательных систем. Сложные модели, такие как SARIMA дают качественный результат, но требуют больших затрат времени и подходят только для определенного круга задач.

В следующей статье мы рассмотрим основные подходы к поиску аномалий.

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

Как обыграть букмекера с помощью математики

Анализ временных рядов – это один из способов математического прогнозирования спортивных ставок. Он не учитывает информацию, которую беттор может не знать: что едят игроки команды, что думают по поводу матча, не договорились ли с соперником. Математический анализ оперирует исключительно цифрами.

С помощью анализа данных базовой линии можно определить тенденцию на дальнейшие игры

Этапы построения прогноза по временным рядам

Создание профессионального математического прогноза по временным рядам происходит в несколько этапов:

008. Прогнозирование временных рядов — К.В. Воронцов

  1. Сбор и начальный анализ информации.
  2. Создание математических моделей, оценка их параметров и характеристик.
  3. Анализ готовых моделей. Оценка их правильности, грамотности, адекватности.
  4. Выбор лучшего варианта.
  5. Расчет моментного и интервального прогноза.

На каждом этапе отбирается и анализируется определенная информация, касающаяся конкретного вида спорта, динамики коэффициентов, результатов предыдущих спортивных соревнований с участием команды. Учитываются все возможные показатели, например:

  1. Количество набранных очков в предыдущих играх
  2. Количество результативных ударов и их процентное соотношение к совершенным.
  3. В командных видах спорта оценивается влияние каждого отдельного игрока на результат матча.

На первом этапе прогноза выявляются возможные аномалии, когда количество набранных очков намного выше или ниже среднего показателя. Серьезные аномалии могут значительно исказить результаты всего исследования.

На этом же этапе определяется тенденция на рост или уменьшение усредненного показателя, иными словами нацелена команда на выигрыш или проигрыш. Тенденция определяется с помощью анализа исходных данных.

Временной шаг может быть любым: день, неделя, год

Условия для получения верного прогноза

Для оценки точности прогноза на основе временного ряда нужно, чтобы исходные данные и базовая линия соответствовали нескольким требованиям:

  1. Временной шаг – одинаков для всей линии.
  2. Фиксация наблюдений производится в заранее определенный момент временного промежутка. К примеру, берутся данные на 18.00 каждого дня. Или на каждый понедельник.
  3. Данные должны быть полными и достоверными. Пропускать ничего нельзя, в противном случае прогноз будет неверным. При отсутствии информации за небольшой промежуток времени, ее можно восполнить ориентировочными данными, к примеру, усредненным значением соседних промежутков. С большими временными отрезками этот способ не работает.

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

Пример использования

Для примера построения моделей временных рядов и оценки качества прогнозов можно разобрать прогнозирование роста рекордов у определенной команды.

Первый этап включает анализ изменения наибольших результатов за выбранный промежуток времени (10, 20 лет и т. д.). На основе отобранных данных создается временной ряд.

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

Далее рассчитываются неизвестные параметры. Чаще всего за основу также берутся усредненные значения известных показателей.

Заключительный этап – создание прогноза, для чего используются формулы и уравнения. В данном случае прогноз состоит в следующем: берется рассчитанная зависимость «итог – время», в которую подставляется нужный год и подбирается соответствующий результат. Чтобы обосновать данный прогноз нужно доказать, что найденная в результате анализа временных рядов зависимость сохранится и за пределами известного ряда.

К спорту методы математического прогнозирования впервые применил американский математик А. Кеннели. Он тщательно проанализировал и предсказал ряд рекордов в легкой атлетике. Начиная с 1970-х годов, научное математическое прогнозирование спортивных достижений активно используется в ряде стран, включая Россию. Сделать такой прогноз самостоятельно у обычного беттера вряд ли получится, потому лучше заказать профессиональные прогнозы на спорт от экспертов.

Полное руководство по анализу и прогнозированию временных рядов

Желаем ли мы предсказать тенденцию на финансовых рынках или потребление электроэнергии, время является важным фактором, который теперь необходимо учитывать в наших моделях. Например, было бы интересно предсказать, в какое время в течение дня будет наблюдаться пиковое потребление электроэнергии, например, для корректировки цены или производства электроэнергии.

Войтивременная последовательность, Временной ряд — это просто ряд точек данных, упорядоченных во времени. Во временных рядах время часто является независимой переменной, и цель обычно состоит в том, чтобы сделать прогноз на будущее.

Однако при работе с временными рядами возникают другие аспекты.

Этостационарный?

Есть лисезонность?

Целевая переменнаяавтокоррелированные?

В этом посте я представлю различные характеристики временных рядов и то, как мы можем смоделировать их для получения точных (насколько это возможно) прогнозов.

Предсказывать будущее сложно.

автокорреляция

Неформально,автокорреляцияэто сходство между наблюдениями как функция временного интервала между ними.

Выше приведен пример автокорреляционного графика. При внимательном рассмотрении вы понимаете, что первое значение и 24-е значение имеют высокую автокорреляцию. Точно так же 12-е и 36-е наблюдения сильно коррелируют. Это означает, что мы будем находить очень похожие значения в каждые 24 единицы времени.

Обратите внимание, как график выглядит как синусоидальная функция. Это подсказка длясезонности,и вы можете найти его значение, найдя период на графике выше, который даст 24 часа.

Сезонность

Сезонностьотносится к периодическим колебаниям. Например, потребление электроэнергии высокое в течение дня и низкое в ночное время, или продажи в Интернете увеличиваются в течение Рождества, прежде чем снова замедляться.

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

Помните, что сезонность также может быть получена из графика автокорреляции, если он имеет синусоидальную форму. Просто посмотрите на период, и он дает продолжительность сезона.

стационарность

стационарностьявляется важной характеристикой временных рядов. Временной ряд называется стационарным, если его статистические свойства не изменяются со временем. Другими словами, это имеетпостоянное среднее и дисперсияи ковариация не зависит от времени.

Глядя снова на тот же сюжет, мы видим, что процесс выше является стационарным. Среднее значение и дисперсия не меняются со временем.

Зачастую цены на акции не являются стационарным процессом, поскольку мы можем наблюдать растущую тенденцию или ее волатильность со временем может возрасти (это означает, что дисперсия меняется).

В идеале мы хотим иметь стационарные временные ряды для моделирования. Конечно, не все они являются стационарными, но мы можем сделать различные преобразования, чтобы сделать их стационарными.

Как проверить, если процесс является стационарным

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

Не вдаваясь в технические подробности теста Дики-Фуллера, он проверяет нулевую гипотезу о наличии единичного корня.

Если это так, тор>0, а процесс не стационарный.

Иначе,р =0, нулевая гипотеза отклоняется, и процесс считается стационарным.

Как пример, процесс ниже не является стационарным. Обратите внимание, что среднее значение не является постоянным во времени.

Моделирование временных рядов

Есть много способов смоделировать временной ряд, чтобы делать прогнозы. Здесь я представлю:

  • скользящее среднее
  • экспоненциальное сглаживание
  • ARIMA

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

Модель скользящего среднего — это, вероятно, самый наивный подход к моделированию временных рядов. Эта модель просто утверждает, что следующее наблюдение является средним значением всех прошлых наблюдений.

Анализ и прогнозирование временных рядов

Несмотря на простоту, эта модель может быть на удивление хорошей и представляет собой хорошую отправную точку.

В противном случае скользящее среднее можно использовать для определения интересных тенденций в данных. Мы можем определитьокноприменить модель скользящего среднего кгладкий; плавныйВременные ряды и выделить различные тенденции.

На графике выше мы применили модель скользящего среднего к 24-часовому окну. Зеленая линиясглаженныйвременной ряд, и мы можем видеть, что есть 2 пика в 24-часовой период.

Конечно, чем длиннее окно, темгладкойтенденция будет. Ниже приведен пример скользящей средней в меньшем окне

Экспоненциальное сглаживание

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

Математически экспоненциальное сглаживание выражается как:

Вот,альфаэтокоэффициент сглаживаниякоторый принимает значения от 0 до 1. Он определяет, какбыстровес уменьшается для предыдущих наблюдений.

Из приведенного выше графика темно-синяя линия представляет экспоненциальное сглаживание временного ряда с использованием коэффициента сглаживания 0,3, в то время как оранжевая линия использует коэффициент сглаживания 0,05.

Как видите, чем меньше коэффициент сглаживания, тем более плавным будет временной ряд. Это имеет смысл, потому что когда коэффициент сглаживания приближается к 0, мы приближаемся к модели скользящего среднего.

Двойное экспоненциальное сглаживание

Двойное экспоненциальное сглаживание используется при наличии тенденции во временном ряду. В этом случае мы используем эту технику, которая является просто рекурсивным использованием экспоненциального сглаживания дважды.

Вот,бетаэтокоэффициент сглаживания трендаи принимает значения от 0 до 1.

Ниже вы можете увидеть, как разные значенияальфаа такжебетавлияет на форму временного ряда.

Трип экспоненциальное сглаживание

Этот метод расширяет двойное экспоненциальное сглаживание, добавляякоэффициент сезонного сглаживания, Конечно, это полезно, если вы заметили сезонность в своих временных рядах.

Математически тройное экспоненциальное сглаживание выражается как:

гдегаммаявляется фактором сезонного сглаживания иLэто длина сезона.

Сезонная авторегрессионная интегрированная модель скользящего среднего (SARIMA)

SARIMA на самом деле является комбинацией более простых моделей для создания сложной модели, которая может моделировать временные ряды, демонстрирующие нестационарные свойства и сезонность.

Во-первых, у нас естьМодель авторегрессии AR (p), Это в основном регрессия временного ряда на себя. Здесь мы предполагаем, что текущее значение зависит от предыдущих значений с некоторой задержкой. Принимает параметрпкоторый представляет собой максимальное отставание. Чтобы найти его, мы смотрим на график частичной автокорреляции и выявляем лаг, после которого большинство лагов не являются значимыми.

В приведенном ниже примерепбудет 4.

Затем мы добавляеммодель скользящего среднего MA (q), Это принимает параметрQкоторая представляет собой наибольшее отставание, после которого другие лаги не имеют существенного значения на графике автокорреляции.

Ниже,Qбудет 4.

После мы добавляемпорядок интеграцииМне бы), Параметрdпредставляет количество различий, необходимых для того, чтобы сделать серию стационарной.

Наконец, мы добавляем последний компонент:сезонность S (P, D, Q, s), гдеsпросто длина сезона. Кроме того, этот компонент требует параметровпа такжеQкоторые так же, какпа такжеQ, но для сезонной составляющей. В заключение,Dпорядок сезонной интеграции, представляющий количество различий, необходимых для удаления сезонности из ряда.

Машинное обучение. Прогнозирование временных рядов. К.В. Воронцов, Школа анализа данных, Яндекс.

Объединяя все, мы получаемСАРИМА (p, d, q) (P, D, Q, s)модель.

Основной вывод: перед моделированием с помощью SARIMA мы должны применить преобразования к нашему временному ряду, чтобы устранить сезонность и любое нестационарное поведение.

Это было много теории, чтобы обернуть нашу голову вокруг! Давайте применим методы, обсужденные выше, в нашем первом проекте.

Мы попытаемся предсказать цену акций конкретной компании. Теперь прогнозировать цену акций практически невозможно. Тем не менее, это остается забавным упражнением, и это будет хороший способ практиковать то, что мы узнали.

Проект 1 — Прогнозирование цены акций

Мы будем использовать историческую цену акций Фонда Новой Германии (GF), чтобы попытаться предсказать цену закрытия в следующие пять торговых дней.

Вы можете взять набор данных и блокнотВот,

Как всегда, я настоятельно рекомендую вам написать код! Начни свой блокнот и пойдем!

Вы точно не разбогатеете, пытаясь предсказать фондовый рынок

Импортировать данные

Во-первых, мы импортируем некоторые библиотеки, которые будут полезны на протяжении всего нашего анализа. Также мы определяемсредняя средняя процентная ошибка (MAPE), так как это будет нашей метрикой ошибки.

Затем мы импортируем наш набор данных, и мы предшествуем первым десяти записям, и вы должны получить:

Как видите, у нас есть несколько записей, касающихся акций, отличных от фонда Новой Германии (GF). Кроме того, у нас есть запись, касающаяся внутридневной информации, но нам нужна только информация на конец дня (EOD).

Очистить данные

Сначала мы удаляем ненужные записи.

Затем мы удаляем ненужные столбцы, поскольку исключительно хотим сосредоточиться на цене закрытия акций.

Если вы просматриваете набор данных, вы должны увидеть:

Потрясающе! Мы готовы к поисковому анализу данных!

Исследовательский анализ данных (EDA)

Мы строим цену закрытия за весь период времени нашего набора данных.

Вы должны получить:

Очевидно, вы видите, что это нестационарныйпроцесс, и трудно сказать, есть ли какая-тосезонность,

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

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

Используя временное окно 5 дней, мы получаем:

Как видите, мы едва можем увидеть тренд, потому что он слишком близок к реальной кривой. Давайте посмотрим на результат сглаживания за предыдущий месяц и за предыдущий квартал.

Тенденции легче определить сейчас. Обратите внимание, как 30-дневный и 90-дневный тренд показывают нисходящую кривую в конце. Это может означать, что акции могут понизиться в следующие дни.

Экспоненциальное сглаживание

Теперь давайте использоватьэкспоненциальное сглаживаниечтобы увидеть, может ли он поднять лучшую тенденцию.

Здесь мы используем 0,05 и 0,3 в качестве значений длякоэффициент сглаживания, Не стесняйтесь попробовать другие значения и посмотреть, каков результат.

Как вы можете видеть,альфазначение 0,05 сглаживало кривую, одновременно улавливая большинство восходящих и нисходящих трендов.

Теперь давайте использоватьдвойное экспоненциальное сглаживание.

Двойное экспоненциальное сглаживание

Опять же, экспериментируйте с разнымиальфаа такжебетакомбинации, чтобы получить лучше выглядящие кривые.

моделирование

Как было указано выше, мы должны превратить нашу серию в стационарный процесс, чтобы смоделировать ее. Поэтому давайте применим тест Дики-Фуллера, чтобы проверить, является ли это стационарным процессом:

Тебе следует увидеть:

По критерию Дики-Фуллера временной ряд, что неудивительно, нестационарен. Также, глядя на график автокорреляции, мы видим, что он очень высокий, и кажется, что нет явной сезонности.

Поэтому, чтобы избавиться от высокой автокорреляции и сделать процесс стационарным, давайте возьмем первое отличие (строка 23 в блоке кода). Мы просто вычитаем временной ряд из себя с задержкой в ​​один день, и мы получаем:

Потрясающе! Наша серия теперь стационарная, и мы можем начать моделирование!

Sarima

Теперь для SARIMA мы сначала определим несколько параметров и диапазон значений для других параметров, чтобы сгенерировать список всех возможных комбинаций p, q, d, P, Q, D, s.

Теперь в приведенной выше ячейке кода у нас есть 625 различных комбинаций! Мы попробуем каждую комбинацию и обучим SARIMA каждой, чтобы найти лучшую модель. Это может занять некоторое время в зависимости от вычислительной мощности вашего компьютера.

Как только это будет сделано, мы распечатаем краткую информацию о лучшей модели, и вы должны увидеть:

Потрясающе! Наконец, мы прогнозируем цену закрытия следующих пяти торговых дней и оцениваем MAPE модели.

В этом случае у нас MAPE 0,79%, что очень хорошо!

Сравните прогнозируемую цену с фактическими данными

Теперь, чтобы сравнить наш прогноз с фактическими данными, мы берем финансовые данные изYahoo Financeи создайте фрейм данных.

Затем мы строим график, чтобы увидеть, насколько мы далеки от фактических цен закрытия:

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

Опять же, это не из-за нашей процедуры, а из-за того, что прогнозировать цены на акции практически невозможно.

Из первого проекта мы изучили всю процедуру создания временного ряда, прежде чем использовать SARIMA для моделирования. Это долгий и утомительный процесс, с множеством ручных настроек.

Теперь давайте представим Пророка в Facebook. Это инструмент прогнозирования, доступный как на Python, так и на языке R. Этот инструмент позволяет как экспертам, так и не экспертам производить высококачественные прогнозы с минимальными усилиями.

Давайте посмотрим, как мы можем использовать его во втором проекте!

Проект 2 — Предсказать качество воздуха с Пророком

Название говорит само за себя: мы будем использовать Prophet, чтобы помочь нам предсказать качество воздуха!

Полный блокнот и набор данных можно найтиВот,

Давайте сделаем некоторые прогнозы!

Импортировать данные

Как всегда, мы начинаем с импорта некоторых полезных библиотек Затем мы печатаем первые пять строк:

Как видите, набор данных содержит информацию о концентрациях различных газов. Они были записаны в каждый час для каждого дня. Вы можете найти описание всех функцийВот,

Если вы исследуете набор данных немного подробнее, вы заметите, что существует множество экземпляров значения -200. Конечно, не имеет смысла иметь отрицательную концентрацию, поэтому нам нужно будет очистить данные перед моделированием.

Поэтому нам нужно очистить данные.

Очистка данных и разработка функций

Здесь мы начнем с анализа нашего столбца даты, чтобы превратить его в «даты».

Затем мы превращаем все измерения в поплавки.

После этого мы агрегируем данные по дням, беря среднее значение каждого измерения.

На данный момент у нас еще есть некоторыеNaNот которого мы должны избавиться. Поэтому мы удаляем столбцы, которые имеют более 8NaN, Таким образом, мы можем затем удалить строки, содержащиеNaNзначения без потери слишком большого количества данных.

Наконец, мы агрегируем данные по неделям, потому что это даст более плавную тенденцию для анализа.

Мы можем построить тенденции каждого химического вещества. Здесь мы показываем, что NOx.

Оксиды азота очень вредны, так как они реагируют на смог и кислотные дожди, а также отвечают за образование мелких частиц и озона на уровне земли. Они оказывают неблагоприятное воздействие на здоровье, поэтому концентрация NOx является ключевой характеристикой качества воздуха.

моделирование

Мы сосредоточимся исключительно на моделировании концентрации NOx. Поэтому мы удалим все остальные несоответствующие столбцы.

Затем мы импортируем Пророка.

Пророк требует, чтобы столбец даты был названД.С.и особенность столбца, который будет названYпоэтому мы вносим соответствующие изменения.

Эконометрика. Моделирование временных рядов. Автокорреляция

На данный момент наши данные выглядят так:

Затем мы определяем тренировочный набор. Для этого мы продержимся последние 30 записей для прогнозирования и проверки.

После этого мы просто инициализируем Prophet, подгоняем модель к данным и делаем прогнозы!

Вы должны увидеть следующее:

Вот,yhatпредставляет прогноз, в то время какyhat_lowerа такжеyhat_upperпредставляют нижнюю и верхнюю границу прогноза соответственно.

Пророк позволяет легко составить прогноз и мы получим:

Как вы можете видеть, Пророк просто использовал прямую нисходящую линию, чтобы предсказать концентрацию NOx в будущем.

Затем мы проверяем, есть ли у временного ряда какие-либо интересные особенности, такие как сезонность:

Здесь Пророк выявил только тенденцию к снижению без сезонности.

Оценивая производительность модели путем вычисления ее средней абсолютной процентной ошибки (MAPE) и средней абсолютной ошибки (MAE), мы видим, что MAPE составляет 13,86%, а MAE — 109,32, что не так уж и плохо! Помните, что мы не настроили модель вообще.

Наконец, мы просто строим прогноз с его верхней и нижней границами:

Поздравляю с завершением! Это была очень длинная, но информативная статья. Вы узнали, как надежно анализировать и моделировать временные ряды, и применили свои знания в двух разных проектах.

Я надеюсь, что вы нашли эту статью полезной, и я надеюсь, что вы вернетесь к ней.

Ссылка: Большое спасибо за этостатьяза удивительное введение в анализ временных рядов!

Временные ряды в техническом анализе

Временные уровни и Временное расширение используются в работе намного чаще, чем Временные ряды. Они очень точно указывают на области временного разворота, если данная область сопровождается кластером поддержки/сопротивления. Но у данных инструментов есть слабое место — они снабжены большим количеством уровней, на которых можно ожидать разворот, и иногда выбор уровней бывает затруднительным, особенно при не слишком явных кластерах «места».

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

Рисунок 136. Временные Ряды + Ретрейсмент Фибоначчи, GBP/USD, H1

На рисунке 136 показан пример совместной работы Временных рядов и Ретрейсмента на паре GBP/USD. В данной ситуации уровень «3» подтвердил наличие разворотной временной области на линии 23.6%(L2), являющейся ключевым уровнем паттерна IP3, который сформировался после отскока цены от уровня 50%. Открытие сделок на продажу на основании внутреннего паттерна ретрейсмента IP3 было возможно и без подтверждения разворота инструментом времени, но такой вариант более надежен, так как трейдер получает дополнительную информацию о времени начала ценового движения — отработки паттерна. Временные ряды на рисунке 6 так же указали и на область поддержки на уровне 38.2% (уровень «2» Временных рядов), но данная поддержка оказалась локальной.

Нейронные сети для предсказание временных рядов (Задача регрессии)

Рисунок 137. Временные ряды + I-Проекция Фибоначчи, GBP/USD, Daily

Рисунок 137 демонстрирует силу совместной работы Временных рядов и Проекции Фибоначчи. Цена достигла уровня 127.2%, и для открытия покупок можно было дождаться подтверждения инструментом «времени». В отмеченной на рисунке области уровни времени и места совпали (уровень времени немного сместился относительно разворотной свечи), и в данной ситуации оптимальным вариантом торговли была покупка пары GBP/USD, со стопом за уровнем P161.8%. После достижения кластера «места+время» цена сразу же начала расти, и укрепилась более чем на 600 пунктов.

    Уровни любых временных инструментов строятся, в большинстве своем, на основании дробных пропорций (исключая «круглые» Фибо-уровни). Поэтому в некоторых ситуациях возможна погрешность в расположении вертикальной линии времени относительно экстремальной ценовой области. Данная погрешность является нормальной и не мешает принимать решение о входе на основании кластера «место+время».

Рисунок 138. Временные ряды + Расширение Фибоначчи, USD/CHF, H4

Заключительный пример потрясающей по своей силе совместной работы инструментов «места» и инструмент «времени» показан на рисунке 138. Здесь на паре USD/CHF сформировался восходящий тренд, на первую волну роста были построены Временные ряды, и Расширение Фибоначчи, с учетом волны коррекции первой волны.

Цена достигла уровня FE 138.2%, ключевого для пары USD/CHF, на который указал уровень «3» временного ряда. После достижения цены этого кластера — произошел однодневный разворот, и цена начала затяжное падение почти в 300 пунктов.

Из представленных выше примеров может быть сделан однозначный вывод: использование в торговле совместно инструментов «места» и «времени» Фибоначчи не только корректный метод трейдинга; он оправдан также достаточным количеством пунктов (потенциальной прибыли), которое цена проходит после достижения общего кластера и формирования разворота из этой области. В следующей главе будет рассмотрено применение Комплексного анализа Фибоначчи на валютном рынке в среднесрочных сделках, происходивших в период с 2009 по 2022 год.

Системы на скользящих средних: живы ли еще “машки”?

Все, кто хоть раз сталкивался с торговлей на финансовых рынках, знают, что такое Скользящее среднее. Этот классический технический индикатор настолько широко распространен, что встречается практически в каждой торговой системе. Даже если стретегия не использует скользящие средние напрямую, скорее всего, вы найдете в ней другие индикаторы, которые используют среднюю в своих расчетах. Сегодня мы поговорим о непосредственном использовании скользящих средних в торговых системах, проведем тесты самых распространенных стратегий на “машках”, и сделаем вывод – стоит ли смотреть в сторону этого индикатора на сегодняшних рынках или искать грааль в другом месте)

С самим индикатором вы можете познакомиться в этой статье. Она познакомит вас с основными вариантами его расчета и основами применения на практике. Также в этой статье вы можете познакомиться со всем разнообразием типов скользящих средних, которые появились с развитием технологий и, в частности, с появлением домашних компьютеров.

В основном скользящие средние используются для снижения нежелательного шума во временных рядах, чтобы поведение рынка, лежащее в основе процесса ценообразования, стало более понятным и заметным, яснее выраженным. Они обеспечивают сглаживание данных. Как метод сглаживания, скользящее среднее является специфическим фильтром нижних частот, пропуская низкочастотную активность и подавляя высокочастотные быстропеременные процессы. На графике цен высокочастотные процессы выглядят как быстрые вертикальные колебания, то есть как шум, а низкочастотные – как более плавные тренды или волны.

Помимо способности снижать зашумленность временных рядов скользящие средние обладают преимуществами простоты, наглядности и функциональности. Однако при этом, как и любой мощный метод фильтрации или сглаживания данных в реальном времени, они имеют недостаток – запаздывание. Хотя сглаженные данные чище и, следовательно, более подходят для анализа, возникает запаздывание между данными в исходной серии и в сглаженной последовательности данных. Такое запаздывание может представлять серьезную проблему при необходимости быстрой реакции на события, как это часто бывает важно для трейдеров.

В некоторых случаях запаздывание не проблема, например, в системах, где линия цен пересекает скользящее среднее – фактически цена и должна обгонять среднее, чтобы такая система работала. Запаздывание более проблематично в моделях, где для принятия решений используются точки разворота графика скользящего среднего или его наклон. В таких случаях запаздывание означает отсроченный отклик, что, скорее всего, приведет к невыгодным сделкам.

Все скользящие средние сглаживают временные ряды с помощью некоторого усредняющего процесса. Отличия состоят только в том, какой удельный вес присваивается каждой из точек суммирования и насколько хорошо адаптируется формула к изменению условий. Различия между видами скользящих средних объясняются разными подходами к проблеме снижения запаздывания и увеличения чувствительности.

Виды торговых систем на основе скользящих средних

Модели торговых систем, основанных на скользящих средних, генерируют сигналы на покупку или продажу на основе соотношений между скользящим средним и ценой или между двумя (или более) скользящими средними. Существуют модели трендследящие и контр-трендовые.

Наиболее популярные модели следуют за трендом и отстают от рынка. С другой стороны, модели, идущие против тренда, предсказывают развороты. Это не означает, что следующие за рынком модели работают хуже противотрендовых. Надежные входы в тренд, пусть даже и с запаздыванием, считаются более надежными и выгодными, чем попытки предсказывать развороты, которые только изредка происходят в ожидаемый момент – глобальный экстремум обычно бывает один, в то время как локальных будет множество.

Трендследящие методы генерации торговых сигналов на основе скользящих средних могут осуществляться различными способами. Одна из самых простых моделей основана на пересечении скользящих средних – трейдер покупает, когда цены поднимаются выше скользящего среднего, и продает, когда цены опускаются ниже его.

Вместо ожидания пересечения линии среднего и цен можно использовать быстрое среднее и его пересечение с более медленным. Сигнал на покупку возникает, когда быстрое среднее поднимается выше медленного, сигнал на продажу – когда быстрое среднее опускается ниже медленного. Сглаживание исходных рядов данных за счет использования скользящих средних снижает количество ложных пересечений и, следовательно, уменьшает частоту убыточных сигналов.

Еще один способ применения скользящих средних основан на использовании пересечения скользящего среднего и смещенного вперед скользящего среднего с теми же параметрами. В этом случае сигнал на покупку возникает, когда быстрое исходное среднее поднимается выше смещенного, сигнал на продажу – когда исходное среднее опускается ниже смещенного. Выбором величины сдвигов можно уменьшить количество ложных пересечений, уменьшая частоту убыточных сигналов. Иногда используют одновременно несколько сдвинутых скользящих средних с различным сдвигом и разными периодами, как, например, в аллигаторе Б. Вильямса или в индикаторе Ишимоку.

Скользящие средние могут также использоваться для получения сигналов входа в противотрендовых системах. Цены часто реагируют на линию скользящего примерно так, как на уровни поддержки и сопротивления, на чем и основывается правило входа, согласно которому покупают, когда цены опускаются до скользящего среднего или пересекают его сверху вниз, и продают, когда они поднимаются до него или пересекают снизу-вверх. Предполагается, что цены отскакивают от уровня скользящего среднего, изменяя направление движения.

Что мы сегодня тестируем?

Итак, я планирую протестировать несколько классических подходов к использованию скользящих средних в торговых системах:

  • пересечение ценой скользящей средней;
  • пересечение двух скользящих средних;
  • использование пересечения скользящих средних со сдвигом (Аллигатор и Ишимоку);
  • пересечение цены и сдвинутой скользящей средней;
  • работа с несколькими скользящими средними (три, четыре).

Помимо экспериментов с самими системами, также мы порассуждаем над различными фильтрами и приемами, которые призваны улучшить производительность систем. И, в дополнение к этой информации, я выбрал больше десятка современных ТС, основанных на скользящих средних, которые нашел на различных сайтах и форумах в сети и хотел бы проверить в рамках этой статьи.

Итак, сегодня перед нами стоит несколько вопросов, на которые мы постараемся найти ответ:

  • стоит ли пытаться создавать торговые системы на основе скользящих средних или этот инструмент безнадежно устарел?
  • каковы наилучшие способы генерации торговых сигналов на основе скользящих средних?
  • какие методы фильтрации сгенерированных сигналов можно применить и в каких случаях?
  • стоит ли обращать внимание на современные торговые системы, использующие в своей основе скользящие средние?
  • какие виды скользящих средних наиболее эффективны и в каких случаях?

Как видите, вопросов поставлено немало и нас ждет очень обширное исследование. Тем не менее, я считаю, что ответы на них интересуют многих трейдеров и будут полезны как новичкам, так и опытным трейдерам. При этом стоит учесть, что данное исследование проводится для рынка Форекс – для товарных рынков, сырьевых, рынков акций ответы на них могут кардинально отличаться.

И, чтобы не растягивать это и так достаточно обширное исследование, я выбрал всего несколько валютных пар для исследования, стараясь подобрать их таким образом, чтобы характер их поведения максимально отличался друг от друга. При этом эти пары должны быть из группы самых популярных. Я выбрал GBPUSD, EURUSD, USDJPY, USDCAD и AUDUSD. Я не стал включать USDCHF, так как он коррелирует с EURUSD и NZDUSD из-за корреляции с австралийцем. Таким образом, в нашем портфеле валютных пар можно найти традиционно трендовые и флетовые пары, с относительно высокой и низкой волатильностью, с резкими и плавными движениями внутри дня.

Пересечение цены и скользящей средней

Простейшая торговая стратегия, основанная на применении скользящих средних, основана на использовании пересечения цены и скользящей средней. В основу этой ТС положена простая торговая идея: скользящая средняя на трендовом рынке отстает от цены (вследствие самого принципа расчета скользящей средней). Поэтому считается, что если цена больше своей скользящей средней, то тренд восходящий, а если цена меньше скользящей средней, то тренд нисходящий. Соответственно, если цена пересекает свою скользящую среднюю, то можно считать, что направление тренда изменилось.

Использование этого простейшего принципа и положено в основу простейшей торговой системы на основе скользящей средней. Визуально, глядя на график, можно предположить, что этот подход к торговле потенциально способен принести нам прибыль. Теоретически мы можем получать огромные прибыли с каждой сделки, получая профит с большей части трендовых движений. Остается только один вопрос – не будут ли забирать всю эту прибыль ложные сигналы, которых может быть огромное количество на флетовых участках? Проверим это тестированием.

Торговая система будет генерировать сигналы на вход при открытии дневного бара с одной стороны скользящей средней и закрытии на противоположной стороне. Сигнал на выход будет генерироваться совместно с противоположным сигналом на вход. Такой тип систем называется реверсивным – сделки будут открыты постоянно, при получении нового сигнала будет осуществляться закрытие текущей сделки и открытие новой в противоположном направлении.

Никакого управления позицией вроде трейлинг-стопов использоваться не будет. Ордера тейк-профит и стоп-лосс также не будут использоваться. В автоматическом исполнении такая система опасна – в случае, если упадет сервер, на котором система установлена, вы можете понести неограниченные потери. Поэтому установка ограничивающих ордеров (по крайней мере, стоп-лосса) при реальной торговле обязательна. Ну а для тестирования мы можем этим правилом пренебречь.

В нашей базовой торговой системе только один оптимизируемый параметр – это период скользящей средней. Вот результаты одной из оптимизаций:

Подобный результат, когда большая часть проходов показывает выход в прибыль, свидетельствует о том, что система достаточно стабильна и результаты не случайны. Стратегия действительно является прибыльной при большинстве значений параметра оптимизации, модель работоспособна, а прибыль не является результатом случайного стечения обстоятельств.

Конечно же, количество сделок с ростом периода скользящей средней убывает, но даже при высоком периоде (от 200 и выше) остается достаточно большим (150-200 сделок), чтобы доверять результатам теста. Теперь давайте более внимательно исследуем оптимальные результаты:

Лучше всего данная стратегия работает на валютных парах GBPUSD и AUDUSD, независимо от типа применяемой скользящей средней. На паре USDCAD лучше работает сглаженный и экспоненциальный вариант, а на EURUSD – простой. Пара USDJPY показала невысокую эффективность данной стратегии, тем не менее, экспоненциальная и сглаженная скользящие средние работают лучше.

Сводная статистика для простой скользящей средней:

Теперь попробуем подобрать подходящие фильтры, для чего будем использовать только простую скользящую среднюю. Наиболее часто упоминаемые в литературе фильтры следующие:

– вход спустя 1-3 свечи, если сигнал не исчез:

Данный фильтр во всех случаях существенно сократил количество ложных сигналов и увеличил конечную прибыль системы;

– вход после пробития средней и прохождения ценой определенного расстояния, зависящего от текущей волатильности (по ATR). Это расстояние должно появиться между ценой и скользящей средней в течение определенного времени, не превышающего заданного в настройках:

Данный фильтр оказался менее эффективным, чем предыдущий, к тому же он отсеивает слишком много сделок;

– вход после пробития скользящей средней, построенной по ценам High/Low:

Этот фильтр показал еще меньшую эффективность, чем предыдущий.

Некоторые фильтры для входа действительно улучшают параметры системы, их сочетания также могут давать более оптимальные результаты. Тем не менее, система представляет из себя классическую трендовую ТС, в которой количество прибыльных сделок намного меньше 50%, а сам размер прибыльной сделки превышает размер убыточной в пять и более раз. Такой системой очень тяжело торговать психологически и частным трейдерам, которые привыкли к более комфортной торговле, такая система плохо подходит. Типичный график баланса имеет форму «лесенки»:

Длительные периоды просадок в сочетании с малым количеством сделок доставят очень ощутимый дискомфорт при торговле. Тем не менее, тренды будут существовать на рынке всегда, и, как показывает история, появляются они довольно регулярно. А это значит, что подобная система будет работать и зарабатывать сколь угодно долго, никогда не теряя своей актуальности. Другое дело, что далеко не каждый трейдер может выдержать просадку, тянущуюся, скажем, десятилетие.

И, напоследок, на рисунке выше вы видите общую статистику торговой системы с использованием самого удачного фильтра для входа. Как видите – она далека от совершенства. Фактически, счет находился в просадке в период с 2022 по 2022 год, что может выдержать далеко не каждый валютный спекулянт.

Пересечение двух скользящих средних

В предыдущем примере мы использовали самый простой принцип применения торговой системы на основе скользящей средней, взятый в чистом виде и с некоторыми фильтрами для входных сигналов. Да, принципиально он работает, как и большинство индикаторных методов технического анализа, но проблемы, как всегда, кроются в деталях и нюансах. А один из нюансов рассмотренного примера – это тот факт, что такого рода стратегии плохо работают на рынках, где нет выраженного тренда. Они открывают множество встречных сделок на «шумовых» движениях цены, теряя при этом прибыль, накопленную на трендовых участках рынка.

Частично устранить этот недостаток можно, используя пересечение двух скользящих средних, одна из которых, более быстрая с меньшим периодом, представляет собой сглаженный эквивалент графика цены, а вторая, более медленная, используется для определения направления тренда. Выбором соотношения между периодами МА можно уменьшить количество «ложных» срабатываний системы за счет шумовых компонент движения цены, а также уменьшить количество сделок на участках рынка с боковом трендом.

Торговая идея для этого случая тоже очень проста: если быстрая скользящая средняя расположена выше медленной МА, то тренд восходящий, а если ниже – нисходящий. Соответственно, точки пересечения быстрой и медленной МА считаются точками перемены направления тенденции и используются в качестве торговых сигналов системы:

Теперь посмотрим на результаты:

Как и в предыдущей системе, пара GBPUSD показывает наилучшие результаты. Также хорошо себя показал EURUSD. Остальные валютные пары показали примерно одинаковые результаты, прилично лучшие, чем при пересечении МА ценой.

В целом, большая часть результатов оптимизации находятся выше нулевой прибыльности, что говорит об удовлетворительной устойчивости торговой системы. Наиболее прибыльные результаты для пары GBPUSD, например, получаются при использовании быстрой скользящей средней с периодом от 50 до 100 и медленной скользящей средней с периодом от 110 до 180.

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

Избежать подобной ситуации поможет модификация правил системы. Вместо прямого задания периода быстрой скользящей средней, мы будем задавать некий коэффициент в пределах от 0.01 до 0.99. Тогда MA_fast_period = MA_coeff * MA_slow_period.

Таким образом период быстрой скользящей средней никогда не превысит период медленной.

Мы получили очень похожую картину распределения результатов, но, на этот раз, неудачных проходов стало намного меньше. Всего было получено 1715 результатов, отрицательных – около 30%.

Данная торговая система предполагает более комфортную торговлю, периоды просадок тут короче. Средняя прибыльная сделка в основном превышает среднюю убыточную в два-три раза, а количество прибыльных сделок держится в районе 40-60% в зависимости от валютной пары. Такая статистика уже более приемлема для розничного трейдера:

При этом, если собрать портфель хотя бы из протестированных мной валютных пар, характеристики подобной системы могут оказаться вполне интересными с точки зрения долгосрочного инвестирования:

Конечно, периоды просадок все еще довольно велики, но, в общем, результаты системы выглядят намного лучше, чем в предыдущем случае. Тем не менее, и тут мы наблюдаем очень длительный период просадки с 2022 до 2022 года, а также с середины 2022 года по сегодня и с 2001 года по 2003.

Использование скользящих средних со сдвигом

Еще один способ применения скользящих средних основан на использовании пересечения МА и смещенного вперед (назад) скользящего среднего с теми же параметрами.

В этом случае сигнал на покупку возникает, когда исходное МА поднимается выше смещенного скользящего среднего, а сигнал на продажу – когда исходное среднее опускается ниже смещенного. Выбором величины сдвига можно уменьшить количество ложных пересечений, уменьшая частоту убыточных сигналов.

Вариантом этого метода является метод, использующий пересечение графика цены со сдвинутой МА, или графика цены со сдвинутым вперед графиком цены. Следует отметить, что последний вариант (используемый, кстати, и в популярном индикаторе Ишимоку) представляет собой не что иное, как другую запись индикатора моментум. График цены, в совокупности со сдвинутыми вперед скользящими средними, используется также в торговой системе Б. Вильямса. Мы с вами рассмотрим вариант пересечения двух скользящих средних со сдвигом и без:

Из графика ниже видно, что какой бы ни был по величине сдвиг, оптимальный период – от 90 до 150:

Отрицательных результатов снова в пределах 30%, что вполне приемлемо и служит сигналом того, что система достаточно устойчива. Что касается результатов работы системы, то они не намного хуже работы двух скользящих средних:

Если объединить в один портфель все протестированные валютные пары, то получим следующую картину:

Картина очень похожа на результат работы системы пересечения двух разных скользящих средних, но количество прибыльных сделок ниже, а средняя прибыльная сделка более чем в три раза больше средней убыточной. При этом периоды просадок более затяжные. В целом, стоит предпочесть предыдущую торговую систему.

Пересечение цены и сдвинутой скользящей средней

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

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

Для данной системы получилось очень много отрицательных результатов, вплоть до 50%, что может свидетельствовать о неустойчивости модели. Тем не менее:

Как видно, они соизмеримы с моделью пересечения ценой одной МА без сдвига. Вот сводная статистика:

Параметры системы очень напоминают первую рассмотренную нами ТС. Кстати, если визуально сравнивать все сводные тесты, вы увидите, что кривые доходностей на них похожи – те же периоды роста и те же места серьезных просадок. Все это свидетельствует о том, что системы на скользящих средних генерируют очень похожие сигналы. Где-то они оказываются более эффективными, где-то менее, но конечный результат во многом зависит не от конкретных настроек, а от поведения самого рынка.

Также все это косвенно говорит о довольно высокой устойчивости торговых систем, основанных на скользящих средних – если на конкретной валютной паре большая часть настроек при оптимизации дает прибыль, то не так уж и важно, какие из них использовать. Если рынок не изменится (тренды не исчезнут, что маловероятно), то система, с огромной долей вероятности, принесет прибыль своему владельцу на длительном периоде времени. Насколько приемлема потенциальная прибыль для трейдера – это уже другой вопрос, но судя по результатам тестов, она вполне имеет шанс устроить многих.

Система множественных таймфреймов на основе МА

Эта торговая стратегия – эквивалент случайного пересечения цены и скользящей средней, но только сразу для нескольких таймфреймов, отличающихся временным масштабом представления данных. Суть торговой идеи для этого случая заключается в следующем: мы считаем, что тренд восходящий, если цена больше всех трех скользящих средних, т.е. что три тренда разной длительности на трех кратных таймфреймах представления данных классифицируются, как восходящие. Для этого мы возьмем таймфреймы H4, D1 и W1 и нанесем на них скользящие средние с разными периодами.

Система получилась очень устойчивой, отрицательных результатов оказалось менее 10% от общей массы. Тем не менее, сами результаты не слишком впечатляют. Вот они:

И вот результаты сводной статистики по всем протестированным парам:

Как видно, результаты не сильно лучше итогов самой первой рассмотренной нами ТС.

Торговые системы на основе индикатора Аллигатор Б. Вильямса

Мнения о книгах Б. Вильямса «Торговый Хаос» и «Новые измерения в биржевой торговле» в трейдерской среде занимают диапазон от полного неприятия до восторженного почитания. Чего нет, так это равнодушия, а раз о книгах и методе говорят, то что-то в них есть, по крайней мере, следует отдать должное популяризаторскому таланту Б. Вильямса.

Торговая стратегия Билла Вильямса – это не механическая торговая система, а некий торгово-аналитический комплекс из большого набора правил и приемов анализа рынка и совершения торговых операций, руководствуясь которым каждый может создать для себя свою торговую стратегию.

Мы же рассмотрим только один из элементов, входящий в торгово-аналитический комплекс Б. Вильямса и основанный на применении набора сдвинутых скользящих средних, так называемый «Аллигатор» Билла Вильямса, и простейшие торговые стратегии, которые можно построить на основе этого индикатора.

Индикатор Аллигатор представляет собой три сдвинутых скользящих средних различного периода с разным сдвигом, рассматриваемых в совокупности, как один объект. Аллигатор представляет собой не что иное, как набор из трех сдвинутых скользящих средних с периодами 9 (сдвиг 3), 15 (сдвиг 5) и 25 (сдвиг 8), вычисляемых на медианной цене графика. Различные комбинации взаимного расположения графика цены и элементов индикатора служат руководством к тем или иным действиям на рынке. Аллигатор очень популярен, особенно среди начинающих трейдеров. Рассмотрим на тестах, что дает применение Аллигатора в качестве элемента торговой стратегии.

Билл Вильямс, психолог по образованию, пишет образно и ярко, учитывая психологию восприятия текста читателем. Поэтому его книги запоминаются, особенно если они были прочитаны на этапе начального знакомства с рынком. Аллигатор, по словам Вильямса, охотится за добычей, которой является цена. Когда линии Аллигатора переплетены с линией графика цены, то добыча поймана, аллигатор сыт и пассивен. Трейдер в этот момент тоже находится в режиме ожидания.

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

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

Первая торговая идея, которая возникает при рассмотрении индикатора Аллигатор Вильямса – это использовать его в качестве индикатора тренда. Если линии индикатора выстраиваются в порядке зеленая-красная-синяя, то очевидно, что тренд восходящий, если порядок линий синяя-красная-зеленая, то тренд нисходящий. Попробуем протестировать торговую стратегию, основанную на порядке расположения линий аллигатора.

Для покупок мы выделили одновременное выполнение условий, что зеленая линия больше красной, а красная больше синей. Для продаж – одновременное выполнение условий, что зеленая линия меньше красной, а красная меньше синей. Условие для открытия позиций дополним проверкой взаимного расположения цены закрытия и красной линии Аллигатора, чтобы не возникло конфликта между правилами открытия и закрытия позиций. Оптимизацию использовать не будем, проверим Аллигатор в первозданном виде.

Данная система не дала ни одного положительного результата:

Мы рассмотрели несколько типовых вариантов построения торговых систем на основе скользящих средних, а также рассмотрели несколько фильтров для сигналов входа. Мы выяснили несколько интересных особенностей, таких, как сильная «похожесть» графиков баланса тестируемых систем.

Кроме того, мы нашли ответ на большинство поставленных вопросов. Например, можно точно сказать, что скользящая средняя – до сих пор достаточно эффективный инструмент технического анализа и что системы на основе него могут быть вполне эффективны. Лучше всего показала себя система на пересечении двух скользящих средних, при этом наиболее эффективный тип скользящей средней различается для каждой валютной пары.

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

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

Современные торговые системы на основе скользящих средних

Независимо от того, на какой таймфрейм рассчитана стратегия, мы будем использовать Н1. Также мы будем применять свои правила выхода и сопровождения позиций. Это унифицирует стратегии – по сути отличаться будут только правила входа в позицию. Таким образом мы сможем сравнивать именно эффективность входа в сделки.

Окно МА

После пробоя ценой ЕМА8 , предлагается ожидать отката и касания ценой ЕМА8 в течение 5-15 свечей. В случае, если это произошло, открывается новая позиция в сторону первоначального пробоя. Предлагается устанавливать фиксированные уровни стоп-лосс и тейк-профит, сопровождение позиции не предусмотрено.

Стратегия задумана для таймфрейма М15, но мы будем использовать ее для Н1. Также мы используем различные правила для выхода и сопровождения позиций. Также немного модифицируем правила входа – свеча, коснувшаяся МА, должна быть направлена в сторону открываемой позиции – это небольшой свечной фильтр, который призван улучшить результаты ТС.

По сути данная стратегия – более сложная модификация классической ТС пробоя одной МА ценой с фильтром по количеству свечей.

Стратегия показала себя достаточно устойчивой и ее результаты вполне годятся для реальной торговли. Тем не менее, просадки все еще довольно длительные и составляют период до одного года. К тому же, несколько лет были закрыты в нуле: 2002, 2004, 2007, 2022, 2022. Тем не менее – результат можно считать вполне приемлемым.

Битва каналов – Battle of the bands

Следующая стратегия называется Battle of the bands. ТС разработана для часовых графиков и использует канал из двух МА, построенных по ценам high и low. Для фильтрации сделок используются скользящие средние с периодом 100 и 200 – для продаж цена должна быть под ними, для покупок – над ними. Вход в сделку осуществляется, когда цена пробивает канал из МА и индикатор Parabolic SAR подтверждает намеченную тенденцию. В оригинале предполагается установка стоп-лосса на противоположной стороне канала из МА и трейлинг-стоп величиной примерно 15 пунктов, но мы, как обычно, используем свои правила выхода.

Как видите, стратегия практически целиком завязана на МА и ее правила довольно просты. Давайте посмотрим на результаты тестирования:

Эффективность стратегии существенно снизилась после 2022 года, практически до нуля. Тем не менее, она долгое время работала и приносила прибыль. Вполне вероятно, что с дополнительными доработками ТС вполне может быть прибыльной.

EMA + Stochastic

Следующая система – EMA + Stochastic. Это еще одна довольно простая стратегия, использующая три скользящих средних и осциллятор Stochastic.

Правила просты и банальны. Вот пример для покупок: две быстрые МА пересекают медленную вверх, а стохастик находится выше определенного уровня. На рисунке ниже пример для продаж:

Теперь давайте посмотрим на результаты:

Система сгенерировала достаточно сделок, чтобы оценить ее эффективность. Средняя прибыль немного больше среднего убытка, а количество прибыльных сделок немного выше 50%. Судя по кривой баланса, торговля довольно стабильна, хотя 2006, 2022 и 2022 годы были закрыты примерно в ноль. Данную ТС вполне можно применить на реальном счете.

Данная стратегия использует канал скользящих средних. Сигналом к покупке служит пересечение границы канала более быстрой скользящей средней. Дополнительным фильтром служат показания индикатора ADX и закрытие свечи за границами канала:

Давайте взглянем на результаты:

Система сгенерировала достаточно сделок, чтобы оценить ее эффективность. Средняя прибыль немного больше среднего убытка, а количество прибыльных сделок немного выше 50%. Судя по кривой баланса, торговля довольно стабильна, хотя с 2022 года прибыльность практически нулевая. При некоторой доработке и добавлении других инструментов систему можно было бы применять на реальном счете.

Заключение

Как мы убедились сегодня, торговые системы на основе скользящих средних по-прежнему остаются актуальными. Судя по результатам наших исследований, на основе этого индикатора можно разработать довольно прибыльные торговые системы, которые способны стабильно на протяжении долгого времени приносить своему владельцу прибыль.

Как показывают результаты наших тестов, лучший вариант генерации сигналов на вход при помощи скользящих средних – это использование пересечения двух машек. Такой вариант показал наиболее плавную кривую доходности и лучшие статистические данные по сравнению с остальными классическими способами торговли скользящими средними.

Что такое Стационарные и нестационарные временные ряды?

При этом лучший вариант фильтрации сделок – это ожидание определенного количества свечей. Если, скажем, за 3-5 свечей условия для входа не исчезли, такая сделка будет успешной с большей долей вероятности. Кроме того, можно поэкспериментировать с фильтрацией сделок по показаниям различных индикаторов или свечных паттернов, но в нашу задачу это не входило. Посему предоставляю эту возможность вам.

Мы также познакомились с несколькими современными торговыми системами, которые я случайно выбрал в сети. Все они показали очень похожие результаты. Основной момент, который хотелось бы подчеркнуть, состоит в том, что три из четырех рассмотренных систем потеряли свою эффективность с 2022 года. Скорее всего, это говорит о том, что авторы ручных торговых систем производят жесткую подгонку к рынку, не используют форвард тестирование и всячески нарушают основные принципы разработки устойчивых торговых систем. Совершенно не удивительно, что большая часть розничных трейдеров теряют свои депозиты, используя торговые системы, найденные в сети и поставленные на реальный счет без тщательного тестирования на демо.

Тем не менее, практически в любой торговой системе можно найти что-то интересное – сам подход, принципы сопровождения позиций, закрытия сделок или оригинальные методы фильтрации сигналов. Это может быть особенно полезно новичкам на рынке Forex.

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

Анализ временных рядов

Временные ряды — это актуальный инструмент, применимый во множестве решений, от предсказания цен на акции, прогнозов погоды, планирования бизнеса, до распределения ресурсов. Несмотря на то, что прогнозирование может быть сведено к построению контролируемой регрессии, существуют особенности, связанные с временным характером наблюдений, которые необходимо учитывать, используя специальные инструменты.

Содержание

Временной ряд [ править ]

Определение:
Временно́й ряд (или ряд динамики) — собранный в разные моменты времени статистический материал о значении каких-либо параметров (в простейшем случае одного) исследуемого процесса. Каждая единица статистического материала называется измерением или отсчётом. Во временном ряде для каждого отсчёта должно быть указано время измерения или номер измерения по порядку.

Как и большинство других видов анализа, анализ временных рядов предполагает, что данные содержат систематическую составляющую (обычно включающую несколько компонент) и случайный шум (ошибку), который затрудняет обнаружение регулярных компонент. Большинство методов исследования временных рядов включает различные способы фильтрации шума, позволяющие увидеть регулярную составляющую более отчетливо. Большинство регулярных составляющих временных рядов принадлежит к двум классам: они являются либо трендом, либо сезонной составляющей. Тренд представляет собой общую систематическую линейную или нелинейную компоненту, которая может изменяться во времени. Сезонная составляющая — это периодически повторяющаяся компонента. Оба эти вида регулярных компонент часто присутствуют в ряде одновременно.

Валидирование и тестирование модели временного ряда [ править ]

Данные упорядочены относительно неслучайных моментов времени, и, значит, в отличие от случайных выборок, могут содержать в себе дополнительную информацию, поэтому нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующиx наборов.

Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описана следующей картинкой (рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.

Если необходимо предсказать следующие $n$ шагов, то можно заранее кросс-валидировать $1,2. n$.
Таким образом можно также сравнить качество предсказаний для разных временных горизонтов.

Определив лучшую модель, можно применить её ко всему обучающему набору и оценить его работу на следующем во времени наборе данных. Оценка работы может быть дана с использованием метода скользящего окна [1] , который используем при кросс-валидации, но без переподсчёта параметра модели.

Краткое исследование данных [ править ]

В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,
которые для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).

Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в зоне евро (17 стран) в период с января 1996 по март 2022 года (см. график ниже). Последние два года будем использовать при тестировании.

Модели прогнозирования временных рядов [ править ]

Существует 10 моделей прогнозирования, у каждой имеются свои достоинства и недостатки. Ниже, используя каждую модель, предскажем 12 месяцев, соответственно, значение $t+1, t+2, …, t + 12$. Имеет смысл использовать среднюю абсолютную ошибку для работы оценки модели.

Наивное предсказание [ править ]

Предсказания для каждого горизонта соотвествуют последнему наблюдаемому значению $Y(t + h|t) = Y(t)$.

Такие предскания предполагают, что стохастическая [2] модель генерирует случайное блуждание.

Расширение наивной модели сезонно-наивная модель (англ. Season Naive, SNAIVE) — сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности $T$.

Прогнозы SNAIVE-модели описываются формулой $\dot(t+h|t) = Y(t+h-T)$.

Получаемые прогнозы следующие $T$ шагов совпадают с предыдущими $T$ шагами. Эти модели часто используются как ориентировочные модели. Следующий графики показывают предсказания двух моделей для 2007 года (рис. 4, 5).

Разделение по сезонам + любая модель [ править ]

Если данные показывают, что они восприимчивы к периодическим (сезонным) изменениям (ежедневно, еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.

$Y(t) = S(t) + T(t) + R(t)$
$S(t)$ — сезонный компонент.
$T(t)$ — компонент трендового цикла.
$R(t)$ — остаток.
Существуют несколько способов для такого разложения, но наиболее простой называется классическим разложением и заключается в том, чтобы оценить тренд $T(t)$ через скользящее среднее, посчитать $S(t)$, как среднее без тренда $Y(t) — T(t)$ для каждого сезона.
Посчитать остаток, как $R(t) = Y(t) — T(t)-S(t)$.

Классическое разложение можно расширить несколькими способами.
Расширение позволяет использовать данный метод при:

  • непостоянной величине сезона;
  • посчитать начальные и конечные значения декомпозиции;
  • избежать лишнего сглаживания;

Обзор методов разложений ряда можно увидеть по ссылке. Используется реализация из стандартной библиотеки (рис. 6).

Одним из способов использования декомпозиции для прогнозирования будет:
1) Разложить обучающий набор алгоритмом.
2) Посчитать сезонное отклонение ряда $Y(t) — S(t)$, используя любую модель для прогнозирования сезонно-чувствительного временного ряда.
3) Добавить прогнозам сезонность последнего временного периода во временном ряду (в нашем случае $S(t)$ для прошлого года).

На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7).

Следующий график показывает расчёты для 2007 года с использованием декомпозиции и наивной модели (рис. 8) для сезонно-изменяемого временного ряда.

Экспоненциальное сглаживание [ править ]

Экспоненциальное сглаживание [3] — один из наиболее успешных классических методов предсказаний. В своей базовой форме он называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами: $Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …$
где $0<⍺<1$ . Если $⍺ = 0$, то текущие наблюдения игнорируются, если же $⍺ = 1$, то полностью игнорируются предыдущие наблюдения.

Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени.

Некоторые методы для расширения алгоритма позволяют добавить тренд, его затухание и сезонность. Экспоненциальное сглаживание состоит из 9 моделей, которые подробно описаны здесь.

Следующие графики (рис. 9, 10) описывают прогнозы данных полученные для 2007 года, с использованием модели экспоненциального сглаживания (выбраны автоматически), которые подходили исходному и сезонно-чувствительному временному ряду.

ARIMA, SARIMA [ править ]

Также как и экспоненциальное сглаживание, интегрированная модель авторегрессии скользящего среднего (англ. autoregressive integrated moving average, ARIMA) также часто используются для прогноза временных рядов.

$x(t) = \psi + \phi_1 * x_(t-1) + \phi_2 * x_(t-2) + \phi_3 * x_(t-3) + . + \epsilon$
Где $\psi$ — свободный член (константа).

Определение:
Скользящее среднее — общее название для семейства функций, значения которых в каждой точке определения равны некоторому среднему значению исходной функции за предыдущий период.

$x_t = \mu + \epsilon_t — \theta_1 * \epsilon_ — \theta_2 * \epsilon_ — . $
Где $\mu$ — константа.

ARIMA — комбинация этих двух подходов. Так как эти подходы требуются стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд. То есть рассматировать ряд разностей, а не исходный ряд.

Сезонная интегрированная модель авторегрессии скользящего среднего (англ. season autoregressive integrated moving average, SARIMA) учитывает сезонность, добавляя линейную комбинацию прошлых сезонных значений и/или прошлых ошибок прогноза. Более подробную информацию про ARIMA, SARIMA читайте по ссылке.

Данные графики показывают предсказания полученные для 2007 года, с использованием модели SARIMA (рис. 11,12).

Garch [ править ]

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

В GARСH-модели (англ. Generalized AutoRegressive Conditional Heteroscedasticity, GARCH) предполагается, что слагаемое ошибки следует авторегрессионному скользящему среднему (англ. AutoRegressive Moving Average, ARMA), соответственно слагаемое меняется по ходу времени. Это особенно полезно при моделировании финансовых временных рядов, так как диапазон изменений тоже постоянно меняется (рис. 13).

В 1982 году была предложена ARCH — модель, описываемая формулой:

$\sigma^2(t) = \alpha + \sum_^<\alpha>b_ir^<2>_$
где $\alpha$ — коэффициент задержки
$\sigma^2(t)$ — волатильность
$\sum_^<\alpha>b_ir^<2>_$ — линенйная комбинация абсолютных значений нескольких последних изменений значений.

Позднее была создана GARCH — обобщённая ARCH модель, которая также учитывает предыдущие оценки дисперсии. Формула может быть записана так: $\sigma^2(t) = \alpha + \sum_^<\alpha>b_ir^<2>_ \sum_^

c_i\sigma^<2>_$
где p — количество предшествующих оценок, влияющих на текущее значение.
с — весовые коэффициенты предыдущих оценок.

Обычно ARMA используется и для учёта среднего, более подробное введение в Garsh и различные варианты можно найти здесь.

Динамические линейные модели [ править ]

Динамические линейные модели представляют другой класс моделей предсказания временных рядов (рис. 14). Идея заключается в том, что в каждый момент времени $t$ эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется.
Пример динамической линейной модели ниже:
$y(t) = ⍺(t) + tβ(t) + w(t)$,
$⍺(t) = ⍺(t-1) + m(t)$,
$β(t) = β(t-1) + r(t)$,
$w(t)$

В предыдущей модели коэффициенты $a(t)$ и $b(t)$ следуют случайному блужданию.

Динамические линейные модели могут быть построены в рамках Байесовской системы. Тем не менее и этот метод можно улучшить, подробности здесь.

TBATS [ править ]

TBATS (англ. Trigonometric seasonality, Box-Cox transformation, ARMA errors, Trend and Seasonal components) — это модели, которые основаны на экспоненциальном сглаживании (рис. 15).
Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на рядах Фурье.

Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которое имеет, как еженедельные колебания, так и ежегодные.

Временные ряды. Аддитивная и мультипликативная модели

Больше информации можно прочиать тут.

Prophet [ править ]

Ещё одна модель, способная взаимодействовать с несколькими сезонностями (рис. 16). Это ПО с открытым исходным кодом от Фейсбука (ссылка).

Prophet считает, что временной ряд может быть разложен следующим образом:
$y(t) = g(t) + s(t) + h(t) + ε(t)$,
$g(t)$ — тренд,
$s(t)$ — сезонность,
$h(t)$ — каникулы, т.е аномальные данные,
$ε(t)$ — ошибки.

Подгонка модели представляет собой упражнение по подгонке кривой, поэтому она явно не учитывает структуру временной зависимости в данных. Это также позволяет проводить наблюдения с нерегулярным интервалом.
Есть два варианта временных рядов тренда: модель насыщающего роста и кусочно-линейная модель. Модель многопериодной сезонности основана на рядах Фурье [4] . Эффект известных и заказных выходных дней может быть легко включен в модель.
Модель Prophet вставлена в байесовскую структуру и позволяет сделать полный апостериорный вывод, чтобы включить неопределенность параметров модели в неопределенность прогноза.

NNETAR [ править ]

Модель авторегрессии нейронной сети (англ. Neural NETwork AutoRegression, NNETAR) представляет собой полносвязную нейронную сеть. Модель NNETAR принимает на вход последние элементы последовательности до момента времени $t$ и выводит прогнозируемое значение в момент времени $t + 1$. Для выполнения многоэтапных прогнозов сеть применяется итеративно.

Модель можно описать уравнением $y_t = f(y_) + \epsilon_t$
где $y_ = (y_, y_, . )’$ — вектор, содержащий запаздывающие значения,
f — нейронная сеть, с 4 скрытыми узлами в каждом слое,
$\epsilon_t$ — считаем, что ряд ошибок гомокседастичен (и возможно имеет нормальное распределение).

Мы можем моделировать будущие выборочные пути этой модели итеративно, случайным образом генерируя значение для $\epsilon_t$ либо из нормального распределения, либо путем повторной выборки из исторических значений.
Так что если $\epsilon^*_$ — случайная выборка из распределения ошибок в момент времени $T+1$,
тогда $y^*_ = f(y_T) + \epsilon^*_$ — один из возможных вариантов распределения прогнозов для $y_$
Установив $y^*_ = (y^*_, y_)’$, мы можем повторить процесс, чтобы получить $y^*_ = f(y_) + \epsilon_$.

Таким образом, мы можем итеративно моделировать будущий путь выборки. Повторно моделируя выборочные пути, мы накапливаем знания о распределении всех будущих значений на основе подобранной нейронной сети.

LSTM [ править ]

Блок cети долго-краткосрочной памяти (англ. Long short-term memory, LSTM) могут использоваться для прогнозирования временных рядов (а также других рекуррентных нейронных сетей).
Состояние сети LSTM представлено через вектор пространства состояний. Этот метод позволяет отслеживать зависимости новых наблюдений от прошлых (даже очень далеких).
Вообще говоря, LSTM представляют собой сложные модели, и они редко используются для прогнозирования одного временного ряда, поскольку для их оценки требуется большой объем данных.
Однако они обычно используются, когда необходимы прогнозы для большого количества временных рядов (как показано здесь).

Оценка [ править ]

Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.
На следующем рисунке показана средняя абсолютная ошибка (англ. Mean Absolute Error, MAE) с перекрестной проверкой для каждой модели и для каждого временного горизонта (рис. 17):

Модель NNETAR по сезонно скорректированным данным была лучшей моделью для данной задачи, поскольку она соответствовала самому низкому значению MAE, прошедшему перекрестную проверку.
Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе (рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.

Методы увеличения производительности [ править ]

  • Использование разных моделей для разных временных горизонтов,
  • Объединение нескольких прогнозов (например, с учетом среднего прогноза),
  • Агрегация начальных данных.

Заключительные замечания [ править ]

Большинство ранее описанных моделей позволяют легко включать изменяющиеся во времени предикторы. Они могут быть извлечены из одного и того же временного ряда или могут соответствовать внешним предикторам (например, временному ряду другого индекса). В последнем случае необходимо обратить внимание на то, чтобы не использовать информацию из будущего, которая могла бы быть удовлетворена путем прогнозирования предикторов или использования версий c ошибками.

Обратите внимание, что в данном конспекте рассматривается случай, когда у нас есть один временной ряд для прогнозирования. Когда у нас много временных рядов, может быть предпочтительнее глобальный подход, поскольку он позволяет нам оценивать более сложную и потенциально более точную модель. Подробнее о глобальном подходе здесь.

Временной ряд

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

Пример временного ряда: биржевой курс.

Пример выборки данных: электронные почты клиентов магазина.

Где применяются временные ряды

Временные ряды используются для аналитики и прогнозирования, когда важно определить, что будет происходить с показателями в ближайший час/день/месяц/год: например, сколько пользователей скачают за день мобильное приложение. Показатели для составления временных рядов могут быть не только техническими, но и экономическими, социальными и даже природными.

Прогнозирование временных рядов

Модели ARMA и ARIMA

Они сыграли фундаментальную роль в обработке сигналов связи во время Второй мировой войны. После их начали использовать в анализе временных рядов в 1970 году.

ARMA (Autoregressive Moving Average) — авторегрессионная модель скользящей средней.

ARIMA (Autoregressive Integrated Moving Average) — авторегрессионная интегрированная модель скользящей средней.

AR → Авторегрессионная модель

В ней значения в будущем определяются как значения из прошлого, умноженные на коэффициенты.

I → Интегрированный

Это относится к различным методам вычисления различий между последовательными наблюдениями для получения стационарного процесса из нестационарного.

MA → Модель скользящей средней

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

Для работы с временными рядами с сезонными компонентами используется SARIMA (интегрированное скользящее среднее сезонной авторегрессии). Это расширение модели ARIMA, добавляющее в нее сезонные условия.

Data Scientist с нуля

Получите востребованные IT-навыки за один год и станьте перспективным профессионалом. Мы поможем в трудоустройстве. Дополнительная скидка 5% по промокоду BLOG.

Prophet

Prophet разработан командой Facebook Core Data Science и представляет собой инструмент с открытым исходным кодом для бизнес-прогнозирования. Модель Prophet основана на трех переменных:

g (t) — тренд. Логистическая функция позволяет моделировать рост с насыщением, когда при увеличении показателя снижается темп его роста.

s (t) — сезонность отвечает за моделирование периодических изменений, связанных с недельной и годовой сезонностью.

h (t) — праздники и события. Учитываются аномальные дни, которые не влияют на сезонность.

ε(t) — ошибка. Содержит информацию, которую модель не учитывает.

У Prophet существует больше инструментов для обработки и сортировки данных по сезонности, чем у SARIMA. Такое преимущество позволяет анализировать временные ряды с различной сезонностью — неделей, месяцем, кварталом или годом.

Прогноз по методу экспоненциального сглаживания

Преимущество этого метода — возможность сделать прогноз на длительный период. Математически экспоненциальное сглаживание выражается так:

a (alfa) — коэффициент сглаживания, который принимает значения от 0 до 1. Он определяет, насколько продолжительность изменит существующие значения в базе данных.

x — текущее значение временного ряда (например, объем продаж).

y — сглаженная величина на текущий период.

t — значение тренда за предыдущий период.

Пример экспоненциального сглаживания:

Голубая линия на графике — это исходные данные, темно-синяя линия представляет экспоненциальное сглаживание временного ряда с коэффициентом сглаживания 0,3, а оранжевая линия использует коэффициент сглаживания 0,05. Чем меньше коэффициент сглаживания, тем более плавным будет временной ряд.

Временные ряды и их характеристики

Предполагается, что временные ряды генерируются регулярно, но на практике это не всегда так. В нерегулярных рядах измерения нельзя провести через одинаковые промежутки времени. Примером нерегулярного временного ряда является пополнение банковской карты.

Типы временных рядов

Помимо регулярности, временные ряды делятся на детерминированные и недетерминированные.

Детерминированный временной ряд — ряд, в котором нет случайных аспектов или показателей: он может быть выражен формулой. Это значит, что мы можем проанализировать, как показатели вели себя в прошлом, и точно прогнозировать их поведение в будущем.

Недетерминированный временной ряд имеет случайный аспект и прогнозирование будущих действий становится сложнее. Природа таких показателей случайна.

Стационарные и нестационарные ряды

На наблюдение за показателями и их систематизацией влияют тенденции и сезонные эффекты. От этих условий зависит сложность моделирования системы прогнозирования. Временные ряды можно разделить по наличию или отсутствию тенденций и сезонных эффектов на стационарные и нестационарные.

В стационарных временных рядах статистические свойства не зависят от времени, поэтому результат легко предсказать. Большинство статистических методов предполагают, что все временные ряды должны быть стационарными. Пример стационарных временных рядов — рождаемость в России. Конечно, она зависит от множества факторов, но ее спад или рост возможно предсказать: у рождаемости нет ярко выраженной сезонности.

В нестационарных временных рядах статистические свойства меняются со временем. Они показывают сезонные эффекты, тренды и другие структуры, которые зависят от временного показателя. Пример — международные перелеты авиакомпаний. Количество пассажиров на тех или иных направлениях меняется в зависимости от сезонности.

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

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

Освойте необходимые навыки и инструменты и пройдите через все этапы работы над аналитическим проектом. Дополнительная скидка 5% по промокоду BLOG.

ГЛАВА 1 Введение

Несколько лет назад, когда я впервые столкнулся с задачей по прогнозированию выручки компании, в которой на тот момент работал, я не знал с чего начать, потому что прежде не имел дела с временными рядами. Как это часто бывает, я обратился к CRAN Task Views, чтобы получить общее представление о том, какие пакеты для R подошли бы для решения моей задачи. Увиденное разнообразие инструментов и большой объем знаний, которые потребовались бы для уверенного пользования этими инструментами, вызвали у меня небольшую панику. С чего начать? Какой пакет выбрать, чтобы потратить минимальное время на его изучение и успешно завершить проект в срок? Какую обзорную статью почитать, чтобы быстро вникнуть в тот или иной метод?

Эта книга — моя скромная попытка помочь тем, кто оказался в похожей ситуации. Анализ временных рядов — обширная тема, по которой есть очень много литературы, и у меня ни в коей мере не было цели написать еще одну теоретическую работу. Вместо этого я делаю упор на решение нескольких стандартных задач и делюсь с читателями многочисленными примерами кода в применении к данным из реального мира. Описанное здесь — это методы и программное обеспечение, которые я добавил в свой личный “набор инструментов” в результате работы над несколькими аналитическими проектами и которые показали свою практическую ценность. Надеюсь, что эти инструменты окажутся полезными и для читателей. Теоретическая часть обсуждаемых методов представлена лишь в том объеме, который необходим для осознанного использования соответствующих пакетов для R. Дополнительные теоретические выкладки можно найти в приведенных в тексте ссылках на ключевые публикации.

Большинство представленных здесь материалов ранее было опубликовано в моем блоге “R: Анализ и визуализация данных”. Не затронутые в блоге, но добавленные в книгу темы включают визуализацию различных свойств временных рядов (гл. 4), прогнозирование с помощью байесовских структурных моделей (гл. 7) и кластерный анализ временных рядов (гл. 10–13).

1.2 Что ожидается от читателя

Книга в основном рассчитана на опытных пользователей языка программирования и системы статистических вычислений R. Поэтому ожидается, что читателю знакомы:

  • основные пакеты из группы tidyverse (в частности, dplyr , ggplot2 , tibble и tidyr );
  • принципы построения предсказательных моделей;
  • такие стандартные методы статистики и машинного обучения, как кусочно-линейная регрессия, обобщенные аддитивные модели, метод главных компонент и кластерный анализ;
  • основы байесовской статистики.

Лекция 10 Прогнозирование временных рядов

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

  • Кабаков Р.И. Анализ и визуализация данных в программе R / пер. с англ. П. Волковой. М.: ДМК Пресс, 2022.
  • Мастицкий С.Э., Шитиков В.К. Статистический анализ и визуализация данных с помощью R. М.: ДМК Пресс, 2022.
  • Уикем X., Гроулмунд Г. Язык R в задачах науки о данных. Импорт, подготовка, обработка, визуализация и моделирование данных / пер. с англ. А.Г. Гузикевича. М.: Вильямс, 2022.

Приведенные в этой книге примеры можно без труда воспроизвести на любом современном компьютере. Для этого лишь потребуются R c версией не ниже 3.6.3 и любая удобная для вас интегрированная среда разработки (например, RStudio). Большинство пакетов для R, используемых в примерах, можно установить стандартным образом из хранилища CRAN с помощью функции install.packages() . В редких случаях, когда тот или иной пакет отсутствует в CRAN, я привожу дополнительные инструкции по его установке. Небольшой скрипт для инсталляции всех нужных пакетов есть в Github–репозитории ranalytics/tsa-r. Используйте, пожалуйста, раздел Issues этого репозитория также для сообщения об обнаруженных в тексте ошибках и неточностях.

1.3 Основные понятия

Временной ряд представляет собой последовательность значений некоторой переменной (или переменных), регистрируемых через определенные промежутки времени (регулярные или нерегулярные). Когда есть только одна наблюдаемая переменная, временной ряд называют одномерным. В случае же с несколькими параллельно наблюдаемыми переменными говорят о многомерном временном ряде. Мы будем рассматривать только одномерные ряды.

Временные ряды можно встретить в самых разных областях — от метеорологии, где ведется учет данных по погодным показателям, до Интернета вещей, где регистрируются сигналы от всевозможных встроенных датчиков и сенсоров. Под анализом временных рядов мы будем понимать процесс применения методов статистики и машинного обучения для выявления закономерностей в структуре временных рядов и предсказания будущего поведения описываемых этими рядами систем. В частности, будут рассмотрены следующие распространенные задачи:

  • прогнозирование, т.е. предсказание будущих значений временного ряда;
  • выявление структурных изменений и аномалий, вызванных в изучаемой системе влиянием внешних или внутренних факторов (например, изменения в экономических показателях, связанные с политическим событиями в стране; всплески уровней продаж, обусловленные рекламными кампаниями; кратковременные неисправности в технических системах, и т.п.);
  • кластеризация, т.е. нахождение групп временных рядов, похожих по своим свойствам.

В общем случае одномерный временной ряд из наблюдений \(y_t\) , учтенных в моменты времени \(t\) , можно разложить на следующие составляющие, или компоненты:

  • тренд ( \(T_t\) ): характеризует долговременную тенденцию в данных (снижение или возрастание). Тренд может быть линейным или нелинейным. В некоторых временных рядах может также наблюдаться изменение направления тренда (например, когда рост сменяется спадом).
  • циклическая компонента ( \(C_t\) ): долговременные циклические колебания, обычно занимающие не менее 2 лет. Как правило, частота таких изменений непостоянна (например, хорошо известен 11-летний цикл солнечной активности, хотя на самом деле длительность этого цикла варьирует).
  • сезонная компонента ( \(S_t\) ): кратковременные периодические изменения, обладающие фиксированной частотой (например, суточные изменения количества солнечного света, падающего на единицу поверхности Земли).
  • нерегулярная компонента ( \(\epsilon_t\) ): эффекты случайных факторов (“шум”).

Хотя функциональная связь между перечисленными компонентами может принимать практически любую форму, обычно рассматривают зависимости следующих двух видов:

  • аддитивная модель: \(y_t = T_t + C_t + S_t + \epsilon_t\) ;
  • мультипликативная модель: \(y_t = T_t \times C_t \times S_t \times \epsilon_t\) .

Часто длина временного ряда оказывается недостаточной для выделения циклической составляющей, в связи с чем \(C_t\) исключают из рассмотрения.

Аддитивную модель применяют к т.н. стационарным временным рядам, в которых среднее значение и дисперсия \(y_t\) примерно постоянны для всех \(t\) . Мультипликативная же модель лучше подходит для описания нестационарных рядов, в которых обычно имеют место выраженный тренд и возрастание дисперсии \(y_t\) во времени.

На рис. 1.1 приведены примеры временных рядов, свойства которых иллюстрируют описанные выше понятия. Дополнительные понятия и термины мы будем вводить по мере необходимости в ходе рассмотрения соответствующих методов анализа.

РИСУНОК 1.1: (А): Месячные продажи новых домов в США демонстрируют заметную годовую сезонность, а также более долговременную цикличность с периодом в 6–10 лет. В этих данных нет выраженного тренда. (B): Количество фьючерных контрактов Департамента казначейства США, проданных на Чикагской фондовой бирже в течение 100 дней в 1981 г. В этом временном ряду отсутствуют сезонные колебания, но имеет место тренд на снижение. (С): Квартальные объемы выработки электроэнергии в Австралии демонстрируют четко выраженные тренд и сезонность. Кроме того, дисперсия данных возрастает во времени, что указывает на мультипликативность породившего их процесса. (D): В дневных изменениях цены акций Google на момент закрытия торгов нет ни тренда, ни сезонности, ни цикличности. Источник: Hyndman and Athanasopoulos (2022)

1.4 Формат данных tsibble

Анализ временных рядов в R часто сопровождается приличной “головной болью”, что связано с необходимостью представления данных в виде объектов таких традиционных классов, как ts , zoo или xts . К сожалению, эти классы плохо подходят для современных наборов данных, которые часто характеризуются нерегулярной регистрацией наблюдений во времени, наличием нескольких переменных разных типов, нескольких группирующих переменных и т.п. Кроме того, традиционные форматы представления временных рядов противоречат принципам организации и хранения “опрятных данных” (“tidy data”) и, как следствие, затрудняют анализ и моделирование с помощью широко используемых сегодня инструментов из группы tidyverse . Для решения этих проблем группа исследователей под руководством проф. Роба Хиндмана (Rob Hyndman) разработала новый формат, реализованный в пакете tsibble (Wang, Cook, and Hyndman 2022) . Именно этот формат мы будем использовать для представления данных в большинстве рассматриваемых ниже примеров. Он характеризуется следующими свойствами:

  • данные хранятся в табличном виде;
  • в таблице должны присутствовать как минимум два столбца — со значениями наблюдаемой во времени количественной переменной и с упорядоченными по возрастанию (т.е. от прошлого к будущему) временными отметками (столбец с временными отметками называется индексирующим — index );
  • кроме того, в таблицу могут входить одна или несколько группирующих переменных ( key ) — значения этих переменных указывают на принадлежность каждого наблюдения к соответствующему временному ряду;
  • любое наблюдение в таблице можно уникально идентифицировать по сочетанию значений индексирующей и группирующих переменных.

Для создания объектов класса tsibble служит функция as_tsibble() , которая имеет следующие аргументы:

  • x — объект с данными, подлежащий преобразованию в объект класса tsibble (это может быть, например, числовой вектор, матрица, таблица с данными ( data.frame или tibble ) и др.).
  • index — переменная с временными отметками (указывается без кавычек). Допускается использование временных отметок на шкале от наносекунд до года.
  • key — одна или несколько группирующих, или ключевых, переменных, которые уникально определяют каждый хранящийся в таблице временной ряд. Названия переменных указываются без кавычек и объединяются с помощью функции конкатенации c() . По умолчанию этот аргумент равен NULL , т.е. предполагается, что группирующих переменных в таблице нет.
  • regular — логический аргумент, который указывает на регулярность учета хранящихся в таблице наблюдений. Значение TRUE (принято по умолчанию) предполагает, что учет выполнялся с одинаковым интервалом (например, каждую минуту, час, день, и т.п.).
  • validate — логический аргумент (по умолчанию равен TRUE ), позволяющий выполнить проверку уникальности каждого наблюдения по сочетанию значений переменных index и key. Если вы уверены, что каждое наблюдение уникально, то такую проверку можно отключить ( FALSE ) — это приведет к более быстрому выполнению команды as_tsibble() в случае с большими наборами данных.
  • .drop — логический аргумент, позволяющий исключить из таблицы “пустые” временные ряды, т.е. такие сочетания значений группирующих переменных, для которых значения x отсутствуют.

Примеры работы с функцией as_tsibble() приведены в следующем разделе.

1.5 Данные, используемые в примерах

Для воспроизведения рассматриваемых в этой книге примеров необходимо скопировать содержимое Github–репозитория ranalytics/tsa-r любым удобным для вас способом и сделать корневую директорию скопированного проекта рабочей директорией R. Используемые в примерах четыре набора данных хранятся в папке data этого проекта. Ниже приведено их краткое описание.

1.5.1 Стоимость 22 криптовалют

Набор данных cryptos содержит собранные с сайта CoinMarketCap значения стоимости 22 криптовалют на момент закрытия торгов. Эти данные охватывают период с 1 января 2022 г. по 6 декабря 2022 г. и имеют очень простую структуру:

Переменная y — это стоимость криптовалюты coin (в долларах США), отмеченная в день ds . Все 22 временных ряда изображены на рис. 1.2.

РИСУНОК 1.2: Динамика стоимости 22 криптовалют. Источник: CoinMarketCap

Заметьте, что стоимость одной из криптовалют ( tether ) на протяжении всего исследованного периода была настолько низковолатильной, что ее временной ряд на рис. 1.2 выглядит почти как сплошная горизонтальная линия.

Воспользуемся функцией as_tibble() для преобразования таблицы cryptos в объект класса tsibble :

Если внимательно присмотреться, то можно увидеть некоторые внешние отличия полученной таблицы от исходной cryptos :

  • R теперь “знает”, что таблица cryptos является объектом класса tsibble с 15510 наблюдениями, учтенными с дневным интервалом (см. комментарий # A tsibble: 15,510 x 3 [1D] ).
  • у таблицы cryptos есть группирующая переменная coin с 22 уровнями (см. # Key: coin [22] ). Все наблюдения каждого временного ряда упорядочены по возрастанию значений индексирующей переменной ds .

Однако это всего лишь внешние различия. Гораздо важнее то, что к данным из таблицы cryptos теперь можно применять методы анализа, специфичные для временных рядов, и делать это обычным для инструментов tidyverse образом. Аналогичные преобразования в формат tsibble будут выполнены нами ниже и для других наборов данных, используемых в примерах из этой книги.

1.5.2 Стоимость биткоина

Набор данных bitcoin содержит собранные с сайта CoinMarketCap значения стоимости биткоина на момент закрытия торгов в период с 1 января 2022 г. по 24 августа 2022 г.

Переменная y — это стоимость биткоина (в долларах США), отмеченная в день ds . Заметьте, что в отличие от рассмотренного выше набора данных cryptos , таблица bitcoin содержит только один временной ряд. Поэтому при преобразовании этой таблицы в формат tsibble аргументу key было присвоено значение NULL — таким образом мы сообщили программе, что в таблице нет группирующих переменных. Динамика стоимости биткоина в рассматриваемый период времени изображена на рис. 1.3.

РИСУНОК 1.3: Динамика стоимости биткоина. Источник: CoinMarketCap

1.5.3 Цена акций трех компаний

Набор данных shares содержит значения цены акций компаний Amazon, Facebook и Google на момент закрытия торгов в период с 1 января 2022 г. по 26 мая 2022 г. Эти данные были собраны с сайта Yahoo Finance и по своей структуре напоминают описанную выше таблицу cryptos :

Переменная price — это цена (в долларах США) акции share , отмеченная в день ds . Обратите внимание на наличие пропущенных значений в переменной price , связанное с прекращением торгов в выходные дни и во время государственных праздников США. Эти пропущенные значения соответствуют многочисленным “пробелам” во временных рядах, изображенных на рис. 1.4.

РИСУНОК 1.4: Динамика цены акций компаний Amazon, Facebook и Google. Источник: Yahoo Finance

1.5.4 Стоимость номеров в трех гостиницах

Набор данных hotels содержит значения суточной стоимости номеров в трех гостиницах за период c 1 ноября 2022 г. по 30 июня 2022 г. Эта таблица является частью гораздо большего набора данных, предоставленного компанией Expedia в рамках одного из Kaggle–соревнований. В таблицу входят три переменные: prop_id (идентификатор гостиницы), date_time (время, когда пользователь увидел цену на соответствующий гостиничный номер в результате онлайн-поиска) и price_usd (цена в долларах США):

Динамика стоимости номеров в рассматриваемых трех гостиницах изображена на рис. 1.5.

РИСУНОК 1.5: Динамика суточной стоимости номеров в трех гостиницах. Источник: Expedia

Рейтинг Форекс брокеров: