Кирилл Браулов
Кирилл Браулов личный блог
07 декабря 2015, 16:13

Распознать тренд

Попробовал строить свое распределение вероятности на основе простенькой модели с трендом. Вычисляю дрейф в последних скольких-то приращениях цены БА, предполагаю, что этот дрейф сохранится до экспирации и получаю наиболее вероятную цену на экспу. Используя эту цену и некоторую сигму, строю нормальное распределение и смотрю, что оказалось точнее: модельное распределение или реальное рыночное (подробнее про подход здесь: Рынок vs модель). Оказалось, что на трендовых участках такая модель существенно точнее, чем рынок. Вот пример для квартала RTS-12.14:
Распознать тренд

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

Но такая идиллическая картинка, конечно, далеко не на всех кварталах. Чаще вот такая ситуация:
Распознать тренд

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

Очевидно, что просто в лоб считать текущую инерцию в приращениях и на ее основе строить текущий тренд — нельзя. И вообще считать, что всегда есть какой-то тренд — нельзя. Например, уважаемый А.Г. заявил в этом видео, что у рынка бывает три состояния: тренд, пила и случайное блуждание. Если в это поверить, то нужно иметь три разные модели для распределения вероятности, в зависимости от того, какое сейчас состояние у рынка. Если тренд, то распределение с матожиданием в сторону тренда. Если пила, то какое-то другое (видимо, с более обрезанными хвостами, чем у рыночного). Если блуждание, то брать только рискнейтральные распределения (матожидание равно текущей цене БА).

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

Наверху график тренда, внизу график АКФ. Видно, что для небольших смещений отрезки исходного ряда почти 100% коррелируют, несмотря на шум. Причем, похожая картина и у нелинейных трендов. Вот несколько примеров: 1/xx^2Sqrt(x)Ln(x).

Чтобы смоделировать контртренд, сгенерировал синус с шумом:
Распознать тренд

Здесь АКФ уже ведет себя по-другому и показывает, что в исходном ряде есть периодичность и движения в противофазе.

Если сгенерировать просто случайное блуждание, то картинка такая:
Распознать тренд

АКФ резко падает с 1 и дальше уже болтается у нуля. Вот еще несколько примеров: 12345. У всех траектории совсем разные, но АКФ ведет себя похоже.

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

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

Глазами-то видно эти три отрезка, но как распознать их программно? Перебирать все возможные комбинации отрезков — нереально долго. Может есть какая-то методика для такой задачи? Буду очень благодарен, если кто подскажет, куда копать.


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

3 Комментария
  • Александр
    07 декабря 2015, 20:05

    Если было бы СБ то по идее должна работать ТС с рандомными входами и Стоп=2*Тейк, но это не так.

    Или вот аномалии на скрине. По Х-размер бара, по У количество баров такого размера. В случае СБ, график должен был быть похож на Гаусовскую кривую, но это не так. (EURUSD D1)

  • Дмитрий Новиков
    08 декабря 2015, 01:50
    Народ пытался через вайвлеты считать. Предварительно на фракталвв разбивая. Если разберешся вот ссылка https://www.lektorium.tv/lecture/14232
  • ch5oh
    14 ноября 2017, 10:32

    Классификация состояния рынка — исключительно интересная тема.

    Жаль, ветка заглохла.

    Видимо, по сути никто ничего сказать не может. =/

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн