Квантовые Финансы

Вычисление Портфелей и Прогнозирование Цен

Квантовый Ловец Тренда

Калькулятор прогноза тренда с фильтрацией шума

Калькулятор Квантовый Ловец Трендов

Исторические данные рыночного актива



Искать тренд у данных:


Цена закрытия
Максимальная цена
Минимальная цена
Среднее цен открытия, закрытия, максимальной и минимальной
Объем

 
 


0%

Оглавление

  1. Инструкция по применению Квантового Ловца Тренда
    1. Исторические данные рыночного актива
      1. Формат MeteTrader-4
      2. Конвертор данных в Формат MT-4
      3. Комбайнер Фреймов
    2. Выбор данных для поиска тренда
  2. Как работает Квантовый Ловец Тренда
    1. Машинное обучение
    2. Поиск компонент тренда
    3. Отличие Квантового Ловца Тренда от нейросети
    4. Что показывает Квантовый Ловец Тренда пользователю
      1. Графики цен и объемов
      2. График анализируемого временного ряда
      3. Гистограмма вкладов первых компонент тренда
      4. Графики компонент, остатков и функций автокорреляции остатков
      5. График суммы первых компонент тренда
      6. График анализируемого временного ряда и его прогноз
      7. Числовые значения прогноза
  3. Как на самом деле меняются биржевые цены
    1. Основное заблуждение
    2. Иерархия компонент тренда
      1. Функция автокорреляции компонент тренда
      2. Функция автокорреляции остатков ценового ряда
      3. Ортогональность компонент тренда
      4. Аналогия с фурье-разложением

1. Инструкция по применению Квантового Ловца Тренда

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

Инструкция очень простая. В окно исторических данных рыночного актива надо вставить данные по прошлым ценам в формате MetaTrader-4 и выбрать кнопочку, у каких данных надо искать тренд.

Если кто-то это не понял, то есть Квантовый Ловец Тренда всё равно не хочет прогнозировать, то придется читать дальше все подробности.

1.1. Исторические данные рыночного актива

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

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

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

Квантовый Ловец Тренда по времени прогнозирует в будущее на горизонт 3.2% от длины данных по времени. То есть для последовательности 32 японских свечей можно сделать прогноз на еще одну будущую свечу. А для 31 свечи сделать прогноз на следующую будущую свечу уже не получится.

Максимальное количество строк, которое калькулятор Квантовый Ловец Тренда возьмет в обработку, это 640 фреймов. Если пользователь вставит, например, 1000 строк, то первые 360 строк калькулятор выбросит и оставит только последние по времени 640 фреймов. Никакого сообщения об ошибке не появится, так эта ситуация не является ошибочной.

Часто трейдеры забывают про текущий последний еще не закрытый фрейм. Если последний фрейм не закрыт, то его надо удалить. Иначе Квантовый Ловец Тренда посчитает, что это уже закрытый фрейм и будет прогнозировать следующий фрейм, вместо прогнозирования текущего фрейма.

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

1.1.1. Формат MeteTrader-4

Исторические данные рыночного актива надо вставлять в калькулятор Квантового Ловца Трендов только в формате классического терминала МетаТрейдер-4 (МТ-4). Этот формат представляет собой строки, где каждая строка представляет собой фрейм (японскую свечу) для выбранного вами таймфрейма. Каждая строка имеет следующий вид:

гггг.мм.дд,ЧЧ:ММ,Open,High,Low,Close,Volume

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

  • гггг - год из 4-х цифр. Например, 2024 или 1995.
  • мм - месяц из 2-х цифр. Например, 01 или 12.
  • дд - день из 2-х цифр. Например, 05 или 28.
  • ЧЧ - часы из 2-х цифр. Например, 00 или 23. Обратите внимание, что 24 часа, это 00 часов следующего дня.
  • ММ - минуты из 2-х цифр. Например, 00 или 59. Обратите внимание, что 60 минут, это 00 минут следующего часа.
  • Open - цена открытия фрейма (японской свечи). Обратите внимание, что дробная часть от десятичной отделяется не запятой, а точкой.
  • High - самая высокая цена на протяжении всего фрейма. Дробная часть от десятичной части отделяется не запятой, а точкой.
  • Low - самая низкая цена на протяжении всего фрейма. Дробная часть от десятичной части тоже отделяется точкой.
  • Close - цена закрытия фрейма. Дробная часть от десятичной части всегда отделяется только точкой.
  • Volume - Объем торгов в этом фрейме. Обычно, это целое число (число сделок). Но бывает и дробное (объем в деньгах). В последнем случае дробная часть от десятичной части тоже отделяется только точкой.

Вот вам пара примеров данных в формате MT-4.
Это пример данных для 1-дневного таймфрейма:

2015.09.09,00:00,1.6599,1.6615,1.6586,1.6609,12765
2015.09.10,00:00,1.6609,1.6643,1.6605,1.6621,13309
2015.09.11,00:00,1.6621,1.6640,1.6602,1.6628,14005
2015.09.14,00:00,1.6611,1.6618,1.6590,1.6597,11333
2015.09.15,00:00,1.6597,1.6603,1.6575,1.6581,11275

А это пример данных для 4-часового таймфрейма:

2022.01.15,00:00,103.27,105.00,102.98,104.75,2007.1
2022.01.15,04:00,104.75,106.87,104.66,106.62,1834.0
2022.01.15,08:00,106.62,107.01,106.41,106.62,1722.9
2022.01.15,12:00,106.62,106.77,101.39,101.43,2245.7
2022.01.15,16:00,101.43,103.23,101.36,103.01,2100.5

Обратите внимание, что время всегда течет вниз от верхних строк к нижним.

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

P.S.
Маленький лайфхак. Коммуникатор называется коммуникатором, а не компьютером, потому что предназначен для коммуникаций, а не для вычислений. Ну, вы поняли... (Не надо мучить себя смартфоном!)

1.1.2. Конвертор данных в Формат MT-4

Что делать, если брокер пользователя не отдает данные в формате MT-4, а отдает их в каком-то своем другом формате?

В этом случае скаченные данные нужно будет сначала конвертировать в формат МетаТрейдер-4. Это делается бесплатно с помощью имеющегося на этом сайте бесплатного Калькулятора конвертирования котировок в МТ-4. Перейдя по ссылке найдете и сам конвертор и инструкцию для него.

1.1.3. Комбайнер Фреймов

Что делать, если вас не устраивают стандартные таймфреймы? Допустим, вы хотите прогнозировать на 2-дневных или 9-часовых таймфреймах.

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

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

1.2. Выбор данных для поиска тренда

Здесь всё очень просто. Пользователь должен выбрать те данные, которые он хочет прогнозировать.


2. Как работает Квантовый Ловец Тренда

2.1. Машинное обучение

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

2.2. Поиск компонент тренда

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

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

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

2.3. Отличие Квантового Ловца Тренда от нейросети

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

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

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

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

Такой подход имеет и свои преимущества и свои недостатки по сравнению с нейросетью "Прогнозирующая Машина" версии 2.

2.4. Что показывает Квантовый Ловец Тренда пользователю

Квантовый Ловец Тренда строит несколько вспомогательных графиков, которые помогают трейдеру контролировать работу Квантового Ловца Тренда. Посмотрим на эти графики на каком-нибудь реальном примере.

2.4.1. Графики цен и объемов

Сначала строятся графики цен и объемов введенных пользователем данных.

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


Японские свечи дневного таймфрейма на правильной шкале времени


Объемы торгов дневного таймфрейма на правильной шкале времени

Так как в выходные дни биржа не работает, то на графиках идут пропуски по 2 дня через каждые 5 торговых дней.

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

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

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

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

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

2.4.2. График анализируемого временного ряда

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


График выбранных для анализа и прогноза данных

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

2.4.3. Гистограмма вкладов первых компонент тренда

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


Вклад в тренд нешумовых компонент

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

2.4.4. Графики компонент, остатков и функций автокорреляции остатков

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


Линейный график первой компоненты тренда

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


График остатков после вычитания первой компоненты тренда

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


Функция автокорреляции остатков после вычитания первой компоненты тренда

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


Линейный график 4-й компоненты тренда

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


График остатков после вычитания первых 4 компонент тренда

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

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


Функция автокорреляции остатков после вычитания первых 4 компонент тренда

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

2.4.5. График суммы первых компонент тренда

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


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

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

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

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

2.4.6. График анализируемого временного ряда и его прогноз

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


График анализируемого ряда и его прогноза

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

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

2.4.7. Числовые значения прогноза

В самом конце идет табличка из чисел с данными прогноза. В ней от 1 до 20 чисел, в зависимости от того, сколько фреймов ввел пользователь (см. п. 1.1).


Таблица с прогнозными будущими данными

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


3. Как на самом деле меняются биржевые цены

Здесь находится небольшое теоретическое введение в природу биржевых цен.

3.1. Основное заблуждение

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

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

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

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

В поведении биржевых цен какого-то актива была бы такая же ситуация, если бы, например, 90% всех объемов сделок с этим активом проводил бы только какой-то один крупный трейдер. А все остальные 10% сделок с этим активом проводили бы, например, 1000 других мелких трейдеров, каждый по 0.01% от общего объема всех сделок.

Вот в такой ситуации можно было бы легко отфильтровать поведение цены, заданное крупным трейдером, от случайного рыночного шума, который генерируется остальными мелкими 1000 трейдерами. В такой идеальной ситуации рыночная цена P(tn) актива в момент времени tn определялась бы, как сумма цены чистого тренда P0(tn) и цены Ps(tn), которую в этот момент времени дает шум:

P(tn) = P0(tn) + Ps(tn)

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

3.2. Иерархия компонент тренда

В реальности формула цены биржевого актива из предыдущего раздела должна быть переписана в следующем виде:


P(tn) = P1(tn) + P2(tn) + P3(tn) + ... + Pm(tn) + Ps(tn)

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

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

Чем же эти компоненты тренда отличаются между собой?

3.2.1. Влияние компонент тренда

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

3.2.2. Функция автокорреляции остатков временного ряда

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

R1(tn) = P(tn) - P1(tn) = P2(tn) + P3(tn) + ... + Pm(tn) + Ps(tn)

R2(tn) = R1(tn) - P2(tn) = P3(tn) + ... + Pm(tn) + Ps(tn)

R3(tn) = R2(tn) - P3(tn) = ... + Pm(tn) + Ps(tn)

Rm(tn) = Rm-1(tn) - Pm(tn) = Ps(tn)

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

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

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

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


Теоретическая функция автокорреляции остатков после вычитания первой компоненты тренда


Теоретическая функция автокорреляции остатков после вычитания 1-й и 2-й компонент тренда


Теоретическая функция автокорреляции остатков после вычитания 1-й, 2-й и 3-й компонент тренда


Теоретическая функция автокорреляции остатков после вычитания всех компонент тренда с 1 до m-1

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


Теоретическая функция автокорреляции остатков после вычитания m первых компонент тренда

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


Поведение функций автокорреляции остатков после вычитания первых компонент тренда

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

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

3.2.3. Ортогональность компонент тренда

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


Скалярное произведение двух разных компонент тренда должно быть равно нулю

Сдесь суммирование идет по всем N фреймам. Индексы i и j, это номера разных компонент тренда. Равенство нулю достигается, когда i ≠ j.

3.2.4. Отличие от фурье-разложениея

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

Например, если это периодическая функция, то для фурье-разложения мы выбираем набор тригонометрических функций (синусы и косинусы). Если это функция с цилиндрической симметрией, то фурье-разложение делаем по набору функций Бесселя. Если это функция со сферической симметрией, то делаем её фурье-разложение по присоединенным полиномам Лежандра. И т.д. Есть много разных наборов ортонормированных функций (полиномы Чебышева, Лагерра, Эрмита и т.д.), которые подходят для фурье-разложения в той или иной предметной области.

С дискретными временными рядами длины N всё то же самое. Любое фурье-разложение такого дискретного ряда, это разложение по уже заранее известному базису.

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

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

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

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

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

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

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

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



Автор:





Скачать книгу
"Диверсификация инвестиционного портфеля.
Теория
Марковица-Шарпа"