Multifractal
Multifractal личный блог
29 марта 2021, 11:00

RTS: стратегия одностороннего «маркетмейкера»

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

Я приведу результаты бэктеста одной из своих перспективных стратегий, которую считаю отличной возможностью разогнать депозит. Длина тестового периода — 12 лет фьючерса RTS (т.е. склеены 48 квартальных контрактов).

Среднегодовая прибыль — 83%
Среднегодовая max[просадка] — 8.3%
Среднее количество сделок в день — 5.7
Средняя прибыль на сделку — 0.058%
Среднее время в позиции — 1.4 часа

Эффективность использования капитала (т.е. средняя процентная прибыль за 24 торговых часа удержания позиции) — почти 1%. Линейность графика доходности высокая как по шкале сделок, так и по шкале времени (в том числе и в силу хорошей частоты сделок, которая после введения ранних торгов станет ещё выше).

Это результат без плечей и без учёта издержек. Комиссии заберут примерно десятую часть прибыли (т.е. останется 75% годовых и 75 пунктов на сделку в текущих ценах Ri).

Многие скажут, что с учётом проскальзывания и спреда такая стратегия обречена. Но что если стать односторонним «маркетмейкером»? Полезная ликвидность Ri явно нужна. В случае присоединения к заявкам по лучшей цене (без последующего переставления) расходов на спред не будет. А вот закрывать позицию в большинстве случаев придётся всё же «по рынку», поэтому возникнет проскальзывание, зависящее от объёма.

От объёма позиции также будет зависеть и вероятность полного заполнения заявки при попытке открытия сделки. Но вернётся ли для этого цена? В моём случае она возвращается, даже если отодвинуть ордер подальше от спреда [ссылка]. Так что на высокую вероятность хотя бы частичного заполнения можно рассчитывать. И тут как раз весьма кстати то, что у алгоритма высокая доходность и без плеча (т.е. большой объём не требуется в принципе).

В целом, со вторым плечом на 100% годовых, думаю, ориентироваться можно (по крайней мере в пределе). Т.к. хороший программист в Киеве зарабатывает $50K в год, то для сопоставимого дохода мне нужна позиция на 35 контрактов Ri. Но и депозит нужен $50K, чтобы плечо было действительно второе, а средняя max[просадка] — примерно 20% от депозита.

  • жизнеспособна ли такая идея на практике?
  • насколько может отличаться реальный результат?
  • QUIK или MetaTrader лучше подходит для данной задачи?
  • требуется ли именно высокоскоростное подключение (PLAZA II)?
Алготрейдеры, что скажете?
55 Комментариев
  • Дмитрий Овчинников
    29 марта 2021, 11:09
    Среднегодовая max[просадка] — 8.3%

    Так среднегодовая или максимальная за 12 лет?
      • Антон Б
        29 марта 2021, 12:21
        Fractal, максимальную как раз и надо считать.
        она повторится 1 раз за следующие 12 лет.
        и 1/12 что в этом году.

          • Антон Б
            29 марта 2021, 12:41
            Fractal, вы получили что у вас за 12 лет был как минимум один худший год в 12.2%

            далее либо вы
            1) предполагаете что рынок остался таким-же и значит шанс 12.2% НЕ НИЖЕ чем 1/12 в год.
            2) предполагаете что рынок настолько изменился что предыдущая история ничего не значит и выкидываете бектест в корзинку.
  • Yan_Vas
    29 марта 2021, 11:23
    Особенность работы с лимитками на РИ: 

    1) Очень слаженно работают алгоритмы на отскоки от крупных лимитных заявок из-за чего даже 50-100 контрактов порой не дают войти по нужно цене; 
    2) То же самое с закрытием позиций, а закрытие по рынку лает ощутимое проскальзывание. 
    введения ранних торгов станет ещё выше

    Ранние торги вообще полный мрак, ликвидности нет от слова совсем. 
      • Yan_Vas
        29 марта 2021, 11:33
        Fractal, При позиции в 35 контрактов не уйдет, от 50 уже начинается…
  • Yan_Vas
    29 марта 2021, 11:28
    Среднегодовая прибыль — 83%
    Среднегодовая max[просадка] — 8.3%
    Среднее количество сделок в день — 5.7
    Средняя прибыль на сделку — 0.058%
    Среднее время в позиции — 1.4 часа

    Средняя сделка в тиках сколько составляет? 
      • Yan_Vas
        29 марта 2021, 11:36
        Fractal, 7,5 тиков? или 7 500 тиков? 
          • Yan_Vas
            29 марта 2021, 11:45
            Fractal, 
            Как-то маловато или мы не поняли друг друга? 
              • Yan_Vas
                29 марта 2021, 11:58
                Fractal, долго не живут

                Почему?)

  • Yan_Vas
    29 марта 2021, 11:30
    • QUIK или MetaTrader лучше подходит для данной задачи?

    Лучше Транзак Коннектор 
  • _sg_
    29 марта 2021, 11:34
    Закрывать позицию в подавляющем большинстве случаев придётся «по рынку», поэтому возникнет проскальзывание, зависящее от объёма.
    Вот это вызывает большой вопрос.
    А так нормально, вполне сойдет.
  • Дмитрий Овчинников
    29 марта 2021, 11:35
    Есть какие-то несоответствия в описании, которые нуждаются в пояснениях
    .
    1. Средняя сделка 75 пунктов (без учета издержек) и среднее время в позиции 1.4 часа. Это как????? Что вы делаете в сделке 1.4 часа с такой средней?
    Для примера: у меня в стратегиях с малой сделкой на Ri эти показатели равны соответственно около 30 (с издержками) и менее минуты :)

    2. Маркетмейкерская стратегия и 5.7 сделок в день. Это как? Количество сделок должно измерятся тысячами…
      • Антон Б
        29 марта 2021, 12:26
        Fractal, попробуйте на 1(2) контракте.
        если не взлети — 90% что так и будет, то закроет вопрос с поиском денег.

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

        под бектест никто 50к usd не даст и правильно сделает.
        а го на 1-2 контракта можно и самому выделить.
          • Антон Б
            29 марта 2021, 12:53
            Fractal, если тестить все равно придется на свои 50к рублей.
            то смысл в статье?

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


  • Андрей К
    29 марта 2021, 11:58
    Кто что думает по этому поводу из алготрейдеров? Шпионы, а вы чего молчите?
    Возьму смелость и попробую ответить за всех. Пока что видно, что пороху в подобных стратах не понюхали, поэтому лень реагировать. Почему я так подумал? Хотя бы по бектесту (ну или по задаваемым вопросам). Вы тестите в метаке судя по всему, а подобные страты немного далеки от реалий по тестам по тикам. Желательно тестить маркетмейкерские стратежки по лучшему bid/ask. 
     но, похоже, что скоро всё сделаю сам.
    это подход нормальный. Пощупайте, что там и как. Когда сделаете выводы и зададите правильные вопросы в топике, наверняка это все будет выглядеть по другому.
    • Дмитрий Овчинников
      29 марта 2021, 12:02
      Андрей К, 
      маркетмейкерские стратегии по-моему вообще бесполезно тестить.
      У меня есть прототип, который на демо-контуре делает 10% в день.
      На реале кое-как отбивает затраты.
      • Андрей К
        29 марта 2021, 12:11
        Дмитрий Овчинников, не раз на конфах слышал, как коллеги по цеху рассказывают, что они такие делают =) В смысли бектестеры. 

        Как по мне, чем проще страта, тем она понятнее. Там день-два на бою погонять, посмотреть ленту вокруг себя, ордерлог и тд и предельно становится понятно, где ты, что ты и что со всем эти делать и надо ли =) Но это чисто по опыту.

        Другой момент, что бывают аховые дни. Или резкое падение ликвидности или резкий взрыв волы или то и другое одновременно. Сразу на опыте такие дни не выедешь. Если только опыт, накопленный за пару лет. Тут бы конечно бектест помог. Хорошо, что таких нерядовых дней мало в году, знаю, что многие просто отключаются и все.

  • Reznor
    29 марта 2021, 12:29
    Как уже отмечено выше, трейды с коротким тейком должны быть быстрыми, 1-2 мин максимум. Иначе это уже рендом. 1,5 часа в сделке, чтобы взять 8 тиков, это ни в какие ворота…
    • Антон Б
      29 марта 2021, 12:38
      Reznor, как раз эти 1.5 часа и дают 10% шанс что это живая стратегия.
      потому что если бы он в тестере тестил на секундах то ценности вообще в бектесте было бы 0.

      а эта (не очень большая ) альфа может набираться 1.5 часа.

      • Yan_Vas
        29 марта 2021, 12:41
        Антон Б, Лично для меня 1.5 часа в борьбе за 8 тиков, это говорит о контртрендовой составляющей стратегии. Или вход в завершающей стадии движения, где как-бы 100% тренд.

        • Антон Б
          29 марта 2021, 12:43
          Yan_Vas, что там что-то теоретически может быть.
            • Антон Б
              29 марта 2021, 16:20
              Fractal, в пользу того, что тестер, который не умеет тестировать живущих в стакане роботов.
              хоть сколько-нибудь что-то оттестил похожее на правду.
          • Yan_Vas
            29 марта 2021, 16:03
            Fractal, Руками забирать 7-8 тиков 5-6 раз в день, это норм. Но для робота мне кажется маловато. Ты не подумай, это не камень в твой огород, просто интересно, пост не шибко подробный, про стопы не указано. 

            Я не просто докапываюсь, у меня есть люди которые готовы вложиться в хорошие проекты 
      • Reznor
        29 марта 2021, 12:52
        Антон Б, 1,5 часа это целая вечность для страты с коротким тейком. Слишком много случайных факторов и событий может произойти за это время, которые размоют всю альфу, если конечно она там была. 
        Для таких страт должно быть все наоборот. Чем меньше время удержания позы — тем лучше.
        • Антон Б
          29 марта 2021, 13:00
          Reznor, я полностью с вами согласен.
          но проверить такие короткие стратегии технически очень сложно.
          и гораздо дешевле и надежнее проверить их на 1-2 живых котрактах.

          сам бектест (система эмуляции трогов) который теоретически способен это проверить будет стоить БОЛЬШЕ  50к usd.
          • Reznor
            29 марта 2021, 13:09
            Антон Б, 
            сам бектест (система эмуляции трогов) который теоретически способен это проверить будет стоить БОЛЬШЕ  50к usd.

            Что то слишком дорого. Я такие тесты под конкретную страту за пару дней писал на С#, хоть я и не проф программист ни разу.
            • Антон Б
              29 марта 2021, 13:16
              Reznor, Вы предполагаете что ваши позиции в стакане не изменят поведение других игроков.
              что вы можете встать с краю стакана и боты не переставятся в следующем слепке стакана, для примера.
              и т.д.
              даже если вы собираете стакан,
              а Вы это делаете?

              Вы алготрейдер эксперт.

              ЛЧИ 2012 — №31 в общем зачете;
              ЛЧИ 2013 — №5  в общем зачете; №2 в группе лучший активный трейдер;
              ЛЧИ 2015 — №14 в группе лучший активный трейдер;

              «за пару дней соберу бектест из своего кода и еще у меня 20 лет опыта»

              Сколько у Вас стоит год работы?
              Как раз эти 50к?
              Или это за 6 месяцев всего?
  • Сергей
    29 марта 2021, 13:20
    😂 «Планирую становиться первым в стакане» — Это должен быть заголовок статьи.
      • Антон Б
        29 марта 2021, 13:56
        Fractal, никаким. первый в ликвидном стакане это мм который либо сама биржа.
        либо брокер который по факту сама биржа.
        и это стоит гораздо дороже ваших мифических 50к (скорее всего 2 ваших годовых зп).

      • Сергей
        29 марта 2021, 14:17
        Fractal, мне трудно сказать я могу только предполагать например поставить достаточно далеко от спреда заявку в 6.59 13.55 итп в ожидании что остальные вас не опередят и ждать весь день как цена к ней подойдет. А практически нужно отдельный  SOC кристалл или на крайний случай ПЛИС со встроенными эзернетами и прочим в датацентре. Настоящий  маркет мейкер пока ваша заявка частично исполнилась — уже обложил остаток по краям бидасками вот такая у него скорость. А вообще спросите у smart-lab.ru/my/uralpro/ — он точно знает. Хотя можно быть и медленным маркетосом для примера посмотрите как работала группа роботов Robot_Slavyan и.т.п на прошлых ЛЧИ.
  • О'Грин
    29 марта 2021, 16:49
    Автор за столько лет работы на рынке не заработал себе депо, чтобы тестить систему в реале парой коней? Или проблема в том, что автор в Киеве? Ну так это проблема и для «инвестора».
     А насчёт ликвидности — так есть же брент, без дыр в стакане, и сожрёт любые объёмы, благо его котируют не на моськухне.
  • uralpro
    29 марта 2021, 16:56
    С первым тезисом не согласен, почти все с точностью наоборот. Нужно стремиться к наибольшему количеству сделок пока позволяет комисс и технологический сетап. Это дает минимизацию просадок, устойчивость эквити при рабочей стратегии и близость результатов бэктеста и реала.
    Объем будет перевариваться тем меньше, чем больше частота сделок, но есть способы как с этим справиться, до некоторой степени.  Насчет просадки — будьте уверены, что максимальная просадка на бэктесте будет превышена в реале. Это вообще самый главный показатель. Лучше пожертвовать 10% прибыли, но уменьшить просадку на 3%. Качество эквити возрастет в разы.
    Чтобы быть первым в стакане, без колокации и подключения FIX/FAST ничего не получится. И даже с ними не получится, если вы не программировали раньше real-time профессионально. Релевантность теста за 12 лет тоже сомнительна, рынок даже после повышения комиса совсем другой, а это было всего года 2 назад. Ну и тестирование по ценам close минуток, это конечно не для высокочастотной торговли. А любой маркет мейкер, даже если у него 6 сделок в день, это HFT, потому что если вы вовремя не убираете заявки при adverse selection — вы становитесь кормом для остальных HFT
      • uralpro
        30 марта 2021, 11:42
        Fractal, adverse selection это довольно сложное понятие, много академических исследований на эту тему можно найти. Если совсем просто, то это ситуация, когда сбивается ваш ордер, а цена продолжает идти в сторону противоположную вашей возникшей позиции. Adverse selection присутствует на рынке всегда из-за наличия информированных участников. В силах маркет мейкера только уменьшить вероятность такой ситуации. В первую очередь за счет стратегии, во вторую — за счет скорости. В вашем бэктесте по минуткам вряд ли можно эффективно учесть этот факт. Даже в бэктесте на полном ордерлоге это очень не простая задача. Проще говоря, если у вас маркетмейкерская стратегия и нет технологического сетапа, обеспечивающего скорость, ничем иным, кроме корма, на рынке вы не станете. 
        Я не совсем понимаю, что значит поставить  ордер ближе к границе спреда. Если вы имеете в виду лучший бид/аск, ну и выставляйте ордер по эти ценам. Только видимые лучшие цены — это не факт, а всего лишь вероятность. Пока вы выставляете ордер, они могут измениться, и происходит это в микросекунды, и в те моменты, когда уже лучше этот ордер не выставлять, а отменить :) И забудьте вы о свечах, если хотите сделать что то более или менее рабочее. Активность на рынке возникает не по свечам, а в любую наносекунду, если этого требует изменившаяся рыночная ситуация
  • bascomo
    29 марта 2021, 22:46
    Фьючерс — он сам по себе плечо)

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

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