Финальная модель SV with Jumps, пример предсказания цены КокаКолы на 3 года, откалибрована MCMC на исторических данных

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



Насколько точно работает?
Точный расчет правдоподобия сделать нельзя, требуется Particle Filter я пока не сделал. Проверил Совпадение по моментам с историческими данными, боль менее совпадает. Модель чуть недотягивает хвосты, но в пределах того что мне требуется.
Хвосты можно сделать сильнее, усложнив модель, но это ухудшит идентификацию параметров и сильно замедлит расчеты. Также, думаю пройти курс Statistical Rethinking, Richard McElreath, попробовать MCMC на других задачах, и возможно потом вернуться к этому вопросу и улучшить модель.
Наблюдения
Ускорил MCMC фиттинг в 10-20 раз. Упростив модель, сделав гладкую гауссовскую репараметризацию для всех параметров, нормализацию данных, упростив структуру модели и убрав все узкие места из в цикле MCMC.
MCMC использует оптимизатор C++ который по идее должен максимально оптимизировать этот нагруженный цикл, но как оказалось почему то он не может это делать, например заменить фиксированные вектора на элементарные операции, и лучше вектора в этом цикле не использовать а заменить их на элементарные операции вручную.
Итого
Я завершил что хотел, получить процесс цены, которые не точно, но с допустимой для моих задач погрешностью: а) близок к реальному б) повторяет нужные мне факты наблюдаемые в реальных ценах в) в том числе в экстремальных режимах г) не нарушает условия Талеба.
Мне хотелось получить универсальная модель, которая работает во всех условиях боль менее реалистично, без больших ошибок. Она не обладает высокой точностью, и сама по себе не может дать преимущества на рынке. Модель дает грубую заготовку, которая затем уточняется дополнительными данными, и именно эти данные и должны дать точность.
Дальше… 1) обогатить исходные данные, добавить фин отчетность, календарные события как публикацию финотчетности, действия инсайдеров. 2) попробовать его для оптимального расчета портфеля из небольшого числа позиций 2-4, даже для первого шага проще — оптимального соотношение акции и хэджа.
Распределение прибыли акции через 1 год
Старый вопрос на который мне долго не удавалось найти ответ. Какое будет распределение цены акции через год, какова степень хвостов? Посчитать его через исторические данные нельзя, их слишком мало, для определения степени хвостов нужно минимум 500 точек (это 500 лет), лучше 1к или 5к. И симулировать цену через GARCH тоже нельзя она не дает реалистичный процесс цены. С SV этот вопрос решается в две строчки:
T = 252
r = [sum(sim_sv_vj(S0, Т).r) for _ in 1:10_000]
d = fit(SkewT, r)
Полученное распределение через 1 год дла Кока Колы, хвосты оказались легкие (черная линия нормальное распред для сравнения)
SkewT(μ=0.077, σ=0.21, ν=15.3, λ=-0.05)

Хмм, походу хвосты недостаточно тяжелые получились...
Хмм, что то маловато, 0.1%, мож модель неточна и недооценивает хвосты, я ожидал вероятность выше будет :)
Прогноз кока колы условен, это старые данные неделя или две тому назад, лень было обновлять до сегодняшних. :)
Распределение через 1год
SkewT(μ=0.072, σ=0.19, ν=6.47, λ=-0.05)
и да — обычно столь монструозные ресёрчи тупо заканчиваются «светлой» идеей продавать путы… со всеми вытекающими ))))
Я посмотрел совпадение по моментам отличия между реальной прибылью и симуляцией — не идеально, но достаточно близко, думаю использовать можно...
Почему монструозный? По идее это типовая задача. Например типовой случай портфель из SP500 и Кеша. Как определить оптимальную пропорцию, например, по критерию келли, без симуляции не получится (фракционному келли, поскольку мы допускаем неточность модели, и увеличим позицию по кешу больше оптимальной).
Или найти комбинацию акция + пут для защиты. Какой пут будет оптимальным, какие параметры экспирации, страйка, обьема позиции.
и если по модельному распределению проэкспектэйтить опционы, то путы (на рынке) получаться прям жуть какими дорогими и в голову придёт «светлая» мысль «а не продать их?» )))
Чисто интуитивно — безрисковая ставка сейчас ниже инфляции (реальной инфляции, не фиктивных официальных цифр). По сути, сегодняшние облигации официально и явно гарантируют — что в итоге денег (в пересчете на покупательную способность) получишь меньше, чем потратил на их покупку.
Т.е. любая акция просто обязана быть выше безрисковой ставки, причем не чуть выше, а заметно выше. Нет?
так же, у вас процесс еще и для сигмы, который тоже в дифференциале Ито должен быть и у захеджированного по дельте опциона всё равно остаётся риск по сигме сигмы, и получается, что должен бы соблюдаться некоторый паритет с риск-премией самого актива
еще есть разница о чем говорить — о dП/П, или о dlnП (П — опционный портфель), но это больше про аккуратность, а то часто появляется иллюзия бесплатной сигма^2/2
в общем [иметь риск премии] — становится как-то слишком уж муторно, потому, что у активов практически никогда нет паритета в цене риска (т.к. от модели никак этого и не требовали при обучении)
и… цена риска — это многофакторная история, акцент на многофакторная, потому, что какой-то фактор может стоить так, а какой-то по-другому
Иногда бывают невероятно дорогие путы, например на серебро и золото добытчиков, иногда на нефть, при сильной волатильности акции, еще лучше при сильном падении акции, пут 6мес, страйк х0.85 может стоить очень дорого, до 10-25% акции.
И вот их продать можно, акция сильно обвалилась, акция хорошая и с перспективами роста в след 3 года (например канадский нефтегаз) и ты хочешь купить акцию на дне, рынок в панике и путы на нее стоят космос.
И тут, вместо покупки акции, можно продать на нее путы, если акция обвалится — ты фактически покупаешь ее со скидкой. Если чуть вырастет — не велика проблема, ты на дорогом путе тоже нелплохо денег сделал.
Какие путы нельзя продавать — это дешевые, FAR OTM или на тихие и спокойные акции, или на те которые сильно вырасли.
Или, как вариант, Джоел Гринблат упоминал что недооцененные акции имеют неприятную тенденцию падать после покупки. Т.е. краткосрочно 1-2 года ожидаемая доходность ниже срендей, долгосрочно 2-3 года выше средней. Можно попробовать задать переменную во времени ожидаемую доходность, занизить краткосрочно скажем х0.9 от рыночной и завысить долгосрочно скажем х1.1.
Мне кажется часы, минутки, пятиминутки могут дать результат лучше, но пока я хотел бы сделать грубую модель хорошо работающую на дневках, и затем если получится улучшать на более высоких частотах.
О модели подробней www.linkedin.com/pulse/predicting-stock-price-alexey-petrushin-jkvkc