March 17

Введение в HFT трейдинг

Высокие скорости HFT особенно эффективны в арбитражных ситуациях.
Latency arbitrage – применение преимущества в скорости получения котировок и размещения заявок, чтобы раньше других заметить ценовой дисбаланс и использовать его (Strategies And Secrets of High Frequency Trading (HFT) Firms) (Understanding High-Frequency Trading Terminology). Например, HFT-бот получает обновление цены фьючерса на миллисекунду раньше остальных и успевает купить/продать акцию до того, как цена скорректируется. По сути, это арбитраж задержки (latency arbitrage), позволяющий HFT “бегать впереди” медленных участников. Также распространён кросс-активный арбитраж на высокой частоте – поиск краткосрочных несоответствий цен между связанными инструментами (акции и производные, биржевые фонды и корзина их компонентов и т.п.) и мгновенное открытие встречных позиций (Strategies And Secrets of High Frequency Trading (HFT) Firms). HFT-фирмы реализуют и классический статистический арбитраж с помощью сверхбыстрого анализа корреляций: с появлением малейшего расхождения между ценами коррелированных активов алгоритм мгновенно совершает серию сделок, удерживая позиции очень кратко. Важная особенность HFT-арбитража – огромное число заявок и высокий коэффициент отмен (order-to-trade ratio), поскольку бот может сотни раз в секунду пытаться ловить микроскопические дисбалансы цен (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation).

Iceberg-ордеры и скрытая ликвидность

Крупные игроки часто используют айсберг-заявки (Iceberg orders) – лимитные ордера, у которых в стакане отображается лишь небольшая часть объёма, а основная скрыта (Iceberg Order - Overview, How It Works, and Example). Например, из заявки на 100 000 акций видны только 1 000; по мере исполнения видимой части ордер автоматически пополняется из скрытого объёма. Такие скрытые лимитные ордера позволяют исполнить большой объём без явного видимости в стакане. HFT-алгоритмы разрабатывают специальные стратегии обнаружения айсбергов у других участников. Один из приёмов – «пингование»: бот отправляет ряд мелких рыночных ордеров (например, лотами по 100 акций) по подозрительной цене (Understanding High-Frequency Trading Terminology). Если каждая такая небольшая сделка сразу же поглощается и по той же цене снова появляется заявка, значит, вероятно там скрыт большой айсберг. Обнаружив скрытую ликвидность, HFT-стратегия может воспользоваться этим: например, стремительно выкупить весь айсберг-продажу и затем продать дороже остальным участникам. Существует и обратная тактика – самим использовать iceberg-ордера, чтобы скрыть собственные намерения, особенно при маркет-мейкинге или медленном наборе крупной позиции. По оценкам, айсберги составляют от 3% до 8% объёма на биржах США (Hiding (and Seeking) Liquidity With Iceberg Orders - Exegy), поэтому умение их «читать» – важное конкурентное преимущество HFT. Некоторые алгоритмы отслеживают последовательности сделок и обновлений стакана, пытаясь вычислить признаки айсберга (например, многократное появление одинакового объёма на уровне после частичных исполнений). Выявив скрытый ордер, HFT может либо атаковать его (быстро совершить сделки, “срезая” айсберг полностью), либо избегать, чтобы не попасть под крупный противоположный объём.

Фронт-раннинг (опережение ордеров)

Фронт-раннинг в классическом понимании – незаконная практика, когда брокер, имея информацию о большом клиентском ордере, совершает сделку в личных интересах раньше исполнения клиентского. HFT-фирмы не имеют чужой инсайдерской информации, но реализуют аналогичное опережение ордеров за счёт скорости. Так называемый “электронный фронт-раннинг” – это стратегия выявления крупного ордера в рынке и мгновенного открытия позиции перед его полным исполнением (Understanding High-Frequency Trading Terminology) (Illegal Practices of HFTs — Market Access Advisors). Например, HFT-алгоритм через «пинги» обнаружил крупного покупателя, постепенно берущего ликвидность. Тогда алгоритм бежит вперед: скупаeт на других площадках все доступные акции этой же компании и затем продаёт их тому крупному игроку дороже (Understanding High-Frequency Trading Terminology). В результате крупный ордер выполняется по худшей цене, а HFT получает почти безрисковую прибыль. С юридической точки зрения подобный фронт-раннинг труднее пресечь, поскольку HFT не является агентом этого инвестора – он просто реактивно торгует на публичных данных, но с минимальной задержкой. Тем не менее регуляторы пристально следят за такими практиками. В США опережение ордеров через получение платных “флэш-данных” (на несколько миллисекунд ранее общей ленты) было запрещено (Understanding High-Frequency Trading Terminology). HFT-фирмы же продолжают использовать Latency arbitrage как способ фронт-раннинга: инвестируют в самые быстрые каналы связи, чтобы первым увидеть движение цены на одном рынке и мгновенно отреагировать на другом, тем самым шагнув перед медленными участниками (Good and bad HFT - INSIGHT - Magazine | Asia Asset Management). По философии рынка это спорно (Good and bad HFT - INSIGHT - Magazine | Asia Asset Management), ведь с точки зрения жертвы HFT “обгоняет” её приказ. Однако такая деятельность пока находится в легальной серой зоне, если не основана на непубличных данных (Illegal Practices of HFTs — Market Access Advisors).

Spoofing и слоение заявок

Spoofing (спуфинг) – манипулятивная стратегия, при которой трейдер (или алгоритм) выставляет крупные ложные заявки на покупку или продажу с намерением отменить их до исполнения, чтобы ввести других участников в заблуждение относительно баланса спроса и предложения (Spoofing (finance) - Wikipedia) (Illegal Practices of HFTs — Market Access Advisors). Спуфер создает иллюзию давления в стакане: например, размещает большой объём на продажу по цене чуть выше текущей, заставляя рынок думать о избытке предложения, чтобы спровоцировать падение цены (Spoofing (finance) - Wikipedia). Когда другие трейдеры начинают продавать, ведясь на эту “призрачную” заявку, спуфер снимает свою заявку и покупает актив по более низкой цене, после чего цикл может повторить (Spoofing (finance) - Wikipedia) (Illegal Practices of HFTs — Market Access Advisors). Подобные действия искажают ликвидность рынка и могут приводить к краткосрочным ценовым всплескам или обвалам, выгодным спуферу. Layering (слоение заявок) – разновидность спуфинга, когда размещается серия крупных ложных ордеров на разных ценовых уровнях с одной стороны стакана (Cracking the Spoofing Code: Inside the World of Market Manipulation) (Illegal Practices of HFTs — Market Access Advisors). Например, алгоритм выставляет “лестницу” продаж – несколько крупных заявок на разных уровнях выше текущей цены, создавая видимость сильного сопротивления. Цель – поэтапно давить на цену, двигая рынок в нужную сторону, и одновременно скрыть свой реальный интерес (который может быть, напротив, купить понизившийся актив). Как только цена достигла желаемого уровня или реальный ордер спуфера исполнился, все ложные заявки отменяются практически одномоментно. Спуфинг и layering официально запрещены во многих юрисдикциях (в США – с 2010 г. согласно Dodd-Frank Act) (Spoofing (finance) - Wikipedia) (Illegal Practices of HFTs — Market Access Advisors), однако HFT-алгоритмы иногда все же применяют эти тактики, надеясь, что их трудно обнаружить в огромном потоке ордеров. Известен случай трейдера Navinder Sarao, чьи алгоритмы выставляли крупные ложные заявки на фьючерс S&P500, что, по данным регуляторов, поспособствовало Flash Crash 2010 года. За эти действия он был осуждён за спуфинг. Современные биржи и надзорные системы активно ловят такие паттерны: например, серии краткосрочных заявок, отменённых менее чем за 1 секунду, или аномально высокий процент отмен по сравнению с исполнениями (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation) (How to Detect Spoofing in Trading | Deceptive Trading Practices). Тем не менее, на высоких скоростях спуфинг остается реальной угрозой: алгоритм может в течение нескольких миллисекунд “нарисовать” сильный дисбаланс в стакане, повлиять на решения других ботов и людей, и сразу же исчезнуть, заработав на спровоцированном движении цены.

«Снайперские» стратегии

В среде HFT известен класс агрессивных стратегий, условно называемых «снайперскими» (sniping). “Снайпер” нацеливается на моментальные, краткосрочные возможности, возникающие в рынке, и поражает цель раньше конкурентов. Например, если алгоритм обнаружил «устаревшую» цену (stale quote) – ситуацию, когда в стакане есть заявку по неактуальной цене (например, из-за задержки обновления), он мгновенно исполняет сделку по этой цене, получая выигрыш до корректировки ([PDF] Speed and learning in high-frequency auctions) (Quantifying the High-Frequency Trading “Arms Race”). Снайперские HFT также охотятся за ордерами других участников: pinging + sniping – распространённая комбинация, когда сначала через мелкие заявки выявляется чужой крупный интерес (айсберг или рыночный ордер), а затем алгоритм стремительно исполняет свой ордер, опережая или перехватывая ликвидность прежде, чем это сделает выявленный участник. Например, исследование Кларка-Джозефа (2013) разделило HFT на пассивных «маркет-мейкеров» и активных «снайперов», которые зарабатывают именно за счёт выстрелов – быстрых ударов по крупным ордерам в моменты их появления. Одно из проявлений – отъём ликвидности на новостях: при важном новости снайперские боты первыми снимают все лучшие предложения (или спрос) в нужную сторону, оставляя остальных исполняться по хуже цене. Также снайперы не вступают в торги друг с другом – если несколько HFT одновременно заметили цель, победит тот, чей энд-то-энд лаг (от получения сигнала до отправки сделки) минимален, остальные просто не успеют “выстрелить” ([PDF] Speed and learning in high-frequency auctions) (Welfare Effects of Market Making in Continuous Double Auctions ...). Снайперские стратегии требуют предельно низкой задержки и часто применяют оптимизации на уровне аппаратуры (FPGA) и колокэйшна. Они повышают риск для медленных участников, ведь любой замешкавшийся ордер может быть тут же перехвачен. В то же время, конкуренция между самими снайперами обостряет “гонку вооружений” в HFT: огромные инвестиции в скорость окупаются тем, что именно ваш алгоритм окажется самым быстрым и заберёт прибыль, а не достанется конкуренту.

3. Методы обнаружения HFT-стратегий на данных

Распознать работу алгоритмических и особенно HFT-стратегий невооружённым глазом сложно – из-за огромной скорости и объёмов операций. Однако существуют методы анализа данных, позволяющие выявлять характерные паттерны алгоритмической активности на графиках цен, во временных рядах торговых операций и в стакане заявок:

Анализ временных рядов и аномалий

Высокочастотные стратегии часто оставляют “следы” в временных рядах цен и объёмов. Например, спуфинг может вызвать кратковременные всплески объёма и быстро обратимое движение цены. Анализируя тиковые данные, можно искать аномалии: резкие скачки числа заявок или трейдов в миллисекундных интервалах, всплески волатильности, которые затем затухают, и пр. Методы статистического контроля – фильтры выбросов, расчет z-оценок – помогают обнаруживать такие точки. Например, если количество сделок за миллисекунду на порядке превышает среднее, вероятно сработал алгоритм (в нормальной торговле человеческими ордерами так не бывает). Также анализ автокорреляции во временных рядах объёма и цен может показать искусственные паттерны: HFT могут порождать циклические микро-колебания (например, чередование покупки/продажи для тестирования рынка). Различают “спокойные” периоды и “бусты” – взрывы активности. Выявив на графике участок, где за доли секунды прошло аномально много изменений цены, можно предположить работу HFT-стратегии (например, цитирование с последующей мгновенной отменой указывает на quote stuffing – намеренное засорение ленты заявок (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation). Современные системы мониторинга в реальном времени (например, на базе kdb+/q) вычисляют метрики типа Order-to-Trade Ratio (OTR) – отношение числа заявок к числу сделок за интервал. Необычно высокий OTR (например >15) или скорость отмен > скорости сделок служат индикаторами присутствия HFT. На графиках это может проявляться как множество ценовых “шипов” без последующего развития тренда.

Кластерный анализ данных

Кластерный анализ и методы распознавания образов могут группировать схожие паттерны торговой активности, что помогает отделить алгоритмическую торговлю от обычной. Например, если взять все торговые дни и разложить их на характеристики (волатильность, число сделок, средний OTR, процент отмен за день и т.д.), то дни с активным HFT образуют отдельный кластер, отличный от дней с преобладанием медленного ручного трейдинга ([PDF] Trader Classification by Cluster Analysis: Interaction between HFTs ...). На микроуровне, кластеризация серий торговых сообщений может выявить типичные “почерки” алгоритмов. Исследования классифицируют участников на группы: HFT-маркет-мейкеры, HFT-снайперы, медленные инвесторы ([PDF] Impact of Speed Competition in High Frequency Trading (HFT)) (Welfare Effects of Market Making in Continuous Double Auctions ...). Например, HFT-маркет-мейкер характеризуется тысячами заявок с минимальным временем жизни и небольшим средним размером, тогда как кластер “институциональный инвестор” – наоборот, редкие крупные сделки, почти без отмен. Используя алгоритмы кластеризации (k-means, DBSCAN и др.), надзорные органы могут идентифицировать подозрительных трейдеров. Если какой-то аккаунт попадает в кластер с экстремально высоким процентом отмен (<1 мс) и огромным количеством сообщений – вероятно, это HFT, возможно использующий спуфинг или стаффинг (засорение котировок). Кластеризация также применяется к графическим образам – например, тепловые карты стакана (order book heatmaps) можно анализировать на наличие характерных “слоёв” (указывают на layering) или пустот сразу после сделок (указывают на операции по снятию ликвидности). Таким образом, кластерный анализ служит инструментом выявления повторяющихся шаблонов, присущих определённым стратегиям.

Методы машинного обучения

Современное машинное обучение (ML) расширяет возможности обнаружения алгоритмических стратегий. Применяются как обучение с учителем (если есть размеченные данные о случаях манипуляций), так и обучение без учителя (поиск аномалий). Например, для выявления спуфинга исследователи используют ансамбли деревьев решений и обнаружение аномалий: алгоритм обучается на нормальном поведении рынка, а затем выявляет отклонения, характерные для спуфера ([PDF] Detecting spoofing in financial markets: An unsupervised anomaly ...). Один из подходов – применять Isolation Forest или One-Class SVM к признакам на уровне микроструктуры (доли отмен, средняя глубина рынка, дисбаланс объёмов на лучших ценах и т.д.). Эти модели могут сигнализировать, когда текущие характеристики рынка выходят за пределы исторических норм – возможный признак алгоритмического вмешательства. Также используются графовые нейросети для анализа взаимодействий заявок: одну работу представила Graph Neural Network, идентифицирующую аномальные паттерны в потоке ордеров, связанные со сложными манипуляциями (Anomaly Pattern Detection in High-Frequency Trading Using Graph ...). Если есть разметка (например, известны случаи штрафов за спуфинг), то можно обучить классификатор (дерево решений, Random Forest, нейросеть), который по данным стакана за короткий промежуток времени предсказывает наличие спуфинга ([PDF] Protecting Retail Investors from Order Book Spoofing using a GRU ...). Признаки могут включать: количество крупных заявок, доля отмен, изменение лучшего бид/аска сразу после отмен и т.п. Регуляторы и биржи уже внедряют ML-системы надзора: например, торговые платформы (Nasdaq SMARTS, TT Surveillance) используют кластеры признаков и машинное обучение для ежедневного скрининга подозрительной активности (TT® Trade Surveillance Cross-Product Spoofing Surveillance ...). Визуальный анализ также усиливается ML: есть исследования, где алгоритмы компьютерного зрения анализируют изображения графиков (тепловых карт) для обнаружения невидимых глазом, но узнаваемых для машины паттернов поведения HFT. В итоге, ML позволяет выявлять неочевидные закономерности и адаптивно подстраиваться под эволюцию стратегий, тогда как жёсткие правила могут отставать от хитроумных алгоритмов злоумышленников.

Паттерны в стакане заявок и объёме

Специфические стратегии проявляются через паттерны в биржевом стакане и динамике объёмов, которые можно отследить с помощью специализированных платформ (например, Bookmap, ITCH-визуализации). Например, для Iceberg-ордеров признаком является многократное исполнение небольшого объёма на одном ценовом уровне без исчерпания заявки – если по цене 50 исполнилось десять раз по 100 акций и заявка всё ещё стоит, вероятно, она скрывала больший объём. Такой паттерн “постоянного наполнения” выдаёт айсберг. Стратегии, охотящиеся за айсбергами, могут быть распознаны по серии малых рыночных сделок с равным размером, следующих друг за другом – так HFT «прощупывает» уровень (Understanding High-Frequency Trading Terminology). Спуфинг проявляется в стакане как появление крупной заявки, которая висит короткое время и исчезает, особенно если сразу за этим прошла сделка и изменение цены. Если на видео-реплее рынка видно, что перед движением цены на верхних уровнях стакана мелькали большие ордера, можно подозревать спуфера. Layering – это одновременно несколько больших ордеров на разных уровнях, создающих заметную “ступеньку” на тепловой карте ликвидности (Cracking the Spoofing Code: Inside the World of Market Manipulation). Их синхронное исчезновение – явный признак манипуляции. Для автоматического обнаружения таких паттернов пишут алгоритмы, сканирующие историю изменения стакана: например, фиксировать случаи, когда N уровней подряд на одной стороне заполнены объёмом значительно выше среднего, а затем все сняты без исполнения. Также анализ потока сделок и отмен: если видим, что большинство заявок трейдера X отменяются в течение миллисекунд, не исполнившись, это указывает на стратегии вроде quote stuffing или скрытого маркет-мейкинга с высокими отменами. Индикаторы дисбаланса (Order Book Imbalance) помогают выявить моменты, когда совокупный объём на покупке vs продаже резко перекосился, и затем внезапно вернулся к норме – такое “мигание” дисбаланса может сигнализировать о спуфинге. По объёмам сделок тоже видны паттерны: например, “призрачные” всплески объёма без движения цены (много сделок, но цена возвращается) намекают на искусственную активность, тогда как при реальном интересе объем сопровождается трендом. Регуляторы используют комбинацию всех этих сигналов, строя правила типа: если в течение 1 секунды было отменено >100 заявок объемом > X без сделок – установить флаг возможного нарушения (How to Detect Spoofing in Trading | Deceptive Trading Practices). На графиках цен/объёма такие события часто выглядят как шипы – одиночные выбросы.

Индикаторы и математические модели

Для обнаружения HFT-активности могут применяться и более формальные математические модели рыночной микроструктуры. Например, модель Hawkes processes (самовозбуждающихся потоков) оценивает, как появление одной сделки повышает вероятность следующих. Резкий кластер сделок может указывать на автоматизированный триггер. Индикатор VPIN (Volume-Synchronized Probability of Informed Trading), разработанный для оценки “токсичности” потока ордеров, может расти, когда в рынок входят информированные или быстрые трейдеры. В момент, когда HFT начинают агрессивно брать ликвидность, VPIN сигнализирует об увеличении дисбаланса между объёмом покупок и продаж – это предшествует усилению волатильности. Также рассчитываются метрики вроде Average Trade Size – у HFT он, как правило, мал (торгуют лотами минимального размера), тогда как у институционалов – крупнее. Соотношение числа сообщений к числу сделок (already mentioned OTR) – формальный показатель, зачастую >1000 у высокочастотников (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation). Биржи ввели понятие Message-to-Trade Ratio и даже штрафы за чрезмерные сообщения. Анализируя временные ряды этих метрик, можно в режиме реального времени переключать режимы контроля – например, если MTR взлетел, включается более строгий мониторинг на спуфинг. Наконец, используются и простые визуальные индикаторы: наложение скользящих средних на график объёма отмен может показать тренд – когда ближе к концу сессии отмен становится больше (признак активности HFT, сворачивающих позиции к клирингу). В совокупности, индикаторы и модели позволяют количественно охарактеризовать “нормальный” рынок и вовремя заметить, когда поведение цены и ордеров отклоняется от норм, что часто совпадает с действиями алгоритмических стратегий.

4. Практические примеры стратегий на графиках

Чтобы лучше понять описанные стратегии, рассмотрим несколько упрощённых примеров, иллюстрирующих их проявление:

(Best Trend Following Trading Strategies) Пример трендовой стратегии (следование за трендом): на 30-минутном графике валютной пары видно устойчивое снижение (медвежий тренд). Алгоритм определяет нисходящий тренд (чёрная диагональная линия) и ищет моменты консолидации для входа. В области Rectangle Consolidation цена временно двигалась в боковом диапазоне (прямоугольник), не нарушая общую нисходящую тенденцию. Трендовый алгоритм дождался пробоя поддержки этого диапазона вниз и открыл короткую позицию. Далее, после небольшого отката, сформировался Flag Consolidation – фигура флага (наклонный канал против тренда). Когда цена пробила флаг и продолжила падение, алгоритм усилил позицию. Такие паттерны продолжения тренда часто используются в алгоритмах следования за трендом. В результате цена обновила минимумы, и стратегия принесла прибыль, следуя за трендом до признаков его окончания.

(Cracking the Spoofing Code: Inside the World of Market Manipulation) Пример спуфинг-атаки (манипуляция заявками): диаграмма выше схематично показывает цикл действий спуфера. Сначала алгоритм размещает крупный ложный ордер (например, заявку на покупку большого объёма) – на схеме обозначено как “Spoofers place a substantial buy order”. Другие участники видят в стакане внезапно выросший спрос и решают, что на рынке сильный покупатель (иллюзия ажиотажного спроса). Это побуждает их тоже начать покупать – возникает кратковременный рост цены (“It appears that there is strong demand…”). Как только рынок двинулся в выгодную спуферу сторону, он мгновенно отменяет свою заявку и воспользуется сдвигом цены: например, продаёт по возросшей цене актив, который закупил заранее дешевле. На схеме последний этап – “Other traders get encouraged to buy the asset” – отражает, что спуфер провоцирует чужой спрос и реализует свою скрытую цель (продать подороже). После отмены ордера рынок понимает, что спрос был ложным, и цена может откатить. Подобные циклы могут происходить за считанные секунды или миллисекунды на HFT-скоростях, и без специальных средств отслеживания их трудно заметить. Однако по характерным резким всплескам и разворотам цены регуляторы идентифицируют спуфинг (How to Detect Spoofing in Trading | Deceptive Trading Practices). В реальных данных подобную ситуацию можно распознать по глубокой заявке в стакане, которая исчезла перед исполнением, и последующему обратному движению цены.

(На практике изображения графиков высокогочастотного трейдинга могут представлять сложные тепловые карты стакана или миллисекундные изменения цен; здесь показаны упрощённые иллюстрации для концептуального понимания.)

5. Кодовые примеры обнаружения HFT-стратегий (Python)

Ниже приведены упрощённые фрагменты кода на Python, демонстрирующие подходы к обнаружению аномалий и анализу данных, связанных с высокочастотными стратегиями. Эти примеры которые могут быть адаптированы под реальные данные.

Поиск аномалий во временном ряду объемов

Допустим, у нас есть временной ряд объёма торгов по периодам (например, число сделок в миллисекунду). Мы можем найти аномально высокие значения объёма, которые могут указывать на HFT-активность (например, всплеск сделок при спуфинг-атаке или quote stuffing). Используем простой критерий – превышение среднего более чем на 3 стандартных отклонения:

import numpy as np

# Сгенерируем синтетический ряд объемов (например, 100 интервалов)
np.random.seed(0)
volumes = np.random.normal(loc=1000, scale=100, size=100).astype(int)
# Вставим аномальные всплески
volumes[50] = 5000  # всплеск объема в 5 раз выше среднего
volumes[70] = 8000  # ещё более сильный всплеск

# Порог аномалии: среднее + 3 сигма
mean_vol = volumes.mean()
std_vol = volumes.std()
threshold = mean_vol + 3 * std_vol

# Индексы интервалов, где объем выше порога (аномалии)
anomalies = np.where(volumes > threshold)[0]
print(f"Средний объем: {mean_vol:.1f}, порог аномалии: {threshold:.1f}")
print(f"Аномальные всплески объема на индексах: {anomalies}")

В данном коде мы создаём массив volumes и искусственно добавляем два выброса. Затем вычисляется порог как mean + 3*std и находятся индексы, где объём выше порога. Вывод может быть, например: "Средний объем: 1115.6, порог аномалии: 3528.2. Аномальные всплески объема на индексах: [50 70]". Это значит, в периодах 50 и 70 объем существенно выбивается из статистических норм – сигнал для аналитика проверить эти моменты на предмет HFT-активности (например, не было ли там серии отмен или манипуляций).

Анализ ордеров: коэффициент отмен и соотношение заявок к сделкам

HFT-стратегии часто характеризуются огромным числом заявок и отмен по сравнению с реальными сделками. Рассмотрим упрощённый журнал ордеров и вычислим метрики:

  • Order-to-Trade Ratio (OTR) – отношение числа заявок (включая новые и отмены) к числу исполненных сделок.
  • Доля отмен – какая часть заявок или ордеров была отменена, не превратившись в сделку.
# Список событий ордеров (id, действие, время)
orders = [
    {"id": 1, "action": "new", "timestamp": 0.001},
    {"id": 1, "action": "cancel", "timestamp": 0.003},
    {"id": 2, "action": "new", "timestamp": 0.002},
    {"id": 2, "action": "trade", "timestamp": 0.004},
    {"id": 3, "action": "new", "timestamp": 0.005},
    {"id": 3, "action": "cancel", "timestamp": 0.006},
    {"id": 4, "action": "new", "timestamp": 0.007},
    {"id": 4, "action": "cancel", "timestamp": 0.008},
    {"id": 5, "action": "new", "timestamp": 0.010},
    {"id": 5, "action": "trade", "timestamp": 0.011},
]

# Рассчитаем OTR: (количество новых+отмен) / количество исполнений
total_orders = sum(1 for o in orders if o["action"] in ("new", "cancel"))
total_trades = sum(1 for o in orders if o["action"] == "trade")
otr = total_orders / total_trades if total_trades > 0 else None

# Доля отмененных ордеров (без исполнений)
canceled_orders = {o["id"] for o in orders if o["action"] == "cancel"}
traded_orders = {o["id"] for o in orders if o["action"] == "trade"}
pure_cancels = canceled_orders - traded_orders
cancel_ratio = len(pure_cancels) / len({o["id"] for o in orders})

print(f"Order-to-Trade Ratio: {otr:.2f}")
print(f"Доля ордеров, отмененных без исполнения: {cancel_ratio:.2f}")

В примере выше смоделировано 5 ордеров (ID 1–5). Ордеры 1, 3, 4 были отменены (cancel) и не исполнились. Ордеры 2 и 5 исполнились (trade), причём у 2 был и cancel после исполнения? (в нашем списке, кстати, ордер 2 имеет и trade, и cancel – что не совсем типично; но будем считать cancel после частичного исполнения). Тем не менее, код считает: всего событий new+cancel = 8, всего trade = 2, значит OTR = 8/2 = 4.0. Доля чисто отменённых ордеров: из 5 ордеров 3 отменились без единой сделки ⇒ 60% отмен. Такие значения гораздо выше, чем у обычных участников, и могут указывать на HFT-стратегию. В реальных данных OTR для некоторых HFT доходит до сотен (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation), а доля мгновенно отменённых заявок – значительную часть (что побудило биржи ввести ограничения). Аналитик или надзорная система, вычислив подобные метрики по счетам, может выявить кандидатов на алгоритмическую торговлю и проверить их на спуфинг/стаффинг.

Обнаружение стратегий с помощью машинного обучения

Если у нас есть достаточный объём данных, можно применять алгоритмы машинного обучения для автоматического выявления скрытых паттернов. В примере ниже используем Isolation Forest – модель для поиска аномалий – на искусственном наборе данных, где большинство точек нормальные, а несколько – выбросы. Предположим, наши признаки – какие-то измерения активности (например, [скорость изменения цены, доля отмен]). Мы хотим найти странные точки, которые могут соответствовать атаке или редкой стратегии.

from sklearn.ensemble import IsolationForest
import numpy as np

# Сгенерируем данные: 100 точек, 2 признака (примерно нормальное распределение)
X = np.random.normal(0, 1, size=(100, 2))
# Добавим несколько явных выбросов (аномалий)
X[95:] = np.array([[5,5],[6,6],[7,7],[8,8],[9,9]])  # 5 аномальных точек

# Обучим Isolation Forest (ожидаем ~5% аномалий)
model = IsolationForest(contamination=0.05, random_state=0)
model.fit(X)
outlier_preds = model.predict(X)
anomaly_indices = np.where(outlier_preds == -1)[0]
print("Индексы обнаруженных аномалий:", anomaly_indices)

Isolation Forest обучается на большинстве данных, предполагая, что они нормальные, и выделяет те, которые “легко изолировать” (т.е. отличаются). В нашем синтетическом примере вывод будет что-то вроде: Индексы обнаруженных аномалий: [95 96 97 98 99], что совпадает с введёнными выбросами. В прикладном плане, такие индексы могут соответствовать, например, конкретным минутам торгов или конкретным торговым счётам, которые модель сочла аномальными. Далее аналитик изучает эти случаи: возможно, там был зафиксирован спуфинг или иной паттерн. В более сложном подходе можно использовать нейронные сети: например, обучить LSTM (длинную краткосрочную память) на последовательностях биржевых событий, чтобы предсказывать нормальное поведение, а затем отмечать отклонения.

Примечание: для реальных биржевых данных необходимо тщательно подбирать признаки и параметры моделей. Супервизированное обучение потребует размеченных случаев манипуляций (что редкость), поэтому часто применяются unsupervised-методы (кластеризация, автоэнкодеры для аномалий и пр.). Python-экосистема (библиотеки pandas, scikit-learn, tensorflow и др.) предоставляет инструменты для такого анализа. Например, можно обработать гигабайты логов ордеров, агрегировать метрики по интервалам и применить IsolationForest или DBSCAN для поиска куч необычных точек, соответствующих потенциальным атакам.


Вывод: Алгоритмическая и высокочастотная торговля охватывает широкий спектр стратегий – от добросовестных (маркет-мейкинг, арбитраж, трендовое следование), повышающих эффективность рынков, до контроверсиальных и порой незаконных (спуфинг, опережение ордеров, quote stuffing). HFT привносит ликвидность и снижает спреды, но также способен вызывать внезапные сбои и ставит медленных участников в невыгодное положение (Высокочастотный трейдинг (HFT): понятие, стратегии и алгоритмы — Gerchik Trading Ecosystem). Понимание механизмов этих стратегий важно для трейдеров и регуляторов: первым – чтобы адаптироваться и защищаться от неблагоприятных воздействий, вторым – чтобы обеспечивать справедливость и прозрачность рынков. С помощью методов анализа данных и машинного обучения сейчас возможно выявлять многие скрытые практики, хотя противостояние между “умными” алгоритмами и системами надзора продолжается. В конечном счёте, алгоритмическая торговля – неотъемлемая часть современных финансовых рынков, и её эволюция требует соответствующего развития методов мониторинга и контроля.

Источники: Основные идеи и определения взяты из открытых источников и литературы по трейдингу, включая Investopedia (Strategies And Secrets of High Frequency Trading (HFT) Firms) (Understanding High-Frequency Trading Terminology), материалы QuantInsti (Algorithmic Trading Strategies | Classification | Creation | Risk | Steps) (Algorithmic Trading Strategies | Classification | Creation | Risk | Steps), Wikipedia (Spoofing (finance) - Wikipedia), а также исследования по микроструктуре рынков (Surveillance techniques to effectively monitor algo and high-frequency trading | kdb+ and q documentation - kdb+ and q documentation). Практические примеры вдохновлены публикациями трейдеров и аналитиков (Tradeciety, Bookmap) (Best Trend Following Trading Strategies) (Cracking the Spoofing Code: Inside the World of Market Manipulation), а кодовые фрагменты демонстрируют общие принципы обнаружения, применимые на любых классах активов при наличии соответствующих данных.