4 мая 2015 QuantAlgos
Неплохую идею для высокочастотного трейдинга подсказал Kipp Rogers в своем блоге. Идея несложная, но требующая подробного объяснения, поэтому попробую изложить ее в двух статьях.
Автор предположил, что лучшее исполнение ордеров, отправленных на биржу, скорее возможно получить, торгуя с трейдерами - людьми, вручную отправляющими приказы, чем с компьютерами, то есть контрагентами с автоматическим выставлением. Высокочастотные роботы отправляют приказы на биржу только в том случае, если они видят возможность быстрого снятия прибыли или ищут наилучшую цену исполнения для больших объемов, что делает соревнование с ними очень тяжелой задачей. С другой стороны, трейдеры, торгующие вручную ( под ними могут подразумеваться и автоматические программы с медленными алгоритмами ) , выставляют приказы с большим временем жизни (до отмены или исполнения), меньше внимания уделяют мгновенной цене и, как правило, имеют идею о направлении движения цены при входе в рынок, что также дает представление о поведении их ордеров.
Таким образом, для высокочастотного алгоритма было бы естественно искать ордера с длительным временем жизни в биржевом стакане, надеясь получить лучшее исполение для собственной стратегии. Конечно, большинство ручных ордеров будут маркет ордерами, поэтому в стакане мы их не увидим. Наша задача - найти лимитные "ручные" ордера. Сначала рассмотрим график времени жизни всех лимитных ордеров отправляемых на биржу:
Как видно, больше половины высокочастотных ордеров (HFT) отменяются в течение 1 секунды после постановки. Другая картина для инвестбанков (IB) и остальных участников - половина их ордеров имеет время жизни более 10 секунд.
Далее построим график, который отражает поведение цены актива до и после исполнения ордеров с разным временем жизни (для биржи Nasdaq):
На верхнем графике отражена цена актива до и после исполнения сделки с точки зрения пассивной стороны. Если ордер имел время жизни менее 100 мсек (красная штриховая линия) то после исполнения следующих 100 акций он терял около 0,2 центов на акцию (20 mils на графике), в то время как ордер, имеющий время жизни более 1 сек, терял уже около 0,5 центов на акцию. Нижний график отражает объем акций, проходящий на бирже, до и после сделки. В заглавии поста подобный же график приведен для биржи Bats, где этот эффект также присутствует.
Разница в 0,3 цента достаточно значительна для того, чтобы попробовать создать высокочастотный алгоритм, эксплуатирующий эту неэффективность рынка. Первую идею, что приходит на ум, можно сформулировать так:
- когда мы видим начало исполнения достаточно "старого" ордера в ленте сделок биржи, немедленно посылаем маркет ордер по той же цене, пытаясь торговать против оставшейся ликвидности на этом уровне.
Нужно отметить, что описанный выше эффект потери стоимости после исполнения ордеров с большим уровнем жизни, наиболее заметен для дорогих акций, и на некоторых определенных американских биржах значительнее, чем на других - автор отмечает биржу Direct Edge.
На графике ниже показана прибыль стратегии, которая просто повторяет все сделки, происходящие на бирже, без учета времени жизни ордера:
Симуляция производилась для ордера объемом в 1000 акций, при копировании сделок на активах с разной ценой и имитировались разные объемы исполнения этого ордера. Зеленая линия - цена акций от 30 до 70 долларов, исполненный объем от 99 до 301 акции, синяя линия - цена акции от 30 до 70 долларов, исполненный объем от 301 до 1001 акции, красная штриховая линия - цена акции от 70 до 1500 долларов, исполненный объем от 99 до 301 акции, голубая штриховая линия - цена акции от 70 до 1500 долларов, исполненный объем от 301 до 1001 акции. Из графика можно сделать вывод, что наилучший результат после исполнения сделки показывают дорогие акции с присутствием лимитных ордеров большого объема.
Теперь учтем время жизни лимитных ордеров, появляющихся в ленте сделок с пассивной стороны. Для упрощения будем рассматривать только ордера со временем жизни более 5 секунд. Сформулируем основные пункты стратегии:
Отмечаем в стакане ордера объемом более 100 акций и временем жизни более 5 секунд.
Если мы видим в ленте сделок начало исполнения ордера, отмеченного в п.1, посылаем маркет ордер против ликвидности, остающейся в стакане.
Объем отправляемого ордера составляет 1000 акций, чтобы взять как можно больший объем, находящийся на этом уровне.
Проделываем выше описанное для акций дороже 70 долларов, цена посылаемого ордера на один шаг цены хуже цены сделки, для лучшего исполнения.
В результате бэктеста такой стратегии получаем:
Красная штриховая линия - прибыль стратегии при уровне исполнения ордера от 99 до 301 акции, голубая - при уровне от 301 до 1001 .
Автор находит подобный результат замечательным. Это простая стратегия, без параметров, без опасности подгонки на истории, и может быть спроектирована в высокочастотном исполнении. По подсчетам автора, если частота сделок составит около 7000 в день, при комиссии 0,5 цента за акцию, прибыль алгоритма может составлять до 10К долларов в день. Конечно, это результаты симуляции, и в реальной торговле результат может быть хуже, но тем не менее, есть солидное позитивное ожидание. Также можно отметить, что в стратегии не сформулирован алгоритм выхода из позиции, подразумевается выход по времени, которое можно определить по вышеприведенному графику.
В следующей статье о данной стратегии рассмотрим улучшенный алгоритм, в котором будет использована дополнительная неэффективность, замеченная автором.
В прошлой части нами было сделано наблюдение, что для присутствующих на рынке высокочастотных алгоритмов характерна высокая частота отмены биржевых ордеров. В данной статье мы уделим внимание еще одной особенности HFT роботов - малому объему ордеров, генерирумых подобными стратегиями.
Автоматические стратегии стараются отсылать биржевые приказы, которые содержат небольшие количества акций или лотов. Маркет мейкеры делают это для того, чтобы выборочно торговать с небольшими контрагентами, обходя сильные движения, вызываемые крупными покупками или продажами. Исполнительные алгоритмы отсылают небольшие ордера, чтобы скрыть свои намерения о реализации крупных объемов, избегая тем самым сильного воздействия на цену. Чтобы проверить, действительно ли существуют описанные тенденции на рынке, построим график движения цены, с точки зрения пассивной стороны трейда, после взятия всех ордеров на конкретном уровне для двух ситуаций - когда малые ордера принимают участие в данном трейде, и когда их нет. За малый объем ордера примем 2 целых лота и менее:
Приведен график для биржи Nasdaq. Желтая линия - ордера с временем жизни менее 1 сек при присутствии на рынке малых ордеров, зеленая линия - ордера с временем жизни менее 1 сек при отсутствии малых ордеров, синия линия - время жизни до 1 дня, присутствуют малые ордера, красная линия - время жизни до 1 дня, малые ордера отсутствуют. В заглавии поста приведен подобный график для биржи Direct Edge.
Как видно из графиков, для ордеров с времени жизни более 1 сек,при отсутствии малых ордеров, возникает ситуация низкой ликвидности, при которой, в случае биржи Nasdaq, исполненный лимитный ордер теряет около 1 цента в стоимости. То же самое происходит и на бирже Direct Edge, получается синергетический эффект при разделении ордеров по времени жизни и отсутствию малых ордеров на бирже. По утверждению автора, он наблюдал данный эффект на всех американских биржевых площадках, которые протестировал.
Если бы рынок был действительно эффективным, мы бы наблюдали гораздо меньший ценовой скачок такого типа. Автор также отмечает, что присутствие или отсутствие малых ордеров имеет несколько иную природу, чем эффект времени жизни ордера, потому что изменить объем гораздо легче для стратегии, чем менять длительность экспозиции ордера. Это приводит к малой кореллированости этих событий, что позволяет добавить еще одно измерение в наш алгоритм.
Сформулируем основные пункты нашей новой стратегии, которая должна серьезно улучшить производительность в сравнении с алгоритмом в прошлой части. Напомним, что ранее мы отсылали рыночный приказ, как только видели начало исполнения ордера с большим временем жизни. Шаги новой стратегии:
Мониторим все биржевые лимитные ордера с лотами <=2 во время их постановки.
Если ордер, имеющий время жизни более 5 сек, начал исполняться и при этом отсутствуют ордера с малыми объемами и временем жизни менее 100 мсек, то:
Отправляем рыночный приказ против оставшейся ликвидности по той же цене. Отметим, что в этой стратегии, в отличие от прошлой, мы не ограничены только дорогими акциями. В оригинальной статье автор предлагает мониторить ситуацию на нескольких биржах, а приказ отправлять на одну из них. В случае российиского рынка надо проверять ситуацию, например, для FORTS и спота, или попробовать делать все на одной площадке.
На графике ниже показан результат тестирования стратегии, когда в качестве сигнала использовалась биржа Nasdaq, а приказы отсылались на Bats:
Наблюдается низкий объем торгов при ситуации, когда приходит сигнал на выставление приказа, но все равно алгоритм показывает хорошую прибыль, особенно на бирже Direct Edge. У автора прибыль на этой бирже в результате бэктеста составляла около 5К долларов в день, при использовании рыночных ордеров по 1000 акций (10 лотов). Если применять стратегию только к дорогим акциям, результат может быть значительно выше.
В рассмотренной работе показано, что высокочастотная стратегия необязательно должна основываться на мощном математическом предсказательном аппарате. Однако если такие простые закономерности будут эксплуатироваться большим количеством HFT трейдеров, то со временем их прибыльность упадет или исчезнет совсем. Поэтому преимущество математических моделей в сложности их воплощения, которая ограничивает число применяющих их участников рынка.
Не является индивидуальной инвестиционной рекомендацией | При копировании ссылка обязательна | Нашли ошибку - выделить и нажать Ctrl+Enter | Жалоба