Блог им. elogunov

О разделении суммы средневозвратного процесса и случайного блуждания

Введение

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

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

1) Несколько видов случайных процессов:
ABM: арифметическое Броуновское движение без сноса, на котором невозможно заработать;
OU: процесс Орнштейна-Уленбека, являющийся средневозвратным, и на котором можно заработать;
Independent.ABM+OU: сумму арифметического Броуновского движения и процесса Орнштейна-Уленбека с некоррелированными инновациями, которое можно рассматривать как модель цены для построения контр-трендовой стратегии;
Correlated.ABM+OU: сумму арифметического Броуновского движения и процесса Орнштейна-Уленбека с коррелированными инновациями, которая обладает более интересными свойствами;
2) Структурные функции вышеуказанных случайных процессов, теоретические (за исключением случая Correlated.ABM+OU) и эмпирические (во всех случаях);
3) Численный способ оценивания параметров Independent.ABM+OU на основе эмпирической структурной функции, а также немного рассуждений про способы оценивания параметров для случая Correlated.ABM+OU;
4) Использование фильтра Калмана для оценивания каждой из компонент, входящих в процессы Independent.ABM+OU и Correlated.ABM+OU.

В конце статьи вы найдёте ссылку на код на языках R и C++, который использовался для выполнения численных экспериментов.

И, разумеется, в статье будет куча формул. Ещё не поздно закрыть вкладку! :)

Самый тупой в мире маг, выпуск 224

Арифметическое Броуновское движение, процесс Орнштейна-Уленбека и их структурные функции

Арифметическое Броуновское движение (ABM) описывается стохастическим дифференциальным уравнением (СДУ) вида О разделении суммы средневозвратного процесса и случайного блуждания, где О разделении суммы средневозвратного процесса и случайного блуждания — снос, О разделении суммы средневозвратного процесса и случайного блуждания — волатильность, а О разделении суммы средневозвратного процесса и случайного блуждания — дифференциал стандартного Винеровского процесса. В рамках этой статьи я буду рассматривать лишь случай О разделении суммы средневозвратного процесса и случайного блуждания, т.е. арифметическое Броуновское движение вида О разделении суммы средневозвратного процесса и случайного блуждания. Решение этого СДУ имеет вид О разделении суммы средневозвратного процесса и случайного блуждания. Главное, что нужно знать об этом процессе — что на нём не существует прибыльных торговых стратегий.
О разделении суммы средневозвратного процесса и случайного блуждания

Процесс Орнштейна-Уленбека (OU) описывается СДУ вида О разделении суммы средневозвратного процесса и случайного блуждания, где О разделении суммы средневозвратного процесса и случайного блуждания — среднее, к которому возвращается процесс, О разделении суммы средневозвратного процесса и случайного блуждания — скорость возврата процесса к среднему (чем больше — тем быстрее; нулевое значение превращает процесс Орнштейна-Уленбека в арифметическое Броуновское движение), О разделении суммы средневозвратного процесса и случайного блуждания — волатильность. Решение этого СДУ имеет вид О разделении суммы средневозвратного процесса и случайного блуждания.
О разделении суммы средневозвратного процесса и случайного блуждания

Ниже представлен код для генерации траекторий процессов ABM и OU:
О разделении суммы средневозвратного процесса и случайного блуждания

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

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

Сумма арифметического Броуновского движения и процесса Орнштейна-Уленбека с некоррелированными приращениями (Independent.ABM+OU)

Рассмотрим случайный процесс Independent.ABM+OU, являющийся суммой арифметического Броуновского движения и процесса Орнштейна-Уленбека, и характеризующегося набором параметров О разделении суммы средневозвратного процесса и случайного блуждания — волатильностями ABM и OU частей, а также скоростью возврата OU части к среднему (которое равно нулю). Его динамика описывается системой СДУ вида
О разделении суммы средневозвратного процесса и случайного блуждания;
О разделении суммы средневозвратного процесса и случайного блуждания;
О разделении суммы средневозвратного процесса и случайного блуждания, причём
О разделении суммы средневозвратного процесса и случайного блуждания — Винеровские процессы, входящие в ABM и OU части, независимы.

Численное моделирование процесса можно выполнять моделированием входящих в него компонент с последующим их сложением.

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

На предыдущем графике:
— красными звездочками изображена эмпирическая структурная функция некоторой реализации процесса Independent.ABM+OU;
— чёрной линией изображена теоретическая структурная функция вида О разделении суммы средневозвратного процесса и случайного блуждания, с теми же параметрами, которые использовались при генерации реализации случайного процесса;
— зелёной и синей линиями изображены теоретические структурные функции компонент ABM и OU, соответственно.

Построим процедуру численного оценивания параметров процесса Independent.ABM+OU путём подгонки его теоретической структурной функции к эмпирической структурной функции некоторого процесса. В качестве критерия оптимизации будем использовать сумму квадратов ошибок.
Одним из нюансов, которые нужно учесть, является превращение процесса OU в процесс ABM при О разделении суммы средневозвратного процесса и случайного блуждания равном нулю. В этом случае нужно чуть иначе считать теоретическую структурную функцию из-за возникающего деления на ноль. Кроме того, если в результате оптимизации получилось оптимальное значение О разделении суммы средневозвратного процесса и случайного блуждания — перенесём всю волатильность в процесс ABM, воспользовавшись правилом сложения дисперсий. Отделение арифметического Броуновского движения от процесса Орнштейна-Уленбека в этом случае будет невозможным.

О разделении суммы средневозвратного процесса и случайного блуждания

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

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

Использование фильтра Калмана для разделения суммы арифметического Броуновского движения и процесса Орнштейна-Уленбека с некоррелированными приращениями (Independent.ABM+OU) на компоненты

Для дальнейшей работы нам потребуется фильтр Калмана. В репозитории CRAN представлено множество его реализаций: FKF, KFAS, KFKSDS, miscFuncs, RAHRS, dlm, не считая встроенных (?stats::KalmanLike). Пользоваться мы ими, конечно же, не будем.

В иллюстративных целях подойдёт примитивная и минимально функциональная реализация (только шаги predict & correct, без оценивания параметров при помощи MLE):
О разделении суммы средневозвратного процесса и случайного блуждания
О разделении суммы средневозвратного процесса и случайного блуждания

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

Чтобы построить фильтр Калмана, способный разделять компоненты процесса Independent.ABM+OU, требуется задать матрицы О разделении суммы средневозвратного процесса и случайного блужданияО разделении суммы средневозвратного процесса и случайного блужданияО разделении суммы средневозвратного процесса и случайного блужданияО разделении суммы средневозвратного процесса и случайного блуждания. Они легко вычисляются из ранее оцененных параметров процесса О разделении суммы средневозвратного процесса и случайного блуждания:
О разделении суммы средневозвратного процесса и случайного блуждания
Диагональ матрицы перехода состояния О разделении суммы средневозвратного процесса и случайного блуждания и матрицы ковариации шума состояния О разделении суммы средневозвратного процесса и случайного блуждания фактически представляют собой части функций, которые использовались для численного моделирования процессов ABM (Sim.ABM(…)) и OU (Sim.OU(…)). Матрица преобразования состояния в наблюдаемые переменные состоит из двух единиц, тем самым получаем, что наблюдаемый процесс является суммой процессов ABM и OU, являющихся компонентами вектора состояний.

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

Ниже представлен график реализации процесса Independent.ABM+OU (чёрный), оценки ABM компоненты фильтром Калмана (красный) и истинного значения ABM компоненты (зелёный). На нём видно… что ничего не видно.
О разделении суммы средневозвратного процесса и случайного блуждания

Ниже представлен график оценки OU компоненты фильтром Калмана (красный) и истинного значения OU компоненты (зелёный).
О разделении суммы средневозвратного процесса и случайного блуждания

Построим scatter plot на основе данных с предыдущего графика:
О разделении суммы средневозвратного процесса и случайного блуждания
На представленном графике видно, что между истинным значением средневозвратного процесса OU и оценкой, полученной при помощи фильтра Калмана, имеется существенная корреляция. Разработанную методику можно попробовать применить, чтобы разложить аналогичным образом логарифм цены некоторого инструмента (портфеля инструментов).

Сумма арифметического Броуновского движения и процесса Орнштейна-Уленбека с коррелированными приращениями (Correlated.ABM+OU)

Пусть теперь Винеровские процессы, входящие в О разделении суммы средневозвратного процесса и случайного блуждания и О разделении суммы средневозвратного процесса и случайного блуждания, будут коррелированы. Генерировать траектории ABM и OU компонент по-отдельности теперь не получится. Как ранее было сказано, при О разделении суммы средневозвратного процесса и случайного блуждания равном нулю, процесс OU превращается в процесс ABM. Тогда для моделирования процесса Correlated.ABM+OU можно использовать многомерный процесс Орнштейна-Уленбека (MvOU): О разделении суммы средневозвратного процесса и случайного блуждания, где:
О разделении суммы средневозвратного процесса и случайного блуждания — вещественная матрица, отвечающая за скорость возврата к среднему;
О разделении суммы средневозвратного процесса и случайного блуждания — вектор средних, к которым происходит возврат;
О разделении суммы средневозвратного процесса и случайного блуждания — дифференциал многомерного стандартного Винеровского процесса;
О разделении суммы средневозвратного процесса и случайного блуждания — вещественная матрица, такая что О разделении суммы средневозвратного процесса и случайного блуждания, где О разделении суммы средневозвратного процесса и случайного блуждания — матрица ковариаций (мгновенных).

Для генерации такого процесса нам потребуются условные матожидание и ковариация многомерного нормального распределения, из которого будем брать приращения для получения значения процесса в момент О разделении суммы средневозвратного процесса и случайного блуждания исходя из известного значения в момент О разделении суммы средневозвратного процесса и случайного блуждания. Расчёт данных параметров был реализован на C++, т.к. пакет RcppArmadillo предоставляет удобную и быстродействующую библиотеку матричной алгебры:

(файл MvOU.cpp)
О разделении суммы средневозвратного процесса и случайного блуждания

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

Тогда моделирование многомерного процесса Орнштейна-Уленбека (MvOU) и процесса, являющегося суммой коррелированных арифметического Броуновского движения и одномерного процесса Орнштейна-Уленбека (Correlated.ABM+OU), как частного случая MvOU, выполняется следующим образом:
О разделении суммы средневозвратного процесса и случайного блуждания

Ниже представлен график реализаций процесса Correlated.ABM+OU для значений корреляции между инновациями компонент, равных 0 (чёрная), +0.9 (красная) и -0.9 (зелёная):
О разделении суммы средневозвратного процесса и случайного блуждания

Видно, что при положительной корреляции за шоками следуют более сильные откаты (процесс становится более антиперсистентным, чем Independent.ABM+OU), а при отрицательной — влияние шоков сглаживается во времени (процесс становится более персистентным, чем Independent.ABM+OU).

Построим эмпирические структурные функции этих реализаций процесса Correlated.ABM+OU, и сравним их с теоретической структурной функцией процесса Independent.ABM+OU, а также теоретическими структурными функциями его компонент:
О разделении суммы средневозвратного процесса и случайного блуждания

Возникает подозрение, что на основе анализа эмпирической структурной функции процесс Correlated.ABM+OU легко спутать с обобщённым Броуновским движением (СДУ: О разделении суммы средневозвратного процесса и случайного блуждания; теоретическая структурная функция: О разделении суммы средневозвратного процесса и случайного блуждания, где О разделении суммы средневозвратного процесса и случайного блуждания — показатель Хёрста). Попробуем подогнать теоретическую структурную функцию обобщённого Броуновского движения (GenBM) к эмпирическим структурным функциям реализаций Correlated.ABM+OU:
О разделении суммы средневозвратного процесса и случайного блуждания
О разделении суммы средневозвратного процесса и случайного блуждания

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

Построим зависимость показателя Хёрста, которому хорошо соответствуют эмпирические структурные функции процесса Correlated.ABM+OU, от корреляции между инновациями компонент процесса:
О разделении суммы средневозвратного процесса и случайного блуждания

Что касается оценивания набора параметров О разделении суммы средневозвратного процесса и случайного блуждания процесса Correlated.ABM+OU, есть такие варианты:
1) Аналитически вычислить структурную функцию многомерного процесса Орнштейна-Уленбека и подогнать её по параметрам под эмпирическую;
2) Составить модель для фильтра Калмана и использовать на ней метод максимального правдоподобия;
3) Численно оптимизировать по параметрам, генерируя для каждого из проверяемых набора параметров реализацию процесса и вычисляя его эмпирическую структурную функцию; в качестве критерия оптимизации использовать сумму квадратов разностей между эмпирической структурной функцией целевого процесса и эмпирической структурной функцией процесса, смоделированного на основе текущих параметров.

Использование фильтра Калмана для разделения суммы арифметического Броуновского движения и процесса Орнштейна-Уленбека с коррелированными приращениями (Correlated.ABM+OU) на компоненты

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

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

Ниже представлен график реализации процесса Correlated.ABM+OU (чёрный), оценки ABM компоненты фильтром Калмана (красный) и истинного значения ABM компоненты (зелёный). И опять на нём ничего не видно.
О разделении суммы средневозвратного процесса и случайного блуждания

Ниже представлен график оценки OU компоненты фильтром Калмана (красный) и истинного значения OU компоненты (зелёный).
О разделении суммы средневозвратного процесса и случайного блуждания

Построим scatter plot на основе данных с предыдущего графика:
О разделении суммы средневозвратного процесса и случайного блуждания

Заложенная в фильтр Калмана модель процесса вновь позволяет отделить средневозвратный процесс (OU) от арифметического Броуновского движения (ABM).

Что дальше

О разделении суммы средневозвратного процесса и случайного блуждания
1. Попробовать применить метод разделения Independent.ABM+OU на компоненты к котировкам отдельных инструментов или линейных комбинаций (портфелей) инструментов;
2. Доделать механизм оценивания параметров для процесса Correlated.ABM+OU;
3. Посмотреть на модели с негауссовыми инновациями или модели с более сложной динамикой; использовать UKF/EKF/PF для оценивания компонент процесса;
4. Бросить всё и пойти пить пиво;
5. ???
6. Profit!

Приложения

Это раз
Это два
★31
Решил перед сном еще раз прочитать =)
avatar

Андрей К

Евгений, а зачем вам структурная функция?
avatar

Kot_Begemot

Kot_Begemot, В данном случае — из неё было удобно параметры процесса вытаскивать.
avatar

Eugene Logunov

Eugene Logunov, ясно. Я на нашем рынке занимался чем-то подобным и достаточно успешно. У меня, правда, синусойд под странным именами не было (Орнштейна-Уленбека), были шумы только. 

Завтра, когда голова разгрузится ещё раз посмотрю.


avatar

Kot_Begemot

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

Cristopher Robin

Cristopher Robin, 
А зачем вы из одинарного стохастического процесса делаете двойной?
На одной компоненте можно заработать, на другой — нет. Отделяем мух от котлет, так сказать.
Проще уже было бы разложить на случайное блуждание и синусоиду, тем более синусоиду торговать куда приятнее чем ОУ.
С трудом верится в наличие синусоидальных колебаний в цене. Частоты, амплитуды — всё плывёт, имхо.
Но самый главный вопрос, как исключить влияние биржевых сборов на вероятности, которые к тому же бывают асиметричные?
Для предложенных случайных процессов наверняка можно построить оптимальные стратегии торговли либо аналитически (попахивает HJB и задачами оптимального останова), либо численно. Соответственно, должна быть возможность и risk/reward понять, и сколько деньжищ зарыто (отобьются ли комиссии) в отделяемом средневозвратном процессе.
avatar

Eugene Logunov

Eugene Logunov, проквантуйте рынок не по времени, а по количеству сделок или по объему, много нового может обнаружится.
avatar

Cristopher Robin

Cristopher Robin, 
А зачем вы из одинарного стохастического процесса делаете двойной
есть подозрение, что это попытка оценки качества выделения заранее известного минревершена (OU) на фоне «остального»
avatar

flextrader

flextrader, Такой цели точно не преследуется.
avatar

Eugene Logunov

Eugene Logunov, я имел ввиду «годность ФК» в качестве фильтра OU с разной «интенсивности(ью)».  в идеале -выделять те, что с большой устойчивой лямбдой. показалось Ваш ответ
На одной компоненте можно заработать, на другой — нет. Отделяем мух от котлет, так сказать.
о том же.
avatar

flextrader

капец как многа букав,  пока вспоминаю про «наблюдателей» (первая ассоциация на Калмана). вопрос: кто плагиатор Васичек или OU?
avatar

flextrader

flextrader,
вопрос: кто плагиатор Васичек или OU?
Чтоб я знал :)
avatar

Eugene Logunov

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

KNK

KNK, 
Афтар, вейвлеты забыл, в порядке эксперимента.
В данном случае потребности в них нет. Интерес в этой задаче представляют именно online алгоритмы (оптимальная фильтрация / байесовские методы).
А вообще в питоне есть пакет позволяющий раскладывать данные на тренд, сезонность, шум и тд.
Если речь об аддитивных и мультипликативных моделях тренда и сезонности — то это бесполезная игрушка.
avatar

Eugene Logunov

Eugene Logunov, речь о использовании очищенного сигнала для прогнозирования
avatar

KNK

Дилетантский вопрос: когда такое применяется, при скоростной торговле или скорость не важна? Если при первом, хватает ли мощностей, чтобы это всё успевать пересчитывать? 
avatar

Dmitryy

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

Если говорить про метод калибровки структурной функции для случая Independent.ABM+OU — его часто выполнять не надо. Фильтр Калмана такого размера тоже никакой вычислительной сложности не представляет. Там интеграл один нехороший есть, из-за которого весь скрипт исполняется неторопливо. Но для него есть аналитическое решение.

Для случая Correlated.ABM+OU — самые большие тормоза будут при калибровке параметров.
avatar

Eugene Logunov

Тут есть одна закавыка

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

С уважением

P.S. В моих текущих моделях рынок описывается как решение нелинейного стохастического дифура. Мне удалось найти 2 семейства частных решений, но до общего — пока как до коммунизма. И добавление к частным решениям стохастической компоненты ничего не дает (((
avatar

Мальчик Buybuy

Мальчик Buybuy, Очевидных нюансов ещё штуки 4 как минимум (негауссовы доходности; нужно в логарифмах цен работать; волатильность непостоянна; параметры OU могут плыть).

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

Eugene Logunov

Eugene Logunov, и что?

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

С уважением
Мальчик Buybuy, 
Правда есть много идей для описания рыночных цен нелинейными стохастическими дифурами?
Достаточно нелинейный? :)
dS_m=sigma_1*dW_1;
dS_s/S_s=lambda*(mu-S_s)*dt+sigma_2*dW_2;
dS=sigma_3*(S-S_m/sqrt(S_s))*(S_m*sqrt(S_s)-S)*dW_3;
avatar

Eugene Logunov

Eugene Logunov, да

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

С уважением
Хорошая статья. Но. Есть некоторые моменты. В 1959 году было введено понятие «Геометрического броуновского движения» оно же «экономическое». Соответственно все логарифмы и экспоненты потерялись. Арифметическое не катит. У вас цена будет ниже нуля опускаться.
Второй момент, он же второй момент распределения «сигма» не константа. И ее надо отдельно моделировать. 
Дали бы ссылку на оригинал, можно было бы подробнее посмотреть.
Дмитрий Новиков, Логарифм и вола очевиднейшим образом учитываются. 
Дали бы ссылку на оригинал, можно было бы подробнее посмотреть.
Эта статья и есть самый настоящий оригинал. Если кто-то до этого тоже додумался — это только потому, что идея очевидная.
avatar

Eugene Logunov

Eugene Logunov, Не учитываются.  У вас АБД, а надо Геометрическое. В решении первого дифура потеряли экспоненту.
Вообще цена моделируется через ГБД, а волатильность Уленбеком. Потому что Уленбек это логистическая формула. И волатильность ограничена ресурсом, объемом денег находящимся на рынке за время Т. И если вы хотите выделить Уленбека (потому что он такой синусоидальный), то просто выделите волатильность. 
Сами же выше написали, что надо в логарифмах цен работать и волу менять.
Дмитрий Новиков,
Сами же выше написали, что надо в логарифмах цен работать и волу менять.
Эти эффекты учитываются без всяких изменений в модель. Иногда вместо того, чтобы менять модель, надо поменять данные.

0. Применяем оператор очевидности
1. Разобрали цену на returns (p[t]/p[t-1]-1).
2. Отнормировали по скользящей волатильности.
3. Пересобрали цену из отнормированных returns.
4. Взяли логарифм, скомпенсировали vol drag.
5. Скормили модели, которая предназначена для ABM.
Вообще цена моделируется через ГБД, а волатильность Уленбеком. Потому что Уленбек это логистическая формула. И волатильность ограничена ресурсом, объемом денег находящимся на рынке за время Т. И если вы хотите выделить Уленбека (потому что он такой синусоидальный), то просто выделите волатильность.
Поверьте, я ОТЛИЧНО знаю, что делаю. OU в данной модели не имеет к волатильности никакого отношения. Потому что идея состоит не в том, чтобы смоделировать цену (A/G)BM и волу OU, а цену и только цену суммой ABM+OU.
avatar

Eugene Logunov

Eugene Logunov, а зачем данные менять?

Стохастический дифур для ГБД тоже линейный.
Ну выкладки чуть-чуть изменятся.

С уважением
Мальчик Buybuy, Ну, только если руки чешутся лемму Ито поюзать. Лично я необходимости не вижу.
avatar

Eugene Logunov

Eugene Logunov, Если это в программном коде? Где решение СДУ? {\displaystyle S_{t}=S_{0}\exp \left(\left(\mu -{\frac {\sigma ^{2}}{2}}\right)t+\sigma W_{t}\right),}в вашем случае мю 0.

Дмитрий Новиков, да не надо экспоненты

Для ГБД стохастический дифур имеет вид

dS=mu*S*dt+sigmа*S*dW

Он другой, но тоже линейный
Так что вычисления автора не сильно поменяются — уже написал выше

С уважением
Мальчик Buybuy, Ну да. Цена просто в минус уйдет и за покупку акции вам будут доплачивать.:)
Дмитрий Новиков, не уйдет

Или в другом виде:

dS/S=mu*dt+sigma*dW (это АБД)

Так что ln(S) (АБД) может уйти в минус, S (ГБД) — никогда.

Вставка формулы для ГБД в рассуждения автора ничего не изменит — просто поменяются коэф-т при S и свободная часть.

С уважением
Дмитрий Новиков,  Если ЛОГАРИФМ цены уйдет в минус — за акции никто ничего доплачивать не будет. Потому что цена будет положительной.

Вы хотите видеть цена~новая_модель, новая_модель=exp(модель_из_статьи), но я утверждаю, что можно (а также, нужно и проще) сделать наоборот: log(цена)~модель_из_статьи.

Перечитайте ещё раз внимательно те 5 шагов, что я написал выше. Смысла продолжать с вами спорить дальше я не вижу.
avatar

Eugene Logunov

Eugene Logunov, Ну и еще раз. Улинбек описывает процессы с ограничением отклонения и возврату к среднему. И это не цена. Не надо это с ценой смешивать. Но через Улинбека можно описать объемы оборотных средств, например. Есть средний объем и все вокруг него крутится. А чем больше объем, тем сильнее цена может ходить и.тд 
По сильнее Фауста Гётте будет. И какие выводы? На рынке нельзя системно заработать?
avatar

GoodBargains

GoodBargains, 
На рынке нельзя системно заработать?
Можно. Но доказательство или опровержение этого как бы не является предметом этой статьи.
avatar

Eugene Logunov

Eugene Logunov, несомненное доказательство — результаты торговли на ЛЧИ автора поста, на который ссылаетесь, поинтересуйтесь.
В их свете написанное здесь смахивает если не на попытку опровержения, то уж точно на доказательство известных слов В. И. Ульянова в адрес алгоритмистов: «страшно далеки они от народа». Но это была шутка, конечно.

старый трейдер, квантовая механика или ОТО тоже «страшно далеки от народа». Но пользу этому самому «народу» приносят.
avatar

ch5oh

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

ch5oh

ch5oh, упомянутое справляется с неживыми объектами, МКЭ добавил для полноты охвата. Но в моделировании живого пока выше некоторых насекомых не получилось подняться, насколько известно. И пока не очень понятно, доберутся до млекопитающих вообще, не говоря уж о высших. Отсюда — юмор, казалось, что понятно из контекста.
Убийство времени…
avatar

SergP

Этот год на СЛ однозначно назовем годом мат подходов =)
avatar

Андрей К

Андрей К, Скорее каминг-аутов :D
avatar

Eugene Logunov

Eugene Logunov, ну да, это тоже подходит
avatar

Андрей К

Не думаю, что приращения цен обладают стационарностью среднего и дисперсии. 
avatar

А. Г.

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

А. Г.

А. Г., как вы думаете, объемы торговли можно рассматривать с этой точки зрения
Дмитрий Новиков,  объем торговли зависит от среднего времени в позиции и объемов торговли в инструменте за тот же период. Он должен быть не больше 10% от последней величины. А уж какая модель к какому среднему времени в позиции приводит — это вопрос тестов. 
avatar

А. Г.

А. Г., Объем торговли на бирже. Они имеют среднее и тяготение к этому среднему. А так же дисперсию?
Дмитрий Новиков,  да если разделить дни на 4 кластера (маленькие плюс и минус и большие плюс и минус) по изменению цены, то в каждом кластере дисперсии относительно невелики. И я бы ориентировался на минимальное среднее объемов из этих 4 кластеров. Впрочем, если среднее в кластере больших минусов в 5 и более раз меньше среднего в кластере больших плюсов, то я такие инструменты вообще не торгую. 
avatar

А. Г.

А. Г., Логично. Но, к сожалению, объемы не торгуются. А вот как объемы торгов на бирже влияют на движении цены. Можем ли мы сказать, что чем больше объем, тем болше, обычно, меняется цена?
Дмитрий Новиков,  предикативной составляющей в объёмах дневок я не нашел,  а одномоментная положительная корреляция между приращениями логарифмов цен и объёмами на фонде действительно есть.
avatar

А. Г.

А. Г., О. Отсюда я делаю выводы. Формула Орнштейна Уленбека, это логистическая формула описывающая процессы изменения объема (количества денег). И через корреляцию, волатильность. Поэтому нельзя складывать, в решении задачи, коров и молоко. Но, можно умножать. Тогда общий процесс ценообразования = ГБД, где сигма равна ОУ. И из этого процесса очень просто выделяется и ГБД и ОУ и их параметры. Как мне кажется.
Дмитрий Новиков, 
Тогда общий процесс ценообразования = ГБД, где сигма равна ОУ.
Вы уверены, что такой процесс не будет мартингалом, т.е. будет допускать возможность заработать на нём? Если нет — то тратить время на такое разложение смысла нет.
И из этого процесса очень просто выделяется и ГБД и ОУ и их параметры.
Не проще.
avatar

Eugene Logunov

Eugene Logunov, Есть такой способ, торговля волатильностью. Где волатильность как медленный параметр выделяется. ОУ очень даже подходит для моделирования. Там все, и нижняя граница и средние и максимальный размах и скорость возврата к среднему. 
Что касается заработать. Тут или на услуге, получения комиссий, спредов, создание ликвидности. Либо на продаже риска. Так как мы не брокеры и не ММ, то мы торгуем на свой страх и риск. Наша задача удержать взятый на себя риск. Соответственно нам надо его просчитать. В общем вся эконометрика этому и посвящена. Не угадывание направления, а расчет риска при любом направлении. 
Не знаю какой пример привести. Ну допустим, как бы вы торговали индекс VIX. 

Получилось разделить СИшку на АБД и ОУ? =) или  EUR/USD?
avatar

ch5oh

ch5oh, Если бы я сделал бэктесты и нашел что-то интересное — я бы стал это выкладывать? :) Ну и вон, выше, нюансы обсуждаем. Как первая прикидка — норм, как кандидат для бэктеста — ещё есть над чем подумать.
avatar

Eugene Logunov

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

ch5oh

ch5oh, я выше написал, что все сильно сложнее

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

С уважением
Мальчик Buybuy, даже не знаю, что ответить. Есть мнение, что физический мир описывается м-теорией в 11 мерном пространстве. И что теперь? Посыпать голову пеплом и уйти в монастырь? =)
avatar

ch5oh

ch5oh, нет, конечно

Но искать счастья в линейных теориях — тоже сомнительное удовольствие

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

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

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

А. Г.

Мальчик Buybuy, Мне кажется, вы слишком усложняете. Несколько месяцев назад писал про модель LPPL — так там тоже два примитивнейших диффура. И это не мешает модели вписываться в рынок с хорошей точностью (модель, правда, мартингальная… бгг).
Относительно рассмотренного в этой статье — у меня всё же есть основания считать, что одна из рассмотренных моделей имеет хорошие перспективы. Но на этот раз обойдёмся без публикаций ;)
avatar

Eugene Logunov

Eugene Logunov, да

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

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

поХаям

Хороший фильтр построили. Лучше уже скорее всего не получится.
Тут добавлять-то нечего.
avatar

Kot_Begemot

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

Jame Bonds

Jame Bonds, Если вы про модели типа Авелланеды-Стоикова — то там торговля выполняется не на арифметическом броуновском движении, а на микроструктурном шуме вокруг него. На чистом ABM без этого шума заработок невозможен, это вам скажет любой, кто хоть немножко понимает stochastic calculus.
avatar

Eugene Logunov

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

КАРАТЕЛЬ

КАРАТЕЛЬ, 
Все эти сложные вещи однозначно приносят деньги!
Можно даже заработать на новые мозги! 
avatar

Eugene Logunov

Eugene Logunov, если заработаете то мозги уже не нужны, горе от ума, а бабло побеждает зло.
avatar

КАРАТЕЛЬ

КАРАТЕЛЬ, Как говорит один мой хороший знакомый — когда богатый, но глупый, человек встречается с бедным, но умным — бедный уходит с деньгами, а богатый уходит с опытом 
avatar

Eugene Logunov

Уважаю матан, но… есть ли смысл в таком разложении, если торговать все равно приходится исходный процесс, а не его компонент?
В итоге результат больше будет зависеть не от качества разложения, а от близости исходного процесса к возвратному.
А конкретный инструмент для получения сигналов — дело второстепенное. Мне кажется, простейший инструмент типа боллинджера даст почти такой же результат, как и сложные модели на СДУ. Вот это было бы интересно сравнить.
avatar

robomakerr

robomakerr, 
есть ли смысл в таком разложении, если торговать все равно приходится исходный процесс, а не его компонент?
Из-за того, что торговать нужно сумму средневозвратного процесса и случайного блуждания, оптимальная стратегия просто становится сложнее (она зависит от соотношения sigma.OU/sigma.ABM, скорости возврата к среднему и корреляции между процессами). Но невозможность изолированно торговать средневозвратный процесс в целом проблемой не является.
В итоге результат больше будет зависеть не от качества разложения, а от близости исходного процесса к возвратному.
В статье продемонстрировано, что последняя из 4х рассмотренных моделей процессов может описывать как антиперсистентные, так и персистентные временные ряды. В этом случае получается не контр-трендовая торговля, а trend-following :)
У рассмотренного в статье подхода нюансов достаточно много, выше в комментах обсуждали. Основными же будут:
— действительно ли в цене есть средневозвратная компонента;
— как оценивать параметры (самая сложная часть задачи, невозможность решения которой делает бесполезными все прочие результаты).
Мне кажется, простейший инструмент типа боллинджера даст почти такой же результат, как и сложные модели на СДУ.
Боллинджера можно натянуть на любой процесс, причём нельзя будет сказать заранее, можно ли торговать цену с его использованием. Нам придётся как-то ответить на вопросы:
1) Как торговать — по тренду или против него;
2) Какие оптимальные параметры Bollinger bands.
Ответить на эти вопросы (а также на вопрос наличия предсказуемой компоненты, которую можно отторговать по Bollinger bands) мы сможем лишь получив какой-то финрез (бэктестовый или на живых деньгах). Также мы не сможем говорить ни о какой оптимальности подобной стратегии, т.к. мы не понимаем, какого вида случайный процесс мы торгуем.

Если в основе стратегии лежит какая-то модель, то ответ на подобные вопросы прямо следует из уравнений модели и её параметров.
avatar

Eugene Logunov

Eugene Logunov, если вдруг вы сделаете сравнительный тест с боллинджером или с каналом high-low, это будет самое интересное в данном рисёче.
avatar

robomakerr

robomakerr, Вот сравнение разных способов торговли на процессе Correlated.ABM+OU:

Первый график: оптимальная торговля процесса при известных параметрах и известном скрытом состоянии. Стратегий без подглядывания в будущее с бОльшим коэффициентом Шарпа для такого процесса не существует в принципе.

Второй график: оптимальная торговля процесса при известных параметрах и неизвестном скрытом состоянии (оценивается при помощи фильтра Калмана). Коэффициент Шарпа этой стратегии составляет 58% от максимально возможного.

Третий график: торговля процесса при помощи Bollinger Bands; параметры Bollinger Bands (period, deviation) были оптимизированы таким образом, чтобы давать максимальный коэффициент Шарпа для процесса Correlated.ABM+OU с такими параметрами. Ничего лучше при помощи Bollinger Bands получить нельзя. Коэффициент Шарпа этой стратегии составляет 47% от максимально возможного.

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

Использованные параметры процесса: sigma.ABM=0.25, sigma.OU=0.25, lambda.OU=2, rho=-0.9
avatar

Eugene Logunov

Eugene Logunov, спасибо.
Но я ж имел в виду на реальном рынке) на идеальном синтетике-то понятно, что оптимальный метод будет лучше.
Кстати, что имеется в виду под «состоянием» для KF? buy/sell/off? uptrend/downtrend? или состояние — это текущее значение цены? или текущее приращение?
avatar

robomakerr

robomakerr, 
Кстати, что имеется в виду под «состоянием» для KF?
Оценка координат двух ненаблюдаемых процессов, из которых состоит цена.
avatar

Eugene Logunov


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

Залогиниться

Зарегистрироваться
....все тэги
UPDONW