Финальная модель 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)

Хмм, походу хвосты недостаточно тяжелые получились...
Распределение через 1год
SkewT(μ=0.072, σ=0.19, ν=6.47, λ=-0.05)