Избранное трейдера Михаил Пиписькин
В процессе поиска собственной системы торговли я перепробовал довольно много всего, сейчас я могу сказать, что являюсь сторонником системной торговли и алготрейдинга. Одним из побочных результатов этого «увлечения» стало написание забавной программки с графическим интерфейсом, значительно облегчающей системную торговлю внутри дня, о которой я расскажу в этой статье после небольшого предисловия.
Не путать с работорговлей :). Как автор блога об алгоритмической торговле, считаю нужным выкладывать эквити моих роботов, которые запущены на бирже в настоящее время. В заглавии поста результаты за март, в процентах от капитала на начало месяца. В боевых торгах алгоритмы принимают участие с 10 марта.
Немного расскажу об используемых роботах. Общая архитектура этих программ основана на структуре robot_uralpro, но значительно усовершенствована в плане гибкости, что позволяет добавлять любой новый алгоритм без перестройки основного скелета робота, вплоть до опционных стратегий. Новый робот торгует валютным фьючерсом Si, но применяются некоторые элементы старого алгоритма robot_uralpro. Всего реализовано 3 стратегии на данный момент, в торгах принимают участие пока только две, третья не набрала достаточного количества статистики, так как медленнее остальных, поэтому только тестируется. Сделана диверсификация по параметрам для каждого алгоритма на 10 разных наборов, следовательно, торгуют одновременно как бы 20 роботов. Стратегии основаны на наблюдениях, сделанных при тестировании математических моделей, никаких ценовых паттернов не используется. Роботы подключены к бирже через Plaza2, колокейшена нет, выбран обычный хостинг с минимальным пингом до плазовских IP. На данный момент он равен 3 мс. Средний раундтрип заявок составляет около 10 мс. Эквити за один день — 23.03.2015 — на графике ниже. Выбрал, конечно, один из лучших:)
Трейдеры, которые приобрели мою программу robot_uralpro (см. пост на смарт-лабе), спрашивают, можно ли доработать алгоритм для применения его на современном рынке? Напомню, стратегия робота основана на взаимоотношении цен синтетического индекса, составляемого динамически из рыночных цен акций, входящих в индекс РТС, и фьючерса RI. Идея «одноногого» статистического арбитража, реализованного в роботе, будет работать и сейчас, только в том случае, если научиться правильно определять, какой актив опережает другой в смысле динамики их цен. Эта статья посвящена правильному выявлению такого взаимодействия, которое в англоязычных источниках называется «lead-lag relationship» -опережение-отставание между разными активами.
Те алготрейдеры, кто не приобретал robot_uralpro, тоже сочтут эту статью полезной, так как lead-lag relationship может использоваться в стратегиях парного трейдинга и им подобным. Например, определив такое взаимодействие, можно исключить из парного трейдинга один из активов ( с учетом того, конечно, что отношение торгуемых инструментов было описано четкой моделью) и значительно увеличить тем самым прибыльность стратегии.
Продолжаем разбирать численное решение уравнения Хамильтона-Якоби-Беллмана. В прошлой части мы составили выражение для оператора , в котором есть слагаемые, получить значение которых можно из реальных данных. Во-первых, что из себя представляют дифференциальные матрицы D1,D2. Это матрицы размерностью , где, для D1(согласно определению в части 4) в ячейках [j,j] стоят -1, если fj<0 и 1 в остальных случаях, в ячейках [j,j+1] стоят 1, если fj<0 и 0 в остальных случаях, и в ячейках [j,j-1] стоят -1, если fj≥0 и 0 — в остальных случаях. Как составить матрицу D2, я думаю, вы догадаетесь сами, взглянув на ее определение в
В прошлой части мы рассмотрели оптимальное управление inventory risk в маркетмейкерском алгоритме. Напомню, что формулы для нейтральной цены и оптимального спреда между лимитными ордерами были получены при допущении, что цена следует геометрическому броуновскому движению. Управление inventory risk для моделей цены, более приближенными к реальности, рассматривается, например, в статье Pietro Fodra & Mauricio Labadie «High-frequency market-making with inventory constraints and directional bets» . Однако, применить напрямую на практике алгоритмы из этих статей вряд ли получится, так как в них не учитывается действие adverse selection risk. Поэтому в данной части рассмотрим работу JIANGMIN XU «Optimal Strategies of High Frequency Traders», в которой автор делает попытку учесть этот вид риска, конечно, наряду с inventory risk.
1. Вероятность взятия ордера на стороне, противоположной движению цены в большинстве случаев выше, чем на стороне по направлению движения. То есть, если цена актива растет, то чаще будут исполняться ордера, выставленные на продажу, а ордера на покупку, соответственно — реже, в результате возникает убыточная позиция. В англоязычной литературе этот эффект называется
У многих возникают ситуации, когда нужно оценить визуально какие-либо зависимости. В большинстве случаев для этих целей используется Excel с построением временных рядов, не заслуженно обделяя многие другие гораздо более показательные диаграммы. Существует альтернативное средство более быстрого и удобного анализа описательных статистик с разнообразными диаграммами (средствами Excel многие из них не построить) и возможностью создания web-приложения для общего доступа. Касаться настоящей статистики с различными методами анализа данных не буду, только базовая описательная статистика (без проверки тестов и даже p-значения не будет) и разные диаграммы. В этой статье я опишу один из вариантов того, как можно проанализировать такую информацию, представить её в виде интерактивных диаграмм, и немного опишу про web-приложения. А чтобы было веселее смотреть на диаграммы, приведу их на примере финальной статистики ЛЧИ-2015. Как следует из названия статьи – делать это буду на R. Сразу обращаю внимание, учитывая результаты некоторых «уникумов» (со сверх большими стартовыми или доходами), многие графики не очень показательные (да и с разрешением здесь не очень получилось). В таком случае надо преобразовывать оси (хотя на первой диаграмме стартовая уже логарифмическая), или исключать эти «выбросы» или же разносить результаты на разные панели, или делать бегунок по осям, но в первом приближении и для ознакомления с разными диаграммами и так пойдет. Но если кому интересно, могу данные диаграммы в отличном качестве (большего размера) сделать в web-приложении Shiny и предоставить общий доступ (в публичном облаке Shinyapps).