в Алготрейдинг

Стратегия с классификацией ордеров по времени жизни. Часть 1

Автор: uralpro.

Неплохую идею для высокочастотного трейдинга подсказал 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К долларов в день. Конечно, это результаты симуляции, и в реальной торговле результат может быть хуже, но тем не менее, есть солидное позитивное ожидание. Также можно отметить, что в стратегии не сформулирован алгоритм выхода из позиции, подразумевается выход по времени, которое можно определить по вышеприведенному графику.

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

Другие исследования и описания алгоритмов, применяющихся в биржевых роботах, вы можете посмотреть на моем сайте — quantalgos.ru.

Комментарии:

dobrachev: Странная какая-то верхняя шкала. Не в % от исходной цены, а в центах за акцию… И биржа указана…
Почему-то мне это напомнило «легких» заработок в левых интернет казино, где типа вероятность выигрыша увеличивается (и МО становится положительным) для тех, кто только что зарегался.

uralpro: А в чем принципиальная разница между процентами и центами за акцию в смысле шкалы графика?

dobrachev: Цены на различные акции разные. Изменение на 1 цент это не одно и тоже для акции которая стоит 1000 и для акции которая стоит 10000
Я вот не знаю средней цены для тестовых акций.
Да и вообще даже если такая неэффективность действительно есть, её легко закроет любой HFT робот, особенно на бирже Direct Edge )))

uralpro: Это на российской бирже интересно было бы проверить. А некоторые неэффективности как были в 2010 году, так и остались, только, конечно, борьба за них обострилась. Но это за очевидные, к которым описанная не относится. Тем более автор делал все это не так давно — в 2014 году