Кирилл Браулов
Кирилл Браулов личный блог
24 февраля 2015, 02:34

Направленная торговля опционами

Предлагаю обсудить одну идею направленной торговли опционами. Прочитал о ней в книге «Опционы. Системный подход к инвестициям. С. Израилевич, В. Цудикман» (спасибо Стасу за наводку) и загорелся попробовать. Слегка доработал, частично реализовал и хотел бы поделиться промежуточными результатами. Буду рад любой критике, новым идеям и т.д.

Суть идеи в том, чтобы по распределению вероятностей оценивать различные опционные позиции и выбирать лучшие из них. Для иллюстрации рассмотрим позицию «голый 
фьючерс» на основе рыночного распределения:
Направленная торговля опционами 

Вот какие показатели можно рассчитать по распределению:

  • Матожидание PnL (МО) — среднее PnL всех возможных исходов считается как интеграл произведения платежной ф-ции на экспу на функцию плотности  распределения. Чтобы можно было сравнивать этот показатель у различных комбинаций разного объема, решил нормировать его на общий риск позиции. Для простоты и скорости вычисления в качестве меры риска взял не ГО, а VaR.
  • Вероятность безубытка (Б/У) — площадь под теми участками распределения, где платежная ф-ция не отрицательна (т.е. площадь зеленых участков распределения).
  • Профит-фактор (П/Ф) — считается как отношение матожидания прибыли к матожиданию убытка (отдельно считается матожидание на зеленых участках и отдельно на красных).


Для рассматриваемого примера матожидание PnL получилось почти 0 (0.002%, не чистый ноль из-за погрешности вычислений), и профит-фактор = 1. Т.е. средняя прибыль будет равна среднему убытку. И так получается для любой опционной позиции, открытой по теорценам. Т.е. если использовать только рыночное распределение, не получится выявлять комбинации с положительным матожиданием и профит-фактором > 1.

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

Поэтому, если мы собираемся торговать направленно, одним только рискнейтральным рыночным распределением не обойтись. В соответствии со своим прогнозом, можно добавить к нему с определенным весом нормальное, или логнормальное, или вообще равномерное (если считаем, что на экспу БА будет в определенном диапазоне с равной вероятностью). В упомянутой книжке было предложение добавлять еще эмпирическое распределение (если верим в то, что история приращений будет повторяться). Еще, случайно обнаружил в книге «Математика управления капиталом. Ральф Винс» формулу для произвольного распределения, где четыре параметра регулируют первые четыре момента распределения. С помощью смеси таких распределений можно получать самые причудливые формы:
Направленная торговля опционами

Т.е. если есть собственный взгляд (отличающийся от рыночного) о вероятности, где будет БА на экспу, то технических проблем подобрать соответствующее 
распределение — нет. Ну а если собственного вью нет, то и направленную позу лучше не открывать, и торговать только дельтанейтральные стратегии.

Допустим, мы предполагаем рост и уверены в своем прогнозе на 5%. Составляем смесь распределений: рыночное с весом 95% и соответствующее нормальное с весом 5%:

Направленная торговля опционами

Получаем небольшую припухлость на правом хвосте распределения. Распределение перестало быть рискнейтральным, и появился смысл искать на нем комбинации с положительным МО. Чтобы иметь возможность сравнивать между собой различные комбинации, сведем все вычисляемые показатели в одно число. Для этого назначаем каждому показателю свой вес (в зависимости от того, что нам важнее — возможная прибыль или безрисковость) и делаем «аддитивную свертку». Для примера взял такие веса: 0.4/0.3/0.3. Т.е. итоговая оценка вычисляется примерно так: 0.4*МО + 0.3*П/Ф + 0.3*Б/У. Сравним теперь между собой несколько стандартных комбинаций, направленных на рост:

Направленная торговля опционами
Самая слабенькая оценка у бычьего колл спрэда. Небольшое положительное МО, П/Ф чуть больше 1, и маленькая вероятность выйти в безубыток. Итоговая оценка 14.


Направленная торговля опционами
Голая покупка фьюча неожиданно оказалась лучше бычьего спрэда. Думал, что эта поза будет на последнем месте.
 

Направленная торговля опционами
Чуть лучше показатели у проданного пута. У позиции самая большая вероятность выйти в Б/У. Но самое маленькое МО.
 

Направленная торговля опционами
На втором месте — покупка колла. Самое большое МО, но и самая маленькая вероятность выйти в Б/У.
 

Направленная торговля опционами
Победителем,  с хорошим отрывом по очкам, оказался пропорциональный колл спрэд. У него все показатели хорошие, итоговая оценка 71.

Вот такие результаты получились. Может, кто из практиков направленной торговли выскажется — соответствуют ли такие результаты опыту торговли?

Собираюсь теперь прикрутить автоматический поиск комбинаций с помощью геналгоритмов. Если это получится, то можно будет применять его не только для поиска наилучшей для открытия позы, но и для управления уже открытой позы. Допустим, раз в два-три дня пересматривать распределение вероятности (как минимум, будет меняться рыночное, а может и собственный прогноз изменится). И потом по новому распределению искать, как с помощью минимальных изменений в позиции улучшить ее показатели. Получается такая неторопливая стратегическая торговля, где прогнозируешь не очередное приращение цены, а вероятность того или иного возможного сценария. Нет тейкпрофитов (когда борешься с жадностью), проблемы выбивания стопов и внутренней борьбы «а не отодвинуть ли еще немного стоп». И не будет соблазна на какой-нибудь совсем плохой вариант, типа усреднения убыточной позиции. Анализ по распределению четко покажет, что это будет ухудшением позы.

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

В общем, было бы интересно узнать — у кого какое мнение по поводу такого подхода к торговле?

63 Комментария
  • XAT
    24 февраля 2015, 03:53
    Подход очень правильный, успехов в разработке! Как разработаете и проверите метод, дайте знать, готов посотрудничать.
      • anon
        24 февраля 2015, 20:51
        Кирилл Браулов,

        по поводу скоринга (свёрток мо, п/ф итд) — это тоже вариант, но есть более менее устоявшееся «мерило», и возможно оно вам понравится (например, его можно подифференцировать и получить желаемое без ген алгоритмов) — функция полезности

        я использую самую банальную, логарифмическую.

        скажем имеются средства M и опционная конструкция, которая имеет функцию выплат P(F, T)

        на этом этапе вовсе не обязательно, чтобы M как-то предварительно соотносилось с функцией выплат или премией полученной/затраченной на конструкцию

        рассмотрим величину U(F, T) = ln((M + P) / M) = ln(1 + R)

        если масштаб R позволяет разложить U по тейлору — то:

        для первого порядка получим: M(U) = M( R ) — т.е. матожидание полезности это матожидание прироста средств в %, где матожидание вычисляется по _не_рискнейтральной мере (а именно по той, относительнго которой оптимизируете конструкцию)

        для второго порядка: M(U) = M( R ) — 0.5 * M(R^2) — здесь уже учитывается рисковость позиции

        для третьего: M(U) = M( R ) — 0.5 * M(R^2) + 1/3 * M(R^3) — вклад ассиметрии

        ну и так далее… окончательно — можно интерпритировать M(U=ln(1+R)) как некоторый скоринг, учитывающий все моменты процентного прироста средств R в _не_рискнейтральной мере

        и относительно этого скоринга находить оптимальную позицию для заданной пары {рискнейтральная мера, нерискнейтральная мера}
        • anon
          24 февраля 2015, 21:03
          ps: с ходу не смог вспомнить почему именно такое сочетание моментов именно с такими весами (как в ряде тейлора для логарифма) это как раз то, чего должно хотеться
          • anon
            25 февраля 2015, 01:08
            Кирилл Браулов,

            > Правильно ли понял, что могу посчитать M(U)
            > (скажем до 4го порядка) для каждой комбинации
            > (опционной позиции) и наибольшее значение будет
            > соответствовать самой лучшей комбинации?

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

            переформулирую свою мысль: матожидание полезности лучше считать как именно M(ln(1+R)), не обрывая ряды Тейлора, они тут были просто иллюстрацией того, что представляет из себя матожидание логарифма случайной величины.

            смешанное распределение (рынок + вью) — это тоже уже не рынок, а вью, поэтому чтобы не путаться, будем называть рыночное распределение (из улыбки) рискнейтральным Q, а какое-то наше — нерискнейтральным P

            обычно задача ставится так: рынок, находится в состояние предполагающем распределение Q, участник заключает, что цена актива имеет распределение P. участник располагает средствами M (да, можно считать что равными 1). вопрос — какую «лучше» сформировать позицию? ответ — найти такую позицию, которая максимизирует ожидаемую полезность M(ln(1+R)) относительно распределения P.

            > Насчет последней фразы — предлагаете искать
            > оптимальную позу не только по смешанному
            > распределению, но и по рыночному? А какой
            > в этом смысл, если я уже использовал рыночное
            > распределение, взяв его с некоторым весом в смесь?

            {рискнейтральная мера (Q), нерискнейтральная мера (P)} — вы про это место? имелось ввиду вот что: от Q зависит платёжная функция, проще говоря, при некотором Q цена стредла это 100 рублей, а при каком-то другом Q это 1000 рублей, от вью P цены не зависят (покрайней мере пока вы не открыли позицию) соответственно при разных Q этот стредл может быть интересен как в покупку так и в продажу, т.е. оптимальная позиция — это функция не только от вью P (пусть даже оно учитывает Q), но и от рынка Q непосредственно. матожидание полезности при этом вычисляется именно по мере P.

            > Или имеете ввиду, что можно попытаться найти
            > такую комбинацию, которая имела бы хорошие
            > показатели на нерискнейтральном распределении,
            > и при этом была дельтанейтральной на рыночном
            > распределении?

            идея интересная, но всё проще — см выше
              • anon
                25 февраля 2015, 17:43
                Кирилл Браулов,

                это не проблема, вы как нулевое приближение возьмите веса 0 для всех страйков (и фьюча), а далее градиентным спуском, если взять M=1, то на выходе получатся какие-то небольшие веса, для других M они просто будут пропорционально больше
                • anon
                  25 февраля 2015, 18:03
                  anon,

                  с чем можно столкнуться:

                  1. оптимизация помимо того что должна делать надувает нейтральные позиции, типа: «добавилось колов, что-то ещё, убавилось путов, что-то ещё, убавилось фьюча», т.е. с каждой итерацией в портфеле набирается ничего не значащаяе компонента с общим страйком N*(+call-put-futures) — в этом случае стоит либо «прочищать» портфель вконце итерации, либо исключить путы — они линейнозависимы с колом и фьючерсом и сами собой окажутся синтетически реализованы если они нужны

                  2. если плохо сходится — выкиньте половину страйков (например каждый второй), оптимизируйте, добавте выкинутые, переоптимизируйте

                  3. не ожидайте на выходе понятную позицию, войдёт весь спектр того что было на входе
                  • anon
                    25 февраля 2015, 19:57
                    могут возникать ситуации когда везде веса понемногу, а на самом правом страйке много куплено, это нормально, так происходит когда в распределении P интересна продажа, но так как продажа непокрытых колов приведёт, как вы верно отметили, к невычисляемому логарифму — возникает это решение, благо оптимизатор сам собой его находит, а для фондовых деривативов otm колы стоят совсем не дорого
                  • anon
                    26 февраля 2015, 12:47
                    Кирилл Браулов,

                    > Старый метод показывает, что самая лучшая поза
                    > купленный колл. А M(ln(1+R)) выдает самое маленькое
                    > значение для этой позы (-1.66).

                    всё правильно, это оттого что S=1.01*Abs(MaxLoss) чуть больше худшего убытка, поэтому с вероятностью почти Б/У (почти 60%) вы получаете очень отрицательный логарифм.

                    выбор S существенен, в данном случае вы оцениваете полезность игры: лосс ~99% с вероятностью ~60% и прибыль с вероятностью ~40%

                    теория полезности строится исходя из того, что S задаётся честно, то есть если рассматривается сценарий убытка на 99% S, то это действительно убыток на 99% средств участника (у участника нет средств кроме S)

                    что касается скоринга — если на входе позиция с уже заданными весами, то тогда следует провести оптимизацию по S, и найти сам максимум и S, при котором он достигается

                    наверное, чтобы сильно не ломать голову, но почувствовать полезность, проще добавить в таблицу 4 (мб больше) столбца с полезностями посчитанными для разных S:
                    S1 = 1.01*Abs(MaxLoss)
                    S2 = 1.1*Abs(MaxLoss)
                    S3 = 2*Abs(MaxLoss)
                    S4 = 11*Abs(MaxLoss)


                    > Получается что MaxLoss у купленного колла небольшой,
                    > а у проданного пута — на порядок больше. Возможно,
                    > поэтому оценка (через матожидание полезности)
                    > у купленного колла оказалась на два порядка хуже
                    > проданного пута. Из общих соображений, старый
                    > метод расставил оценки более правильно, имхо.

                    да, причина в этом, не уверен что из этого получится, но как вариант — если найти самый большой GlobalMaxLoss по всему списку (и по колам и по путам, всё что есть в таблице) и посчитать ожидаемую полезность относительно GlobalS=1.01*Abs(GlobalMaxLoss), или вовсе завести ManualS и задать его руками, то ожидаемая полезность подтянется к интуитивно понятным цифрам
                      • anon
                        26 февраля 2015, 16:45
                        Кирилл Браулов,

                        с S5 не совсем понял — это Abs(MaxPnL) это по сути MaxProfit или Max(Abs(PnL))?

                        > Получается, нужно искать не только
                        > оптимальную позу, но еще и оптимальную
                        > S для каждой позиции-кандидата?

                        > хотелось бы их сравнивать в нормированном
                        > состоянии. Т.е. хотелось бы, чтобы позы «10*Fut»
                        > и «1000*Fut» показывали одинаковую оценку.
                        > Масштабировать найденную оптимальную позу к
                        > реальным деньгам — это уже следующая задача.

                        да, верно, просто исторически задача ставилась с противоположной стороны :) то есть: «что лучше сделать участнику с средствами S, если рынок предполагает Q, а участник предполагает P». в вашей постановке достаточно для каждой строки найти S максимизирующее ожидаемую полезность, при оптимальном S для 10*Fut и 1000*Fut полезность окажется одинаковой.

                        И ещё пару слов о нормированности — суть полезности, отчасти и в том, что она улавливает, что при депозите 100 рублей например 5 коллов это хорошо, а 6 или 4 — хуже.
                          • anon
                            27 февраля 2015, 17:29
                            Кирилл Браулов,

                            > Правильный ли вывод делаю из этой картинки: на данном
                            > распределении максимальная ожидаемая доходность будет
                            > +2.8%, при условии что покупается такое кол-во коллов,
                            > которое выдает максимальный убыток в 6-7 раз меньше
                            > выделенных денег на портфель?

                            про 6-7 раз — да, правильный, про +2.8% — в первом порядке да, но вобще говоря больше, так как MU = Mln(1+R) <= MR

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

                            да, собственно это как раз из MU = Mln(1+R) <= MR следует


                            > Похоже на правду?

                            вроде похоже, на всякий случай добавлю в классической постановке оптимальная позиция имеет неотрицательную полезность, т.к. всегда есть вариант «отсутствие позиции» который имеет MOP = 0
                              • anon
                                28 февраля 2015, 22:11
                                Кирилл Браулов,

                                > Интересно, что график зависимости МОП от F у лонг
                                > фьюча — непрерывно растет и не имеет выраженного
                                > пика. А у опционных позиций — пик есть.

                                мне кажется это потому, что у вас распределение P изначально «квазиарбитражное», т.е. M(PnL) > (D(PnL))^0.5 (для фьючерсной позиции по мере P)

                                объяснить ситуацию наглядно, но не аккуратно, можно так: дискретное приближение стохастического процесса это Fut(T) = Fut(0) + \myu T + \sigma * T^0.5 * \epsilon, где \epsilon ~ N(0, 1), PnL(T) = pos * (Fut(T) — Fut(0))

                                теперь положим T = 1, и рассмотрим два случая \epsilon = {-1, 1}, в обоих этих случаях позиция лонг фьючерса даст положительный результат (так как \myu > \sigma), т.е. в такой урезаной моделе риска как бы совсем нет

                                в полновесной моделе с интегрированием логарифма по всей оси происходит качественно то же самое

                                почему для колов есть пик? потому, что там есть расход — платится премия (тут существенна только временнАя компонента премии), можно ещё страйк колла устремить к 0 (то есть устремить колл к фьючерсу), и посмотреть динамику оптимального F в зависимости от страйка, то предположительно (никогда этого не делал) для квазиарбитражного распределения она будет чем-то отличаться от динамики не квазиарбитражного распределения

                                проще говоря — в P = Q + рост — подвиньте рост поближе к рынку и/или поднимите его дисперсию и/или понизьте его вес и должен появиться пик на фьючерсе
                                • anon
                                  28 февраля 2015, 22:56
                                  Кирилл Браулов,

                                  > Кстати, для последнего распределения ранжирование
                                  > через свертку и через МОП — полностью совпало.

                                  не получается воспроизвести столбец свертка через другие столбцы и веса 0.4/0.3/0.3, напишите подробнее, как вы её считаете? это Ваша разработка или где-то можно почитать?
                                  • anon
                                    03 марта 2015, 13:43
                                    Кирилл Браулов,

                                    > А можете, если не трудно, пояснить идею —
                                    > как находить оптимальную позу (для распределения P)
                                    > без геналгоритма?

                                    градиентным спуском из «нулевой позы», вот же как раз об этом — smart-lab.ru/blog/238736.php#comment3616586 и ещё следующий пост

                                    или вы хотите именно решение в целых числах?
                                      • anon
                                        08 марта 2015, 17:48
                                        Кирилл Браулов,

                                        1) рассматриваете только опционы колл (фьючерс = колл с нулевым страйком, а путы — это коллы минус фьючерс)
                                        2) каждому коллу задаёте веса равные нулю. пусть это будет вектор w_0(strike), ожидаемая полезность такой позиции очевидно 0
                                        3) для i-й итерации считаете производную ожидаемой полезности по каждому w_i(strike) — это и есть градиент, то есть рассчитываете вектор dMu/dw_i(strike) — как изменится ожидаемая полезность если веса w_i(strike) изменить на w_i(strike) + dw(strike)
                                        4) приравниваете w_i+1(strike) = w_i(strike) — \lambda * dMu / dw(strike)
                                        5) повторить с шага 3 пока не достигнете максимума ожидаемой полезности

                                        в википедии неплохо написано ru.wikipedia.org/wiki/Градиентный_спуск


                                        с небольшой поправкой, что в википедии ищут минимум, а требуется найти максимум
                                          • anon
                                            09 марта 2015, 05:21
                                            Кирилл Браулов,

                                            да, strike — координата, i — итерация

                                            > Т.е. надо рассматривать позы, в которой
                                            > потенциально могут быть коллы на все
                                            > имеющиеся страйки + фьюч?

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


                                            > А точно при таком поиске будет находится
                                            > глобальный максимум? Или возможно попасть
                                            > только на какой-то локальный?

                                            как-то я об этом не задумывался, мне кажется при довольно общих ограничениях типа не квазиарбитражности и P и Q, будет только один максимум, но надо перепроверить…
                                              • anon
                                                11 марта 2015, 23:09
                                                Кирилл Браулов,

                                                > А если страйков, например, 30, то теоретически
                                                > оптимальная поза может оказаться из 31 разных
                                                > инструментов (30 коллов на разные страйки + фьюч)
                                                > Если — да, то ведь ее сложно будет открыть
                                                > при реальной торговле?

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

                                                Поскольку ожидаемая полезность зависит только от функции выплат (обозначим её как PF) портфеля и распределения P, а функция выплат зависит от цен сделок, то на практике при поиске оптимальной позиции распределение Q не участвует:

                                                U(F, T) = ln((S + PF(F, T)) / S)
                                                PF(F, T) = sum(PF_C(F, T, K)) + sum(PF_P(F, T, K))

                                                То есть функция выплат = сумма функций выплат для колов и для путов, суммирование по K — страйку. Фьючерс — воспринимаем как колл со страйком 0. На примере какого-нибудь отдельновзятого колла (для путов аналогично) имеем:

                                                PF_C(F, T, K) = w_C(K) * max(F — K, 0) + EnterSaldo(w_C(K)),

                                                где EnterSaldo(w_C(K)) — сальдо входа в позицию размером w_C(K) единиц инструмента. Например, купить 10 коллов со страйком K (w_C(K) = 10) в моменте можно 8 штук по 1250 и ещё 2 штуки по 1270, тогда:

                                                EnterSaldo(10) = -8 * 1250 + -2 * 1270 = -12540
                                                PF_C(F, T, K) = 10 * max(F — K, 0) — 12540

                                                Таким образом влияние ликвидности на ожидаемую полезность учитывается через EnterSaldo(w)

                                                Важно:
                                                1) в EnterSaldo покупки берутся с минусом т.к. расход, продажи с плюсом, т.к. приход
                                                2) в отличии от идеализированного случая, в котором можно было исключить из рассмотрения путы и ограничиться оптимизацией только портфеля колов, на практике следует рассматривать и колы и путы, поскольку их стаканы наполняются самостоятельно.
                                                3) EnterSaldo(W) определена только в целых точках, и монотонно убывает, чтобы градиентный спуск продолжал работать, достаточно гладко доопределить эту функцию между целыми точками, сохранив при этом условие монотонности — это можно сделать массой методов, я ограничиваюсь сплайнами

                                                >> но надо перепроверить…
                                                > Поделитесь, пожалуйста, результатом.

                                                сейчас большая загрузка… в ближайшее время не обещаю

                                                > Насколько понимаю, это можно в качестве w_0 взять
                                                > не только нулевую позу, но и какую-нибудь случайную
                                                > и убедиться что она приведет к той же оптимальной
                                                > позе, что и нулевая.

                                                ну, кстати, тоже вариант, лучше наверное точек 10 случайных взять для надёжности ...


                                                PS: а как Вы так сделали цитату с вертикальной чертой? это вручную через html или тут можно включить нормальный редактор комментариев? (у меня просто текстовое окно со скроллером, без какого-либо функционала)
                                                  • anon
                                                    12 марта 2015, 03:51
                                                    Кирилл Браулов,

                                                    Для котирования всё очень похоже, но сложнее, особенно если планируете держать несколько заявок одновременно, если делать правильно — нужно осреднять полезность не только по распределению P, но и дополнитеьлно по распределению вероятности исполнения котировочной заявки в зависимости от её цены и/или очереди перед ней, а так же учесть, что фьюч может оказаться не там где вы его видели, когда расчитывали ену котировки.

                                                    Допустим, Вы хотите котировать бид на какой-то бумаге, на ней имеется офер по цене MarketPriceAsk (далее = MP_a) и алгоритму набора позиций по рынку этот офер не интересен.
                                                    1) Предположим появляется новый офер по цене MP_a — MinTick * i на любой объём.
                                                    2а) Если этот офер стал интересен алгоритму набора позиций по рынку с оптимальным объёмом W, то собственно почему бы не поставить свой бид объёмом W на эту цену?
                                                    2б) Если этот виртуальный офер не стал интересен, то увеличиваем i и возвращаемся к шагу 1

                                                    > А используете этот подход (поиск наилучшей
                                                    > позы на распределении P) для управления уже
                                                    > открытой позы?

                                                    Да, конечно, оно «само» так и работает :) Если текущая позиция W', и ищется оптимальная позиция W'', то рассчитайте EnterSaldo по всем ранее заключённым сделкам приведшим к позиции W' + добавьте к нему сальдо открытия позиции dW = W''-W' по ценам стакана, максимизируйте ожидаемую полезность относительно W'', тогда вектор dW — это и будет управление позицией.

                                                    > Я то, наверное, через градиентный спуск сделать
                                                    > не смогу (не хватает матподготовки)

                                                    На самом деле не сложнее чем численное интегрирование. Пару слов о масштабе проблемы с производительностью:

                                                    — Градиентный спуск сойдётся наверное итераций за 20, в самой топорной реализации на каждой итерации надо посчитать полезность C*2 раза, где C кол-во страйков — итого примерно C*40 тяжеловесных операций;

                                                    — Перебор — если для инструментов рассматривать только варианты {лонг, нет позиции, шорт} это будет 3^C вычислений, при C = 6 перебор в 3 раза тяжелее и при никакой точности;

                                                    — У генетических алгоритмов с популяцией N, если мутирует K генов вероятность положительной мутации обратнопропорциональна C^K, на каждой итерации нужно посчитать полезность N*C^K раз, а точность решения будет порядка (1/N)^(1/C). Если популяцию взять 40, страйков 6, мутирующих генов 1, то уже после первой смены поколений генетика проигрывает градиенту по скорости, а точность примерно как у перебора с 3мя возможными состояниями {лонг, ноль, шорт}.
                                                      • anon
                                                        13 марта 2015, 06:19
                                                        Кирилл Браулов,

                                                        Не заметил Ваш новый большой пост, я тогда там вам и отвечу

                                                        UPD: пардон, это оказался этот же пост, но только внизу страницы, лучше отвечу здесь:

                                                        > Можете приоткрыть в общих чертах — как строите
                                                        > распределение P? Интуитивно или системно? ТА, ФА,
                                                        > прогоны на истории?

                                                        В посте про модель Хестнона, я начинал писать про приближение «сложного» распределения смешиванием нескольких «простых». Распределения P моделируется смесью двух логнормальных.

                                                        Сначала рассчитываются четыре момента Q. M1(Q) и M2(Q) отправляются в P без изменений. M3(P) и M4(P) моделируются регрессией от:
                                                        — предыдущих значения M3(P) и M4(P)
                                                        — текущих значения M3(Q) и M4(Q)
                                                        — текущей динамики M1(Q) и M2(Q)

                                                        Параметры компонентов смеси P находится при решении системы уравнений:
                                                        M1(P) = M1(Q)
                                                        M2(P) = M2(Q)
                                                        M3(P) = MODEL_OF_M3(...)
                                                        M4(P) = MODEL_OF_M4(...)

                                                        Регрессии для M3 и M4 оказались настолько устойчивыми, что я первый и последний раз их подбирал в 2012 году на данных за 2010 — 2012 года и больше ни разу не менял, мартовский и декабрьский форсмажоры переносятся более чем комфортно.

                                                        > Что думаете про идею учитывать распределение
                                                        > ОИ по страйкам?

                                                        Про ОИ думал, но не придумал. :) Вроде бы на предыдущей НОК был неплохой доклад на эту тему.
                                                        • anon
                                                          13 марта 2015, 13:54
                                                          PS: Перечитал те сообщения, Вы в ноябре писали как раз про нормированное усреднённое распределение: smart-lab.ru/blog/212273.php#comment3252496

                                                          Получилось его посчитать или решили как-то обойтись без него?
          • anon
            25 февраля 2015, 01:14
            Кирилл Браулов,

            собственно это разговор вокруг да около критерия Келли, попробуйте первоисточник:
            en.wikipedia.org/wiki/Kelly_criterion#Application_to_the_stock_market
  • >Собираюсь теперь прикрутить автоматический поиск комбинаций с помощью геналгоритмов
    --------
    А как же нейронные сети, нечеткая логика? Вангоалгебра и Ностардамусиндикейшены?
  • River
    24 февраля 2015, 08:45
    возможно имеет смысл протестить МО и ПФ уже целенаправленно под инструмент. навскидку пропорциональный колл спред на ртс не самая лучшая идея.
  • Александр Р
    24 февраля 2015, 09:18
    Кирилл Браулов,
    На последней картинке у Вас изображен backspread, а не ratio.
    Сам подход Ваш несколько оторван от реальной жизни, так как в большинстве случаев опционные позиции не удерживаются до экспирации, а трансформируются управлением.
  • roomka
    24 февраля 2015, 10:32
    Кирилл Браулов, Скажите пожалуйста, а что это у Вас за программа?
      • roomka
        24 февраля 2015, 14:50
        Кирилл Браулов, Понял спасибо)
  • К.О'Тяра
    24 февраля 2015, 11:23
    Как считается 'вероятность выйти в Б/У' — на момент экспиры? т.е. когда вся тэта и вега разложились? Понятно, почему продажа путов оказалась лучшей… ))

    Изыскания очень интересные. Но сама начальная посылка — «мы предполагаем рост и уверены в своем прогнозе на 5%. cоставляем смесь распределений» — очень модельная имхо. Качественный результат из нее можно получить, но вот количественный — какая поза лучше, какой страйк, размер профита — не уверен.

    Для меня направленная торговля опционами сводится к минимизации потерь за счет веги/тэты/дельты. Достичь уровня (определяются по ТА) и соотв.профита — вот цель. И минимально потерять при таком же ходе в противоположную сторону. Горизонт 3-7 дней.
    • Riskoff
      24 февраля 2015, 11:52
      cosmichorror, «Достичь уровня (определяются по ТА) и соотв.профита — вот цель. И минимально потерять при таком же ходе в противоположную сторону.»
      А какие комбинации для этого используете?
      • К.О'Тяра
        24 февраля 2015, 11:53
        1baks, обычно голые путы/колы… выбор страйка и момента — вот где искусство ))
        • Riskoff
          24 февраля 2015, 12:23
          cosmichorror, оно понятно )))
      • К.О'Тяра
        25 февраля 2015, 11:10
        Кирилл Браулов, за время собственной практики, я пришел к следующим двум выводам: 1) все что у вас дельта-занейтралено в позе — это кормежка MM (продавца) 2) все равно будет убыток за счет распада по тэте и веге, если движ не реализуется в ближайшие 1-2 дня

        Поэтому сейчас практикую голые путы/колы и стоп (в дельта-нейтраль) фьючем. Важно выбрать только момент входа (на эктремуме) и страйк.

        Зигзаг — фигура интересная, но в силу особенностей улыбки, работает преимущественно на предполагаемый движ вверх, (иначе — центр проседает из-за волы).
  • trander
    24 февраля 2015, 20:36
    а что за программа такая?
    • Drem
      25 февраля 2015, 06:51
      trander, программа у Кирилла очень хорошая, пользовался ею для парной торговли. Думаю, Кирилл сам лучше про нее расскажет.
        • Drem
          25 февраля 2015, 16:39
          Кирилл Браулов, я, с Вашего позволения, хотя бы ссылку на сайт оставлю, раз люди интересуются. такой продукт как Ваш не должен в тени оставаться. novationz.ru/
          • Hunter Option
            25 февраля 2015, 16:49
            Drem, Жаль через Квик у них подключения нет
  • Ruscash
    03 марта 2015, 18:08
    не понял почему «Пропорциональный обратный колл спрэд.
    Call Ratio Backspread» — в данной ситуации лучшая стратегия?
    Если есть предположение, что БА на момент экспирации будет на 86000 то он будет убыточным
    Во-вторых здесь походу не учитывается «тетта» — т.е. Call Ratio Backspread за 4 недели и за 3 дня по кривой доходности «live» будет разным и если цена застрянет на 86000, то будет убыток как раз не слабый!
    Идея с поиском комбинаций не плохая — но на мой взгляд ех нужно по другому искать
  • optionanalyser
    04 марта 2015, 10:12
    Кирилл, привет!
    Из Вашей задачи (как понял):
    — поиск. оптимальной позы для входа (и/или упр. тек. позицией – т.е. та же задача но с ненулевым «нач. условиями») – это задача сравнения, т.е. задача перебора. Различные его методы(генетика, гр.спуск, деревья и т.п.) – это только попытки уйти от полного перебора и у каждого есть свои «+» и «-» и особенности/условия применения.
    — оценка позы конечно может (или должна) проводиться несколькими параметрами, сам набор этих параметров проприетарен(имхо, отдельная тема – пропустим, чтобы не грузить топик). Но не факт, что их можно/нужно сводить к одной цифре, даже если этого как кажется «требует» к.л. метод поиска/перебора.
    — тема поиска опт.количества, имхо, это отдельная от поиска лучшей позиции задача. И это уже совсем др. сказка… )))

    Из практики:
    — несколько лет назад решил эту задачку с исп. ген. алгоритма. Пришлось придумать как уйти от одного числа в фитнес-функции. Т.е. это только кажется (вернее, так написано в учебнике ))) ), что для ген. алгоритма, как впрочем и для град. спуска и для др. методов, нужно число для оценки.
    — т.к. в опц. позе убытки(в том числе макс. могут быть больше тех, что на экспирацию) распределены по времени неравномерно, использовал платежную ф-цию на метки времени внутри прогнозируемого диапазона. Для этого пришлось использовать интегральную оценку позы по некой матрице/дереву девиаций цены БА и IV во времени. В этой оценке используется прогноз улыбок от времени и смещения БА + значения из этой матрицы.
    — в качестве распределения можно использовать реальное ист. распределение + коррекции собственного вью (их можно «вытаскивать» из: от аналитики до индикаторов ТА и оценок опц. серий)
      • optionanalyser
        04 марта 2015, 23:08
        Кирилл Браулов, это всего лишь «автоматизация», т.е. в ней самой по себе отсутствует некая идея/грааль, посему этот софт, имхо, полезен только для «массового производства» – или большое кол-во инструментов, или частое управление. Для малого кол-ва инструментов или ограниченного кол-ва идей/типов_поз средний человек быстро научается делать тоже «на глаз». Но на этапе анализа и/или проверки гипотез приятно получать «подсказки» от генетики. )))
        Оч. интересно — чиркните, пжл, в скайп, когда напишите, а то редко читаю этот ресур. А когда будете писать, подумайте о их первичности/очередности по времени на практике. Т.к. на мой взгляд, это разговор о мани- и риск- менеджменте. Они, конечно, взаимосвязаны и в основе каждого могут даже лежать одни и те же величины. Но на практике одну из них нужно решить сначала, а вторую уже потом, например как при игре в рулетку: сначала нужно определиться со стоимостью фишек(SL) исходя из депозита,…, а потом уже управлять входом. Т.е. начинают, имхо, возникать между ними «направленные» связи.

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

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