Alex Craft
Alex Craft личный блог
05 марта 2026, 10:05

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

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

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

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

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

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

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

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

Возможно что то вроде этого имеют ввиду говоря что «использование теории вероятности — возможно не самый лучший способ для алготрейдинга».
9 Комментариев
  • anon
    05 марта 2026, 15:25
    сейчас будет сложно: придумайте стратегию, где правдоподобие и финрез это одно и то же, подсказка — это про [ко]вариационные свопы, можно ли это собрать из того что торгуется (ванила) — статично — только варсвоп
      • anon
        08 марта 2026, 10:30
        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 )))
          • anon
            09 марта 2026, 17:16
            Alex Craft, яуже уточнял, но как-то ответ вылетел из головы:
            если вы зафитили процесс:
            А) на дневных данных и построите распределение на месяц вперед (20-22 шага)
            Б) на месячных данных и построите распределение на месяц вперед (1 шаг)

            вот правдоподобнее окажется А или Б? у меня обычно Б получалось
              • anon
                09 марта 2026, 19:29
                Alex Craft, не… ну какое-то же распределение вы все равно можете сгенерировать на месяц вперед? вот относительно этого сгенерированного распределения разве не получится посчитать правдоподобие реализаций? или это тяжеловесно по вычислениям?

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

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