Блог им. AlexeyPetrushin

Эквити или Правдоподобие?

Модель систематически недооценивала экстремальные режимы рынка, и я принудительно добавил веса на важные для меня режимы рынка.

Затем задумался, что именно оптимизатор пытается сделать, почему он игнорирует режимы которые для меня важны.

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

Веса, это один из способов сказать оптимизатору куда можно поместить ошибки, указать ему явно чем можно пожертвовать. Например, если нам важны экстремальные режимы, можно сказать об этом оптимизатору «используй взвешенное правдоподобие, с весами х2 для точек <0.01 и >0.99 квантилей».

Но, веса, таки, это все равно достаточно неточно и условно, нужно как то подобрать а) какой тяжести вес и б) куда именно его положить. Это сложно, можно ошибиться.

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

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

Возможно что то вроде этого имеют ввиду говоря что «использование теории вероятности — возможно не самый лучший способ для алготрейдинга».
203
9 комментариев
сейчас будет сложно: придумайте стратегию, где правдоподобие и финрез это одно и то же, подсказка — это про [ко]вариационные свопы, можно ли это собрать из того что торгуется (ванила) — статично — только варсвоп
avatar
anon, насколько я понял — вариационный своп даст финрез как правдоподобие, если предположить что распределение нормальное. Но распределение не нормально, оно похоже на TDist, незнаю может какая то комбинация свопов может дать что то подобное. 

Собрать из того что торгуется, наверно как комбинацию разных страйков евро опционов :).
avatar
Alex Craft, варсвоп — это кроме прочего — constant gamma портфель, если у вас процесс не нормальный — ну прикиньте гамму в вашем сетапе и сделайте её констант, получится «немного другой» варсвоп, и его вероятно надо будет подравнивать если отъехало, но это мелочи, реальная проблема это то, что коварсвоп из ванилы не собирается :( есть конечно максималистический подход «но у нас же есть индекс, вот в нём коварианс таки вылезет» но это вообще не про портфель из 2х акций и туда порог высоковат

в итоге — хуже ли фитить правдоподобие чем финрез? — в теории правдоподобие лучше, потому, что кумулятивное правдоподобие очень физично — оно отражает накопленную информацию за период, и [ко]варсвоп это natural strategy, а во финрез — это всё-таки эффект управления ))))

на практике — фитить «вообще всё» под финрез — сложно и методологически не правильно, оптимизатор очень полюбит точки, где «пришло много и быстро» и загонит параметры так, чтобы было 2-3 удачных трейда, а остальное время ничего не делалось

опять же — а как именно оптимизатор недооценивает «то, что вам нужно»:
— смещенно? — это проблема модели и стоит что-то сделать с моделью
— не смещенно, но все равно не нравится как получилось? — дело в стратегии, там где «всё не так» — ваша позиция оказывается ковариирована с dPrice не так, как вам подсказывает ваше чувство прекрасного (personal utility function)

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

к чему весь этот спич:

— чем меньше оптимизатор (который фитит ценовой процесс) знает о вас тем лучше, он занимается информацией, а не вашим чувством прекрасного ))))

— результат модели надо в том числе проверять на несмещеность не только в среднем, но и сделать несколько бакетов по какому-нибудь из параметров — и посмотреть, а как оно в частности в режимах А и Б, может получится, что модель смещенная в частностях, но в среднем всё как бы ок — это проблема

— стратегия — это уже следующий уровень. воспринимайте ваш финрез как процесс:

dResult_next = Position_current(info_current) * dPrice_next
dPrice_next = dModelPrice_next + error

или же
dResult_next = Position_current(info_current) * dModelPrice_next + Position_current(info_current) * error

в таком случае — ваш суммарный рез это вобщем-то коварианс Position (стратегии) и dModelPrice_next (модели) + коварианс Position и error

коварианс стратегии с моделью это \mu вашего портфеля, а с ошибкой — \sigma вашего портфеля, и вот тут становится понятно, что error лучше иметь не смещеный (и вообще не зависимый от dModelPrice_next и Position_current) иначе у вас и результат будет каким-то сложным гарч-процессом — а зачем?


объяснил как смог )))) вообще всё написанное пришло из хфт/маркетмейкинга/варсвопов, как это применять в вашем случае — ну если вы планируете нажимать кнопку раз в месяц — то по хорошему и модель надо брать с таймфреймом нажимания кнопки — месяц и относительно этой модели выстраивать оптимальную стратегию (правила нажимания кнопки раз в месяц), этакий slow-hft-style )))
avatar
anon, спасибо за подробный комментарий. 

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

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

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

Кнопку, да, я нажимаю раз в неск недель. Если цены меняются и нужно сделать перебалансировку портфеля :)
avatar
Alex Craft, яуже уточнял, но как-то ответ вылетел из головы:
если вы зафитили процесс:
А) на дневных данных и построите распределение на месяц вперед (20-22 шага)
Б) на месячных данных и построите распределение на месяц вперед (1 шаг)

вот правдоподобнее окажется А или Б? у меня обычно Б получалось
avatar
anon, пока не могу сказать. я пока не могу посчитать правдоподобие для SV модели, это требует Particle Filter, а я не сделал его еще. Без Particle Filter посчитать провдоподобие не получится, я уточнил этот вопрос на форуме Stan MCMC. Я пока оцениваю точность по совпадению моментов.
avatar
Alex Craft, не… ну какое-то же распределение вы все равно можете сгенерировать на месяц вперед? вот относительно этого сгенерированного распределения разве не получится посчитать правдоподобие реализаций? или это тяжеловесно по вычислениям?
avatar
anon, понял. да так можно сделать, хорошая мысль. Я не пробовал, как будет время посмотрю. По скорости проблем не должно быть.

То что MCMC подсматривает вперед в этом случае думаю можно игнорировать, это «подсматривание» сильно влияет на 1 день вперед, но на 21 днеь вперед эффект думаю будет мизерный, так что расчет праводподобия должен быть очень точным.
avatar
anon, я поправил модель и убрал веса, получается достаточно близко совпадение по моментам без весов.
avatar

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
«Дом.РФ» — интересный фининститут с потенциалом роста
Аналитики «Финама» добавили в покрытие бумаги «Дом.РФ». Эксперты положительно оценивают перспективы бизнеса эмитента, одного из ключевых...
Фото
Обзор рынка облигаций
Если не считать бури вокруг Евротранса, то неделя прошла спокойно. Рынок продолжает взвешивать ситуацию с дефицитом бюджета и способами...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога Alex Craft

....все тэги



UPDONW
Новый дизайн