Eskalibur
Eskalibur личный блог
08 июля 2015, 17:03

Тестирование алгоритма маркет-мейкинга

Тестирование алгоритма маркет-мейкинга
Пролог.

В результате долгих поисков и исследований алгоритмов, мне не удалось найти что-либо стоящее в торговле интрадей из простых систем. Импульсные стратегии работали короткое время, MeanReversion практически не работали никогда. Исследования с использованием однородных фильтров (скользящих средних), коэффициентами бета, средними регрессиий, были очень продолжительными. Они также затронули область многоуровневого маркет-мейкинга, в котором основной вопрос сводился к правильному определению нулевого уровня. До этого применялись достаточно успешно трендовые торговые системы (на длительных интервалах), и парный трейдинг. Основная черта всех торговых стратегий, жёстко алгоритмизированных, состоит в том что рано или поздно они перестают работать. Надо этот факт учитывать в применении торговых систем. С этой точки зрения считаю очень полезной статью которая даёт обоснованный алгоритм оценки работоспособности системы (ссылка на статью www.quantalgos.ru/?p=567). Кроме этого, необходимо обязательно диверсифицировать системы по параметрам, и по «движку». Преимущественно методы диверсификации необходимо применять в парном и баскет трейдинге. Часто бытует мнение, что парная торговля это граальные системы. Но разочаровывающий опыт показывает, что только широкая диверсификация и большой капитал способны парную торговлю сделать прибыльной в долговременной перспективе. Тем не менее поиски более эффективной торговли продолжаются. Ниже я приведу результаты исследований стратегии маркет-мейкинга, благожелательно опубликованной автором сайта http://www.quantalgos.ru   (начало www.quantalgos.ru/?p=51  smart-lab.ru/blog/244854.php).

Разобраться в этой статье лично для меня было сложно. Я всё время сталкивался с ошибками и недочётами как в статье (в оригинале), так и с собственными ошибками, допущенными в программе, либо в алгоритме. Пожалуй наибольшее затруднение вызвали некоторые нераскрытые подробности вычисления функции владения. Конечно же незнание ТЭУ добавляли неопределённости в поисках. Кроме того непростой (для меня) математический аппарат также вызывал определённые затруднения. 

Дисбаланс объемов.

«Если ты неуч и молчишь, то ведешь себя умно, если же умен и молчишь, то глупо.» Теофаст.

В статье рассматривается алгоритма маркет-мейкинга основанный на сигнале дисбаланс объемов. Есть ряд исследований в которых утверждается что основой движения цен на товарных биржевых рынках является дисбаланс объемов в Limit Order Book, причем дисбаланс Best Bid и Best Ask. На основании этого сигнала и ряда собираемых данных определяется оптимальная функция управления портфелем, которая призвана  максимизировать прибыль участника торгов. Почему дисбаланс объемов? Впринципе-это логично. При росте цены, постоянно поступающие биды поглощают аски формируя дисбаланс. Невыполненные агрессивные биды добавляют своё значение к балансу статических бидов. Кроме того очевидный дисбаланс подключает к работе скальперов и фронтраннеров и т.п. Все это очевидно работает на наиболее ликвидных рынках, где по обе стороны от средней цены стоят большие капиталы, которые хотят подешевле купить или продать. На мой взгляд на ФОРТСе этот сигнал слабо эффективен, именно поэтому все исследования и вычисления политик проводились для фьючерса Si, как самого ликвидного фьючерса. 

Для расчётов использовались следующие переменные:

Максимальное количество фьючерсов в портфеле 10.

Количества значений спреда 10.

gamma = 1.

Шаг дискретизации дисбаланса объемов 50.

Максимальное значение дисбаланса объемов 5.

Все расчёты приведены для t=0. Расчёт политик ведётся всего-лишь на несколько секунд, так как в торговле  политики приближающиеся к T (время окончания торгов) используются только при закрытии в данной статье они не рассматриваются.

Смотрим на полученные политики для t=0:
Тестирование алгоритма маркет-мейкинга 
 Видно, что при нулевом спреде, основная политика это маркет-мейкинг, -в случае отклонения дисбаланса при попадании в синюю зону портфель просто закрывается рыночным ордером. ТЭУ считает, что это оптимально при текущем сигнале и спреде.

Тестирование алгоритма маркет-мейкинга 
при спреде =1, появляются пингинг зоны. Зону в которых вместо рыночного ордера используется лимитный ордер расположенный на best ask-minstep и bestbid+minstep. Что дешевле чем использование рыночного ордера. Смотрим как меняются политики при увеличении спреда:
Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга

Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга

Видно, что при увеличении спреда, политики качественно не меняются, лишь увеличивается объем инвентори. Т.е. стратегия при увеличении спреда пытается встать лимитником внутрь спреда по лучшим ценам, а потом при его всхлапывании совершить обратнуюю операцию на противоположной стороне.

Посмотрим на резултаты бектеста:
Тестирование алгоритма маркет-мейкинга 


Количство сделок 7563, профит=2110.  В таком виде торговать нельзя.  Вводим фильтр — используем Make Strategy только при S>4Тестирование алгоритма маркет-мейкинга
Вот это уже результат. количество сделок = 2531, профит = 1886. С учетом комиссии биржи -632 рубля и брокеру  получается доходность в размере 500 — 600 рублей. Теперь посмотрим какое количество контрактов использовалось в торговле:

Тестирование алгоритма маркет-мейкинга

Видно что в торговле принимало участие не больше 3-х контрактов фьючерса. На мой взгляд, при таком странном сигнале, как дисбаланс объемов получить такую доходность испльзую функцию оптимального управления — это очень хорошо.  

Увеличение количества торгуемых контрактов к сожалению вывело доходность в отрицательную зону. Правда увеличение было осуществленно просто уменьшением коэффициента gamma = 0.1. Этот коэффициент отвечает за риск отводящийся алгоритму. Почему произошло смещение в отрицательную сторону — этот вопрос требует дополнительного исследования. Вероятно предиктивная способность сигнала слаба, в связи с чем взятие высокого риска нецелесообразно.

Ниже функция управления при спреде=1, Max Inventory = 20, gamma=1.
Тестирование алгоритма маркет-мейкинга 

Тестирование алгоритма маркет-мейкинга
Тестирование алгоритма маркет-мейкинга

Объем учавствующих контрактов увеличился до 11, но к сожалению стратегия оказалась убыточной при такой gamma. Слишком высокий риск. Очевидно, для увеличения доходности необходимо увеличивать минимальное количество лотов в сделке. Этот факт, требует некоторой доработки алгоритма и программы и в данной статье исследоваться не будет.

Также исследовалось применение усреднения дисбаланса объемов, — к сожалению результаты не оправдали ожиданий, и также не рассматриваются в статье.

Выводы

Как показали исследования, у алгоритма есть потенциал для исследования и использования. Он не прост, как в понимании так и в реализации. Но возможно простые идеи в интрадей торговле уже не работают. Мною не проводились исследования в области PIN, машинного обучения, нейронных сетей — возможно там потенциал значительно больше. Может быть там скрываются немыслимые торговые секреты, которые могут помочь заработать в процессе интернет трейдинга.

Заключение.

Для страждущих сразу хочу подчеркнуть, что реализовать данную стратегию с прибылью не удалось.  В первую очередь по причине уникальности бектеста. В процессе бектеста есть сигналы которые в реальности не появляются. Вероятно по причине того что данные приходят пакетами. Кроме того, в реальных торгах часто появляются сделки которых нет в бектесте, — по причине того, что заявки не успевают сниматься когда условия их размещения исчезают. Честно говоря расхождения реальных торгов с бектестом несущественные. На медленных стратегиях (около 200-800 сделок в день) совпадение реального тестирования и бектестирования составляет около 90%. Ниже представлены два скрина показывающие насколько реальные трейды (зелёная линия профита) отличаются от бектеста (красная линия профита).
Тестирование алгоритма маркет-мейкинга 

ниже (другой инструмент) расхождения очевидны, в сторону ухудшения реальных результатов торгов.
Тестирование алгоритма маркет-мейкинга

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

В завершении отмечу, что получаемая в результате моделирования функция управления, есть ни что иное, как пулемёт, который говорит когда стрелять,  куда стрелять и сколько стрелять.  Осталось лишь правильно настроить...
Тестирование алгоритма маркет-мейкинга 


см. статью также на сайте: www.quantalgos.ru/?p=1233
























 
38 Комментариев
  • Pringles
    08 июля 2015, 17:09
    картинки красивые, прям импрессионизм
  • Мною не проводились исследования в области PIN, машинного обучения, нейронных сетей — возможно там потенциал значительно больше. //

    Да, да. Там потенциал значительно больше. Иди туда.
  • Ольга
    08 июля 2015, 17:42
    Интересно, сколько человек прочитают этот пост до конца?
  • uralpro
    08 июля 2015, 17:44
    Несмотря на то, что многие с большим скепсисом отнеслись к моим публикациям по алгоритму маркетмейкера, испугавшись математических выкладок, еще находятся настоящие алгоритмисты, способные дойти до практического результата, и к тому же сделать исправления и улучшения в опубликованной программе. Пускай пока прибыльность невысока, но польза таких исследований огромна.Подобных практических статей на основе опубликованной теории и за рубежом не встретишь. А в том, что такие трейдеры, в итоге, возьмут свое у рынка, я даже не сомневаюсь. Eskaliburу огромный респект и большой удачи желаю
  • sasha njrfhxer
    08 июля 2015, 17:46
    Да покуй все эти системы… можно взять самую простую и работать если у вас мозг работает в правильном направлении.А все роботы можно использовать только для входа удобства и выхода.Решение все равно принимает человек.Потому что если был бы такой робот то уже он забрал все бабки рынка и был бы капут.
    • uralpro
      08 июля 2015, 17:47
      sasha njrfhxer, про Секрета слышали?
      • uralpro
        08 июля 2015, 17:59
        Eskalibur, поправлю — в хфт есть простейшие системы, основанные на latency arbitrage. Но для этого надо колокейшн и всякую шнягу для скоростного исполнения, и косты там очень большие. Но алгоритм там как три копейки:)
      • uralpro
        08 июля 2015, 18:01
        Eskalibur, у нас цель-то другая — создать систему. которая не умрет через месяц. А это должна быть стратегия, основанная на некоторой теории
  • Artemunak
    08 июля 2015, 18:28
    спасибо за статью.
    кстати, на фортсе есть сбор за так называемые неэффективные транзакции, т.е. заявки которые не приводят к сделкам. К данной стратегии это вроде не относится, но лимит довольно низок и при определённых условиях они могут всю прибыль съесть и в минус загнать. Пара пробных роботов уже натолкнулось на такую хрень.
      • Artemunak
        08 июля 2015, 18:43
        Eskalibur, было переставление 4х лимитников всего раз минуту, сделок на тех парах где переставлялось почти не было (может несколько), сняли 261р за сутки. Там подсчёт хитрый, я не осилил, если кто скинет нормальное объяснение как считают то буду рад.
  • SECRET
    08 июля 2015, 19:02
    Это взрыв мозга! Неужели нельзя что-то свое придумать простое? Все ваши бэты, гаммы и дельты, справедливые цены и т.д. и т.п. — не более чем иллюзия. В практике работают другие системы! Для чего эти теории вам вообще? В реальном трейдинге достаточно всего лишь в нужное время выставить заявку с нужным объемом и направлением.
      • SECRET
        08 июля 2015, 19:11
        Eskalibur, это не сложно. Просто определите набор факторов, на которые реагирует рынок, домножьте значение каждого фактора на соотв. коэффициент, сложите и если это значение будет больше порога чувствительности, то кидайте заявку.
          • SECRET
            08 июля 2015, 19:22
            Eskalibur, раньше работал фактор изменения цены SP500 например. Сейчас работают другие факторы. Нужно искать.
        • uralpro
          08 июля 2015, 20:02
          SECRET, вы правы, конечно, правильный сигнал есть — можно уже торговать. НО, если у вас еще есть система оптимального управления — вы будете впереди многих. У Eskalibura оптимальное управление есть, осталось дело за сигналом
          • SECRET
            08 июля 2015, 20:28
            uralpro, это уже другой вопрос, но даже в нем я не вижу в статьях ничего, что можно было бы применить к реальной торговле. Опять свои ноу-хау.
        • Ivor
          08 июля 2015, 21:14
          SECRET, а есть пример мертвого алгоритма? можно в личку)
          • SECRET
            09 июля 2015, 00:25
            Ivor, нет :) Все алгоритмы живы.
            • Ivor
              09 июля 2015, 00:35
              SECRET, живучие однако)
    • Дмитрий Новиков
      08 июля 2015, 19:16
      SECRET, Жил бы в Сочи, знал бы прикуп.
  • SECRET
    08 июля 2015, 19:13
    И еще одно золотое правило:

    Если система не работает без усреднений, то она не работает.©
      • SECRET
        08 июля 2015, 19:20
        Eskalibur, усреднение не нужно использовать совсем.
      • Вадим Март
        05 апреля 2018, 07:06
        Eskalibur,

        Александр, не могу вам написать лично так, как не хватает рейтинга. 

        Оставьте, пожалуйста ваш скайп для связи у меня в личке. Хотел бы с вами по сотрудничать.

  • Дмитрий Новиков
    08 июля 2015, 19:34
    Очень хорошо. Правда, не увидел как учитывается волатильность? Думаю над алгоритмом стоит подумать. Пристроить волу и подумать про хедж. Спасибо автору. Сделана большая работа. Отрицательный результат путь к результату положительному. Желаю успехов, буду следить за публикациями.
  • Tуземец
    08 июля 2015, 20:43
    как же много на сайте умных людей.даже стесняюсь плюсануть :/
  • Ivor
    08 июля 2015, 21:02
    спасибо за статью.
    вообще, думаю, одному оч. тяжело идти по пути hft, нужна группа исследователей и разработчиков, нужно объединяться.
    • SECRET
      08 июля 2015, 21:04
      Ivor, :D Ничего тяжелого. Одного человека хватит, который знает программирование, основы математики и просто может адекватно воспринимать рынок ;)
      • Ivor
        08 июля 2015, 21:10
        SECRET, возможно вы правы, но легко так говорить, когда большую часть пути прошел)
        не смотря на то, что я программист по профессии, от решения заняться алготрейдингом до первого простого робота было затрачено полгода, куча времени и нервов)
        ну а теперь да, все достаточно просто кажется))

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

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