Финансовый Анализ и
Финансовый Менеджмент

Автокорреляция синуса с шумом


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

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

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

Отсутствие шума

Рассмотрение проведем на примере функции y(x)=sin(x). Возьмем выборку значений этой функции, например, в равноотстоящих друг от друга точках x=0, 0.025, 0.050, 0.075, 0.100, 0.125, ..., 24.975. Допустим, мы не знаем, откуда взялись эти данные. Например, это могут быть результаты каких-то измерений во времени, или это изменение биржевой цены какого-то рыночного актива с течением времени. То есть, это просто какой-то временной ряд.


Функция синус

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

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

Почему именно 250 точек? Потому что это количество точек выборки соответствует одному периоду синуса.

Теоретическая автокорреляционная функция синуса очень легко считается в аналитическом виде.


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

Разумеется, мы получим эмпирическую автокорреляционную функцию точно такую же, как и теоретическую автокорреляционную функцию. То есть автокорреляционная функция везде будет R(t)=cos(t).


Функция автокорреляции функции синус

Видно, что функция автокорреляции синуса резко отличается от функции автокорреляции линейной функции. В линейном случае R(t)=1.

Это связано с тем, что любой участок линейной функции всегда коррелирует с любым участком той же длины этой же функции. А в случае синуса, это уже не так. Любой участок функции синуса коррелирует только с участком такой же длины, если начало этих участков отстоят друг от друга на расстояние кратное периоду синуса. Только в этом случае синус на этих участках будет одновременно возрастать или одновременно убывать или одновременно восходящий тренд менять на нисходящий и т.д. Поэтому функция автокорреляции становится равной единице в точках t=0, 2π, 4π, ...

В точках t=π, 3π, 5π, ..., функция автокорреляции принимает значения R=-1. Это связано с тем, что участки синуса, начала которых отстоят друг от друга на эти значения, антикоррелируют друг с другом. Восходящий тренд одного участка соответствует точно такому же нисходящему тренду другого участка.

В точках t=π/2, 3π/2, 5π/2, ..., функция автокорреляции принимает значения R=0. Участки синуса, начала которых отстоят друг от друга на эти расстояния, не коррелируют друг с другом. Например, на одном участке синус максимально быстро растет, а на другом участке синус меняет рост на убывание или меняет убывание на рост.

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

Например, если это цена какого-то биржевого актива, то мы в точке x=24.975 купим этот актив. Далее, подождав примерно до времени x=24.975, наши индикаторы дружно покажут нам, что восходящий тренд должен смениться на нисходящий. То есть нам нужно продавать этот актив. И так далее. Индикаторы технического анализа будут правильно показывать точки смены трендов.

Здесь и везде далее будем рассматривать процесс (временной ряд) начиная с точки x=0 и при x≥0. Поэтому и функция автокорреляции будет определяться для x≥0.

Добавление шума с амплитудой 0.5

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


Функция y(x)=sin(x) с шумом амплитудой 0.5

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

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

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


Функция автокорреляции функции y(x)=sin(x) с шумом амплитудой 0.5

В точке x=0 функция автокорреляции всегда равна единице R(0)=1. Затем она резко падает к примерному значению R0=0.85. И потом совершает колебания по закону косинуса с этой амплитудой. Но на эти колебания автокорреляционной функции наложен случайный шум.

Добавление шума с амплитудой 1

Теперь добавим к линейной функции стационарный равнораспределенный белый шум в интервале от -1 до +1.


Функция y(x)=sin(x) с шумом амплитудой 1

Эффект непредсказуемости поведения процесса усилился. Теперь предсказуемость процесса исчезает уже на интервалах Δx менее 100. Но на более длинных интервалах всё ещё просматривается хороший предсказуемый тренд.

Также посчитаем эмпирическую автокорреляционную функцию для данного случая для скользящего окна размером 250 точек.


Функция автокорреляции функции y(x)=sin(x) с шумом амплитудой 1

После R(0)=1, функция автокорреляции резко падает к примерному значению R0=0.60. И потом совершает колебания по закону косинуса с этой амплитудой. Но, как видно на графике, на эти колебания автокорреляционной функции наложен ещё некоторый случайный шум.

Добавление шума с амплитудой 2

Теперь всё то же самое, но амплитуда шума в интервале от -2 до +2.


Функция y(x)=sin(x) с шумом амплитудой 2

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

Например, входите в рынок продажей на цене около +3, а ордер TakeProfit устанавливаем ровно на +2. Цена гарантировано пересечет эту линию в любом случае за время равное примерно четверти периода колебаний синуса. Ордер StopLoss ставите где-нибудь выше уровня +3.

А вот входить в рынок в районе нуля уже рискованно. Есть ненулевая вероятность, что цена может длительное время не зацепить ордер TakeProfit. Например, купили на нулевой цене, а TakeProfit поставили на уровне +1. Есть ненулевая вероятность, что цена будет несколько периодов болтаться в пределах от -3 до +1.

Автокорреляцию считаем тоже для скользящего окна размером 250 точек.


Функция автокорреляции функции y(x)=sin(x) с шумом амплитудой 2

После R(0)=1, функция автокорреляции резко падает к примерному значению R0=0.30 и далее идут колебания по закону косинуса с примерно этой амплитудой и со случайным шумом.

Добавление шума с амплитудой 4

Ещё с амплитудой шума в интервале от -4 до +4.


Функция y(x)=sin(x) с шумом амплитудой 4

Автокорреляцию считаем также для скользящего окна размером 250 точек.


Функция автокорреляции функции y(x)=sin(x) с шумом амплитудой 4

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

Добавление шума с амплитудой 8

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


Функция y(x)=sin(x) с шумом амплитудой 8

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

Попытка заработать на этом боковике с помощью свингования превращается в игру орлянку, если ордера StopLoss выставляются в пределах от -7 до +7.

Автокорреляцию считаем также для скользящего окна размером 250 точек.


Функция автокорреляции функции y(x)=sin(x) с шумом амплитудой 8

Функция автокорреляции падает с единицы практически к нулевому среднему значению R0=0. Колебания по закону косинуса уже визуально не видны.

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

В пределе мы получаем теоретическую функцию автокорреляции с R(0)=1 и R(t)=0 для любого t>0.


Функция автокорреляции простого шума