Блог им. eskalibur

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

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

В результате долгих поисков и исследований алгоритмов, мне не удалось найти что-либо стоящее в торговле интрадей из простых систем. Импульсные стратегии работали короткое время, 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
























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

Да, да. Там потенциал значительно больше. Иди туда.
Интересно, сколько человек прочитают этот пост до конца?
avatar
Несмотря на то, что многие с большим скепсисом отнеслись к моим публикациям по алгоритму маркетмейкера, испугавшись математических выкладок, еще находятся настоящие алгоритмисты, способные дойти до практического результата, и к тому же сделать исправления и улучшения в опубликованной программе. Пускай пока прибыльность невысока, но польза таких исследований огромна.Подобных практических статей на основе опубликованной теории и за рубежом не встретишь. А в том, что такие трейдеры, в итоге, возьмут свое у рынка, я даже не сомневаюсь. Eskaliburу огромный респект и большой удачи желаю
avatar
Да покуй все эти системы… можно взять самую простую и работать если у вас мозг работает в правильном направлении.А все роботы можно использовать только для входа удобства и выхода.Решение все равно принимает человек.Потому что если был бы такой робот то уже он забрал все бабки рынка и был бы капут.
avatar
sasha njrfhxer, про Секрета слышали?
avatar
sasha njrfhxer, к сожалению в Вашем случае лучший помощник это интуиция. Интуиция имеет громадный потенциал, правда её голос сложно услышать за бушующими волнами эмоций. Все простые системы к сожалению не работают, особенно в области хфт.
avatar
Eskalibur, поправлю — в хфт есть простейшие системы, основанные на latency arbitrage. Но для этого надо колокейшн и всякую шнягу для скоростного исполнения, и косты там очень большие. Но алгоритм там как три копейки:)
avatar
Eskalibur, у нас цель-то другая — создать систему. которая не умрет через месяц. А это должна быть стратегия, основанная на некоторой теории
avatar
uralpro, согласен...
latency arbitrage даже не рассматривал ввиду сумасшедшей конкуренции…
avatar
спасибо за статью.
кстати, на фортсе есть сбор за так называемые неэффективные транзакции, т.е. заявки которые не приводят к сделкам. К данной стратегии это вроде не относится, но лимит довольно низок и при определённых условиях они могут всю прибыль съесть и в минус загнать. Пара пробных роботов уже натолкнулось на такую хрень.
avatar
Artemunak, сколько отмененных транзакций на сделку было?
avatar
Eskalibur, было переставление 4х лимитников всего раз минуту, сделок на тех парах где переставлялось почти не было (может несколько), сняли 261р за сутки. Там подсчёт хитрый, я не осилил, если кто скинет нормальное объяснение как считают то буду рад.
avatar
Это взрыв мозга! Неужели нельзя что-то свое придумать простое? Все ваши бэты, гаммы и дельты, справедливые цены и т.д. и т.п. — не более чем иллюзия. В практике работают другие системы! Для чего эти теории вам вообще? В реальном трейдинге достаточно всего лишь в нужное время выставить заявку с нужным объемом и направлением.
avatar
SECRET, если вы скажите как определять когда выставлять заявку, в каком направлении и в каком объеме — с удовольствием буду использовать!
avatar
Eskalibur, это не сложно. Просто определите набор факторов, на которые реагирует рынок, домножьте значение каждого фактора на соотв. коэффициент, сложите и если это значение будет больше порога чувствительности, то кидайте заявку.
avatar
SECRET, на какие факторы реагирует рынок, вы пишите открыто. Мне не удалось определить устойчивый набор факторов на которые рынок реагирует.
avatar
Eskalibur, раньше работал фактор изменения цены SP500 например. Сейчас работают другие факторы. Нужно искать.
avatar
SECRET, вы правы, конечно, правильный сигнал есть — можно уже торговать. НО, если у вас еще есть система оптимального управления — вы будете впереди многих. У Eskalibura оптимальное управление есть, осталось дело за сигналом
avatar
uralpro, это уже другой вопрос, но даже в нем я не вижу в статьях ничего, что можно было бы применить к реальной торговле. Опять свои ноу-хау.
avatar
SECRET, а есть пример мертвого алгоритма? можно в личку)
avatar
Ivor, нет :) Все алгоритмы живы.
avatar
SECRET, живучие однако)
avatar
SECRET, Жил бы в Сочи, знал бы прикуп.
И еще одно золотое правило:

Если система не работает без усреднений, то она не работает.©
avatar
SECRET, при усреднении выбирается отдельный фактор или величина хода рынка?
avatar
Eskalibur, усреднение не нужно использовать совсем.
avatar
Eskalibur,

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

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

avatar
Очень хорошо. Правда, не увидел как учитывается волатильность? Думаю над алгоритмом стоит подумать. Пристроить волу и подумать про хедж. Спасибо автору. Сделана большая работа. Отрицательный результат путь к результату положительному. Желаю успехов, буду следить за публикациями.
как же много на сайте умных людей.даже стесняюсь плюсануть :/
avatar
спасибо за статью.
вообще, думаю, одному оч. тяжело идти по пути hft, нужна группа исследователей и разработчиков, нужно объединяться.
avatar
Ivor, :D Ничего тяжелого. Одного человека хватит, который знает программирование, основы математики и просто может адекватно воспринимать рынок ;)
avatar
SECRET, возможно вы правы, но легко так говорить, когда большую часть пути прошел)
не смотря на то, что я программист по профессии, от решения заняться алготрейдингом до первого простого робота было затрачено полгода, куча времени и нервов)
ну а теперь да, все достаточно просто кажется))
avatar

теги блога Eskalibur

....все тэги



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