Обмен электронных валют по самому выгодному курсу!
 

Kurbetsoft
Алгоритмическая торговля криптоактивами

Мы в Galois Capital исследуем разработку и реализацию торговых алгоритмов в криптосфере, фокусируясь на алгоритмах исполнения ордеров, маркетмейкинга и некоторых аспектах микроструктуры рынка. Об этом мы и хотим поговорить сегодня, уделив внимание тем моментам, в которых практика отличается от теории, в частности, в том, что касается характерных особенностей крипторынков.

Алгоритмы исполнения

Цель алгоритмов исполнения ордеров состоит в том, чтобы преобразовывать портфолио из одного состояния в другое, минимизируя затраты на этот переход. Например, если вы хотите увеличить вашу подверженность курсовому риску по BTCUSD на 1000, то можете не иметь желания разово купить 1000 BTC рыночным ордером на BitMEX со значительным проскальзыванием. Вместо этого вы, вероятно, будете рассматривать возможности постепенного увеличения позиции до желаемого размера через комбинацию рыночных и лимитных ордеров на различных биржах.

Алгоритмы исполнения обычно имеют 3 слоя: макротрейдер, микротрейдер и «умный» маршрутизатор.

На слое макротрейдера крупный мета- (или родительский) ордер разбивается на несколько распределенных во времени дочерних ордеров. Фактически на этом уровне происходит планирование операций всего алгоритма. VWAP, TWAP и POV (Percent of Volume) – общие и простые примеры алгоритмов макротрейдера. При этом существует множество различных моделей влияния на рынок, которые можно использовать при проектировании сложного уровня макротрейдера. В центре внимания моделей влияния на рынок находится реакция рынка на исполнение ордеров. Остается ли ситуация на рынке после исполнения неизменной? Или рынок продолжает движение в направлении тренда? Или же он отвечает коррекцией? Две наиболее значимые модели влияния на рынок – это модель постоянного влияния Алмгрена – Крисса (1999, 2000) и модель временного влияния Обижаевой – Вана (2013). Учитывая, что на практике влияние на рынок не является перманентным, стратегия Обижаевой – Вана представляется более приближенной к реальности. С тех пор было разработано много новых моделей для устранения ее недостатков.

Алгоритмическая торговля криптоактивами
снижение влияния на рынок после исполнения ордера (англ.)

На уровне микротрейдера определяется, следует ли разместить каждый дочерний ордер в виде рыночного или лимитного и, для лимитных ордеров, какой должна быть их цена. Проектированию уровня микротрейдера посвящено намного меньше литературы. Это связано с тем, что размер дочернего ордера обычно представляет собой настолько небольшую часть рынка, что способ его исполнения не имеет значения с точки зрения влияния на рынок. Однако для криптоактивов, со свойственными им низкой ликвидностью и значительным проскальзыванием, способ исполнения дочерних ордеров даже обычного размера на практике имеет значение. Дизайн микротрейдера, как правило, ориентирован на распределение поступающих ордеров по времени и глубине, позиции в очереди и в зависимости от других особенностей микроструктуры рынка. Рыночные ордера (и пересекающиеся лимитные ордера, если игнорировать задержки технического характера) гарантируют исполнение, тогда как с прочими, выжидающими, лимитными ордерами такой гарантии нет. Если исполнение не гарантируется, то вы рискуете отстать от графика, установленного макротрейдером.

Слой умного маршрутизатора определяет оптимальный путь до исполнения ордеров на различных биржах/площадках. Например, если 60% ликвидности до заданной цены сосредоточено на Kraken, и 40% – на GDAX (Coinbase Pro/Prime), то любой рыночный ордер, определенный на уровне микротрейдера, должен быть распределен между Kraken и GDAX в соотношении 60/40. Здесь вы можете сказать, что арбитражеры и маркетмейкеры будут переносить ликвидность с одной биржи на другую, поэтому если вы исполните половину ордера на Kraken и подождете несколько секунд, то часть этой ликвидности будет восполнена арбитражерами и статистическими арбитражерами за счет переноса ликвидности с GDAX на Kraken, и тогда вы сможете исполнить остаток ордера по аналогичной цене. Но даже если так, арбитражер все равно удержит свою прибыль, плюс переложит на вас расходы на хеджирование, такие как комиссия мейкера на Kraken. Кроме того, некоторые участники рынка размещают на нескольких биржах ордера заведомо большего, чем им нужно, размера, чтобы отменить избыточный объем, как только ордер сработает. В конечном счете лучше иметь собственную интеллектуальную маршрутизацию. Собственная интеллектуальная маршрутизация обладает также меньшей задержкой по сравнению со сторонними сервисами. В первом случае вы можете направлять ордера непосредственно на биржи, тогда как во втором вам сначала нужно отправить сообщение стороннему сервису, после чего они будут распределять ваш ордер по биржам (плюс вам придется заплатить за маршрутизацию). Длина любой стороны треугольника всегда меньше суммы длин двух других его сторон.

Алгоритмы маркетмейкинга

Суть маркетмейкинга заключается в предоставлении мгновенной ликвидности другим участникам рынка и получении компенсации за это. Вы берете на себя риск обесценивания запасов в обмен на положительное математическое ожидание получения прибыли. В конечном счете маркетмейкер получает компенсацию по двум причинам. Во-первых, для тейкеров большое значение имеет временнáя составляющая, и они хотят немедленного исполнения ордера. Обеспечивающие ликвидность маркетмейкеры, в свою очередь, получают компенсацию за меньшую требовательность в отношении времени и терпение. Во-вторых, профиль прибыли и убытков маркетмейкера имеет наклон влево, тогда как обычно большинство людей предпочитают правый наклон. Другими словами, роль маркетмейкеров аналогична букмекерам на рынках ставок, казино, страховым компаниям и государственным лотереям. Они выигрывают часто и понемногу и проигрывают крупно, но редко. Компенсацией за такой нежелательный профиль доходности для маркетмейкеров служит положительное математическое ожидание.

Алгоритмическая торговля криптоактивами
Асимметрия распределения. Слева: отрицательная асимметрия; справа: положительная асимметрия

На высоком уровне лимитные ордера — это свободные опционы, записанные для остального рынка. Остальные участники получают право, но не обязательство, купить или продать актив по цене лимитного ордера. На рынке с совершенным распределением информации никто не станет продавать свободные опционы. Только несимметричность распределения информации между участниками рынка делает продажу свободных опционов осмысленной. С другой стороны, если бы рынок был абсолютно неинформированным, нейтральный к риску маркетмейкер был бы готов продать эти свободные опционы в виде лимитных ордеров даже при стремящемся к нулю спреде, поскольку вся торговля была бы не более чем шумом. Очевидно, что на реальных рынках действуют различные участники, каждый из которых имеет уникальный уровень осведомленности.

При разработке алгоритма маркетмейкинга необходимо учитывать три перспективы: маркетмейкера, маркет-тейкеров и других маркетмейкеров.

Перспективу маркетмейкера представляют его резервы. Если доля актива в вашем портфеле оказывается слишком высока, то вы, вероятно, будете снижать цену его продажи, и наоборот, если доля актива будет слишком малой. Вы делаете это по двум не связанным между собой причинам. Во-первых, будучи компанией, вы обладаете некоторым уровнем неприятия риска (вероятно, меньшим, чем у частного лица, однако кривая вашей полезности для денег все еще вогнута). Есть много конструкций для формы этой функции полезности (например, CARA, CRRA, в целом HARA и т.д.). Во-вторых, как пассивный поставщик ликвидности на рынке, вы подвержены риску неблагоприятного отбора. Активные покупатели ликвидности могут знать то, чего не знаете вы, или просто быть умнее вас. В этом заключается суть проблемы продажи на рынке свободных опционов. Кроме того, даже на механическом уровне, рыночный ордер, который погашает ваш лимитный ордер на покупку, корректирует цену в понижающем направлении, в то время как рыночный ордер, погашающий ваш лимитный ордер на продажу, корректирует цену в повышающем направлении. В любой момент, в любой сделке, вы всегда находитесь не на той стороне. Кроме того, устанавливаемые маркет-мейкером цены оказывают пассивное влияние на рынок. Другими словами, акт размещения лимитного ордера оказывает по крайней мере небольшой эффект движения рынка в противоположном направлении.

Алгоритмическая торговля криптоактивами
функция полезности не расположенного к риску актора

Перспективы маркет-тейкеров представлена в потоке ордеров. Средневзвешенная по объему частота поступления ордеров в зависимости от глубины от верхней строчки журнала ордеров должна иметь несколько ключевых свойств. Функция должна быть 1) убывающей, 2) выпуклой (это интуитивное заключение, объяснить его трудно, но это отчетливо наблюдается эмпирически), 3) асимптотически стремящейся к 0, по мере того как глубина становится бесконечной. Некоторые формулировки здесь (англ.) подразумевают, что эта функция интенсивности (англ.) должна быть непрерывно дважды дифференцируемой для удобства манипулирования, и это хорошее и разумное предположение, однако в конечном итоге это оказывается ненужным. Кроме того, существуют различные формулы для расчета «глубины или дистанции от верхней строчки журнала ордеров». Обычно можно использовать либо «справедливую среднюю цену, либо лучшую цену покупки и лучшее предложение для каждой соответствующей стороны». Есть и различные компромиссы между двумя подходами, в подробности которых здесь мы вдаваться не будем. И, помимо этого, существует еще и проблема того, какой должна быть “справедливая средняя цена”. Чтобы еще добавить красок, можно отметить также, что средняя цена, равноудаленная от лучшего предложения о покупке и лучшего предложения о продаже, восприимчива к шуму, создаваемому размещением и отменой микроскопических ордеров. Кроме того, учитывая два кейса с одной и той же формой журнала ордеров, последняя запись с лучшей ценой покупки, будет предполагать более низкую справедливую цену, чем последняя запись с лучшей ценой покупки. И возникает еще один вопрос: имеет ли значение история записей, и если да, то стоит ли нам смотреть на нее с точки зрения астрономического времени или времени объема? Так как же определить оптимальную цену лимитных ордеров для маркетмейкера с учетом характеристик потока ордеров на рынке? Если вы будете размещать ордера очень тесно в верхней части журнала, то они будут часто исполняться, но каждый раз приносить очень небольшую прибыль. Если вы будете размещать ордера глубоко в журнале, то они будут исполняться реже, но приносить больше прибыли. Это, по сути, проблема выпуклой оптимизации с уникальным глобальным максимумом. Еще одна мысль – это прибытие потока ордеров во времени, немного напоминающая пуассоновский процесс. Некоторые полагают, что это ближе к процессу Хоукса. Более того, отскок цен спроса и предложения, который маркет-мейкер пытается поймать, представляет собой самую краткосрочную версию возврата к среднему значению. Поскольку этот сверхкраткосрочный возврат к среднему масштабируется за счет локальной волатильности, для маркетмейкеров имеет смысл увеличивать дистанцию между предлагаемыми ценами при высоком объеме торгов и сокращать ее при низком объеме.

Алгоритмическая торговля криптоактивами
интенсивность прибытия ордеров по отношению к глубине рынка (источник). X – дельта (в тиках), Y – лямбда, кривая – функция интенсивности.
Алгоритмическая торговля криптоактивами
Процесс Хоукса (источник). X – время, Y – интенсивность, кривая – симулированная интенсивность поступления.

Перспективы других маркетмейкеров представлены в журнале ордеров. В журнале раскрывается некоторая информация о прочих маркетмейкерах. Большее число ордеров на продажу, нежели на покупку, в верхней части журнала говорит о том, что другие маркетмейкеры более склонны продавать актив, а не покупать его. Вполне возможно, что резервы этих мейкеров уже значительно дисбалансированы или они просто считают, что в краткосрочной перспективе цена скорее пойдет вниз, нежели вверх. В любом случае исходя из асимметричного распределения ордеров в журнале вы, как маркетмейкер, можете скорректировать цены собственных ордеров. Кроме того, когда маркетмейкеры конкурируют друг с другом, если размер тика невелик, часто можно наблюдать так называемый пенни-джампинг. Маркетмейкеры конкурируют за приоритетное исполнение ордера, быстро размещая свои ордера на один пипс выше (ниже) лучшей цены покупки (продажи), пока не наступит капитуляция и в борьбе за приоритетное исполнение ордера не останется единственного «победителя». После того как победитель был определен, занявший второе место часто корректирует цену своего ордера так, чтобы на один пипс опережать следующую лучшую цену покупки (продажи). Если вы уступили приоритет в исполнении ордера, то можете побороться за вторую позицию, не переплачивая за нее. Это приводит к тому, что ордер победителя оттягивается так, чтобы опережать второго на один пипс, и игра начинается заново. Здесь можно увидеть, как выглядит такая «гонка пенни-джамперов» на примере реальных данных криптовалютного рынка (англ.).

Алгоритмическая торговля криптоактивами
След на ценовом графике «гонки пенни-джамперов» на стороне покупки (источник).

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

Скорость

Скорость имеет значение по двум основным причинам. Во-первых, она позволяет «поймать» выжидающие ордера из журнала раньше, чем они будут отменены. Во-вторых, она позволяет отменить выжидающие ордера раньше, чем они будут исполнены. Другими словами, цель заключается в том, чтобы «поймать» застоявшиеся ордера и избежать того, чтобы ваши ордера оказались пойманы другим алгоритмом. (Активные) алгоритмы арбитража и исполнения больше нацелены на первый вариант, а алгоритмы маркетмейкинга – на второй.

Как правило, от высокой скорости исполнения более всего выигрывают самые базовые стратегии. Любое усложнение логики неизбежно замедляет скорость работы алгоритма. Эти типы алгоритмических стратегий – как болиды «Формулы-1» в мире трейдинга. Проверка данных, проверки безопасности, дополнительные возможности, средства управления и т.д. – всем этим можно пожертвовать в пользу скорости. Опускаете системы управления ордерами и портфолио и напрямую подключаете вычислительную логику на своих GPU к бинарному API биржи, система мэтчинга (сопоставления ордеров) которой находится на серверах того же датацентра. Быстрая и опасная игра.

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

Алгоритмическая торговля криптоактивами
Оптимальное расположение промежуточных торговых узлов для работы с крупнейшими фондовыми биржами мира (источник).

В игре на скорость победитель забирает больше всего. Самый простой пример: если существует возможность для арбитража, то тот, кто воспользуется ею первым, получит прибыль. Второму достанутся крохи, а третьему – вовсе ничего. Выигрыши, по-видимому, распределяются в соответствии со степенным законом.

Игра на скорость – это также и гонка по нисходящей. Когда все игроки модернизируют оборудование с волоконной оптики до микроволн и лазерных сетей, игровое поле выравнивается и любое первоначальное преимущество нивелируется.

Размер тика, приоритет исполнения и позиция в очереди

Большинство мэтчинговых систем работают по приоритету цены и времени (менее распространенной альтернативой является мэтчинг на основе пропорциональности, но его мы пока рассматривать не будем). Место лимитных ордеров с лучшими ценами в очереди на исполнение выше, чем у лимитных ордеров с худшими ценами. Для лимитных ордеров с одной ценой, первыми исполняются ордера, размещенные раньше.

Binance дискретизирует журналы ордеров до максимум 8 знаков после запятой. Если цена инструмента 0,000001, то тик 0,00000001 – это 1% от цены. Если цена инструмента 0,0001, то тик 0,00000001 – это 0,01% от цены. Разница огромна. В первом случае попытка опередить большой ордер стоит полного процентного пункта, так что приоритет по времени имеет большее значение, а во втором стоимость такой попытки опережения в 100 раз меньше, и выше значимость приоритета по цене. Другими словами, если для того, чтобы получить приоритет исполнения ордера, вам нужно заплатить полный процентный пункт, это может быть неоправданно, потому что так вы заплатите относительно большую сумму с относительно небольшой эффективностью, и, вероятно, вам лучше просто подождать своей очереди. Но если для получения приоритета вам нужно заплатить лишь 0,01%, это представляется намного более оправданным. Для инструментов с меньшей ценой предпочтителен приоритет по цене, а для инструментов с большей ценой – приоритет по времени.

Алгоритмическая торговля криптоактивами
Вероятность исполнения как функция от позиции в очереди (источник). X – позиция в очереди, Y – вероятность исполнения.

Дельта журнала ордеров

Есть лишь два способа уменьшить в количестве тот или иной ценовой уровень в журнале ордеров: либо взаимная сделка, либо отмена выжидающего лимитного ордера. Если уменьшение было вызвано взаимной сделкой, то и все остальные ценовые уровни, лучшие, чем этот, также должны быть взаимно зачтены и, следовательно, уменьшены. Можно выстроить тикерную ленту с открытием и отменой ордеров тик за тиком и промаркировать каждое уменьшение ценового уровня как достигнутое за счет сделки либо отмены ордера. Интуитивно, факт сделки подразумевает, что две стороны согласились совершить сделку по определенной цене, а отмена ордера означает, что одна из сторон решила, что больше не желает покупать или продавать актив по определенной цене. Следовательно, в теории, можно сказать, что отмена ордера с наилучшей ценой покупки является более сильным сигналом о том, что рынок в ближайшей перспективе будет двигаться вниз, нежели продажа, покрывающая этот ордер.

С другой стороны, есть только один способ количественно увеличить ценовой уровень в журнале ордеров: выставить выжидающий лимитный ордер.

И прирост, и сокращение объемов на ценовых уровнях может служить источником информации об участниках рынка и, как следствие, обеспечивать краткосрочный ценовой сигнал.

Лучшие ценовые индексы и оптимальные биржевые комиссии

Для построения большинства ценовых индексов берутся данные о торгах с нескольких бирж и агрегируются, чтобы получить средневзвешенную по объему рыночную цену. В индексах TradeBlock предусмотрено также уменьшение относительного веса данных конкретной биржи в случае перерывов в работе или значительных отклонений цены на ней в сравнении с остальными провайдерами данных для индекса. Но есть ли еще что-то, что мы можем сделать?

На GDAX, при комиссии 0% для мейкера и 0,3% для тейкера, в сделке по 4000 $/BTC, выбивающей ордер со стороны предложения, продажа фактически происходит по цене 4000 $, а покупка – по 4012 $/BTC. «Справедливой ценой» для этой сделки было бы скорее что-то около 4006 $/BTC, чем ее фактическая цена. С другой стороны, при симметричной комиссии 0,25%, применяемой к мейкерам и тейкерам на Bittrex, справедливой ценой и является цена исполнения ордера. Другими словами, при цене исполнения 4000 $/BTC покупатель фактически платит 4010 $/BTC, продавец получает за 1 BTC 3990 $, а цена ордера является средним значением.

Таким образом, с точки зрения определения цены, тикерные ленты различных бирж не являются непосредственно сопоставимыми – вместо этого их нужно очистить от комиссий и стандартизировать при построении индекса цен. Конечно, на практике ситуация может осложняться изменением размера комиссии в зависимости от торговых объемов участников сделки, что может увеличивать или уменьшать асимметричность комиссий для мейкеров и тейкеров, поэтому точно узнать реальную цену для покупателя и для продавца мы не можем. Из этого также следует два интересных вывода.

Во-первых, на биржах с сильной асимметрией комиссий для мейкеров и тейкеров определение цены может быть ограничено и давать противоречивые результаты. Если предположить, что для большинства аккаунтов на GDAX применяется комиссия в размере 0,3%, как для мейкеров, так и для тейкеров, и отметить также, что спред в паре BTCUSD на GDAX часто составляет 1 цент, то «справедливая цена» для каждой сделки на стороне покупки примерно на 0,15% ниже реальной цены покупки, а «справедливая цена» для каждой сделки на стороне продажи примерно на 0,15% выше реальной цены продажи. Таким образом, “справедливая цена” во время затишья быстро колеблется между этими двумя точками без возможности дополнительной детализации и определения цены в диапазоне между ними.

Алгоритмическая торговля криптоактивами
Журнал ордеров GDAX.

Во-вторых, подобно распределению налогового бремени между производителями и потребителями, существует и эквивалентность между мейкером и тейкером в отношении выплачиваемой ими биржевой комиссии. Если вы повышаете комиссии для маркетмейкеров относительно тейкеров, то они увеличивают спред, и за счет этого перекладывают часть бремени на тейкеров. Если же вы повышаете комиссии для тейкеров, то мейкеры уменьшают спред и таким образом абсорбируют часть бремени тейкеров. Особый пограничный случай – когда вы настолько отдаете предпочтение мейкерам, что спред сужается до одного тика (часто это можно наблюдать на GDAX), и плотность журнала ордеров просто не может быть еще выше. В такой ситуации любое дальнейшее повышение комиссий бьет уже по самой бирже с точки зрения упущенной выгоды. За исключением этого особого случая, можно сказать, что реальное значение имеет скорее сумма комиссий, взимаемых с мейкеров и тейкеров, нежели то, как именно распределено между ними это бремя. В конечном счете, как и в случае с кривой Лаффера в налоговой политике, биржи в политике сбора комиссий сталкиваются с проблемой оптимизации доходов. Мы видим, что пограничные сценарии здесь те же, что и в налоговой политике. Если биржа не будет взимать комиссии, то она не получит прибыль. Если комиссии биржи будут составлять 100%, то на ней не будет сделок, и она, опять же, не получит прибыль. По некоторому дополнительному размышлению становится ясно, что отношение прибыльности биржи к общему уровню ее торговых комиссий представляет собой вогнутую функцию с уникальным максимумом.

Алгоритмическая торговля криптоактивами
Кривая Лаффера (источник). X – налоговая ставка, Y – налоговые поступления в бюджет.

Собственные данные

Каждый внебиржевой отдел имеет полууникальные размеченные графические данные от каждого из адресов его контрагентов и совпадения между ними и известными адресами бирж. Размеченные данные обеспечивают хорошую отправную точку для многих видов алгоритмов машинного обучения.

Алгоритмическая торговля криптоактивами
Граф транзакций Биткойна (источник).

Каждому майнеру доступны собственные данные о добавленной стоимости минтинга («чеканки») койна (для PoW-протокола). Если они обладают также представлением о собственном положении относительно остальных майнеров мира с точки зрения эффективности, то могут извлечь из этого уникальное знание об избыточности или недостатке предложения в краткосрочной перспективе.

Черные ящики

Все знают, что черные ящики – это плохо. Трудно, если не невозможно, сказать, что в них происходит, и, когда что-то идет не так, трудно определить, почему именно. Тем не менее, и многие из лучших хедж-фондов, и сомнительные биржевые конторы, в конечном итоге собственноручно создают черные ящики. На это есть пара очень веских причин. Во-первых, сотрудники в фирмах приходят и уходят, и плохо документированный унаследованный программный код плохо понятен новичкам. Во-вторых, конкуренция на рынке означает, что любая стратегия, которую, во всей ее полноте, может охватить один разум, в итоге проиграет стратегии, разработанной в сотрудничестве экспертами и специалистами в своих узких областях. И, наконец, объединение нескольких стратегий зачастую дает лучший результат, чем применение их же, но раздельно. Для примера, предположим, что у вас есть долгосрочная импульсная стратегия (S1), а также краткосрочная стратегия, построенная на возврате к средним значениям (S2). Безусловно, преимущества краткосрочных сделок в рамках S2 могут эффективно дополнить S1 и, конечно, S2 только выиграет от долгосрочных прогнозов в рамках S1. Поэтому мы, естественно, можем объединить их в единую стратегию, более эффективную, чем любая из ее составляющих в отдельности. В конечном счете стратегии превращаются в черные ящики не потому, что это желательно, а несмотря на нежелательность этого.

Алгоритмическая торговля криптоактивами
«Черный квадрат» Малевича.

Выявление искажающих факторов

Предположим, что у нас есть модель, предсказывающая частоту поездок с Uber на основании двоичного индикатора влажности земли, и эта модель работала очень хорошо. Очевидно, что влажность почвы никак напрямую не связана с поездками Uber, однако земля становится влажной из-за дождя, который также побуждает людей больше пользоваться услугами Uber. Несмотря на то что наша модель дает точный результат, она подвержена остаточному риску. Например, если в одном из районов города прорвет водопроводную трубу, из-за чего почва станет влажной (а то и случится натуральный потоп), то мы сделаем ошибочный вывод о том, что в этом районе должно возрасти количество поездок с Uber.

В целом, если из А следует Б (А => Б) и из А следует В (А => В), то модель Б => В может работать, но только при благоприятном стечении обстоятельств. Поэтому крайне важно, чтобы прогностические закономерности не противоречили интуиции и здравому смыслу. Недостаточно слепо добывать данные и находить сильные прогностические сигналы. Мы должны стремиться выявить любые искажающие факторы до того, как сигналы сольются в единый «черный ящик», в котором эти факторы будет все труднее распознать.

Возьмем другой пример. Скажем, А => Б и Б => В. Модель А => В будет работать, но будет уступает модели Б => В. Во-первых, А может быть не единственным фактором, вызывающим (в смысле причинности по Грэнджеру) наступление Б; возможно, что А’ также вызывает Б. Во-вторых, если закономерность А => Б перестает работать, то А => В ломается тоже, но модель Б => В продолжит работать исправно.

Выбор элемента

Переходя к многофакторным моделям, их элементы в идеале должны быть как можно более ортогональными друг к другу. Например, предположим, что мы получаем стоимость мороженого как функцию цены сахара и цены молока. Возможно, нам лучше было бы использовать цену сахара и сезонность (весна, лето, осень, зима). Элементы первой модели подвержены инфляции, являются составными компонентами для приготовления пищи, принадлежат к классу потребляемых продуктов, и оба относятся к стороне предложения в процессе приготовления мороженого, тогда как элементы второй модели намного более ортогональны (один – со стороны предложения, второй – со стороны спроса). Очевидно, что модель с тремя элементами – ценой сахара, ценой молока и сезонностью – будет более точной, но с увеличением размера модели калибровка будет занимать по меньшей мере сверхлинейно больше времени, если не экспоненциально больше. Если в вашей модели 20 элементов, то определенные методы ее оптимизации, такие как градиентный спуск, становятся недоступными, поэтому важно проводить своевременный и правильный отбор элементов. Нам следует по возможности избегать корреляции, отдавая предпочтение более ортогональным элементам.

Эпистемология

В контексте построения количественных моделей важны и эмпирический подход, и дедуктивный метод.

Один из недостатков чисто эмпирического подхода заключается в невозможности проводить контролируемые эксперименты на рынках. Мы не можем зафиксировать точку времени, попробовать два разных действия и сравнить достигнутый результат. Другими словами, в гуманитарных и социальных науках, в отличие от естественных, не применяется контрфактуальный подход. В трейдинге мы тоже не можем точно измерить влияние собственных действий на рынок. То есть, если в некий период времени мы не принимали в рынке активного участия, то мы не можем знать, как вели бы себя журнал и поток ордеров, если бы мы активно торговали. Равно как, если в некий период времени мы активно торговали, то не можем знать, как вели бы себя журнал и поток ордеров, если бы мы не принимали активного участия в рынке. Еще один недостаток эмпирического подхода заключается в том, что для любого заданного исторического паттерна есть бесконечное количество моделей, которые бы подходили под этот паттерн, но каждая из которых могла бы выдать совершенно разные прогнозы относительно будущего (т.е. вариант проблемы черного лебедя). У Юма, Витгенштейна, Крипке, Куайна, Поппера и Талеба – у всех них можно найти множество критических замечаний и доводов в защиту логического эмпиризма и проблемы индукции, в которых подробно описываются эти идеи.

Одна из проблем с чисто дедуктивными рассуждениями заключается в том, что мы, люди, можем допускать ошибки. Любая логическая ошибка по цепочке дедукции аннулирует результат. Более того, для того чтобы заключение можно было считать обоснованным, не только каждый логический шаг на пути к этому заключению должен быть состоятельным, но и все предлагаемые нами предпосылки тоже должны быть истинными и соответствовать действительности. Поскольку модели, чтобы быть полезными, должны быть отслеживаемы, а полученные с их помощью результаты – поддаваться оценке, их авторы часто идут на упрощение реальности и делают не соответствующие действительности допущения.

Рассмотрим пример. Предположим, что вы хотели провести моделирование методом Монте-Карло для траектории цены актива. Взяв исторические данные о прибыльности актива и использовав часть их непосредственно в своей модели, вы столкнетесь со следующими проблемами: 1) недостаточность данных в хвостах, представляющих экстремальные события, и 2) некоторая зашумленность данных на удалении от некоторого неизвестного истинного распределения вероятности получения прибыли. Теперь, скажем, вместо этого, вы приспосабливаете исторические данные к нормальному распределению, а затем берете образец из них для ваших путей моделирования. Тогда вы сталкиваетесь с такой проблемой, что в реальности прибыль не распределяется нормально (т.е. с лептокуртическим распределением, или «жирными хвостами»). Так что вместо всего этого вы решаете приспособить историческую доходность к распределению Коши или Леви, или даже к альфа-устойчивому распределению Леви. Теперь модель становится сложнее, и вы случайно допускаете ошибку в программном коде. После нескольких дней работы вы определите проблему и исправите ее. Код развертывается в реальной среде, и вы получаете работающую модель… на срок около двух лет. Два года спустя оказывается, что 5-е моменты имеют значение, а ваше альфа-устойчивое распределение Леви не учитывает этот нюанс. Примерно так, в общих чертах, все и происходит.

Алгоритмическая торговля криптоактивами
Моделирование метоодм Монте-Карло: 200 дн. (источник).

Наконец приведу два эвристических правила, которые я обычно использую: 1) если сомневаешься, руководствуйся здравым смыслом; 2) при прочих равных, простые и экономные конструкции лучше сложных нагромождений.

Трение реального мира

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

Предположим, вы отправляете на биржу запрос на размещение ордера, и обычно вы получаете обратный сигнал, подтверждающий размещение ордера или о том, что произошла ошибка, и ордер размещен не был. Представим, что в один прекрасный день вы не получаете обратной связи по своему запросу на размещение ордера. Будете ли вы считать этот ордер Шредингера размещенным или нет? Вы рискуете неправильно классифицировать такой ордер, и оказываетесь подвержены ошибкам типа 1 (ложноположительный результат) и типа 2 (ложноотрицательный результат). Является ли один тип ошибки менее дорогостоящим, чем другой?

Предположим, что вы используете стратегию арбитража между двумя биржами. Что вы будете делать, если API одной из них перестанет работать прямо в момент совершения пары сделок на обеих биржах. Один из ордеров мог быть размещен, но другой мог и не пройти. Теперь вы столкнулись с нежелательным влиянием материально-технической базы. Какой способ лучше всего подходит, чтобы справиться с этой ситуацией?

Как вы действуете в случае задержек при размещении и отмене ордеров, когда биржа оказывается под DDoS-атакой или ее мэтчинговая система перегружена?

А как насчет случаев, когда биржи без предупреждения вносят недокументированные изменения в свой API?

Предположим, что биржа выполняет обновление балансов для своих клиентов параллельно с тем, как ее мэтчинговая система выполняет сделки, из-за чего если запросить баланс, в одну милли- или микросекунду с исполнением сделки, то клиенту могут быть представлены конфликтующие данные, согласно которым сделка уже была исполнена, но состояние баланса еще не изменилось. Как можно создать собственную систему для синхронизации с согласованным состоянием мира, даже если биржа предоставляет вам конфликтующие данные о состояниях?

Предположим, что комиссии на бирже слишком высоки для того, чтобы размещать лимитные ордера по оптимальной цене в соответствии с моделью. Или что еще хуже, некоторые из ваших конкурентов заключили с биржей взаимовыгодное соглашение и работают на льготных условиях. Как это повлияет на ваши действия?

Как вы справляетесь с ребалансированием фиатных средств, если ваш банк не работает в выходные и праздники, а торговля криптоактивами происходит в режиме 24/7?

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

Как вы в своей системе учета работаете с форками, эйрдропами, пылевыми атаками (dust attack) на сети и другими ситуациями, на которые не можете повлиять?

Вот несколько эвристических правил, которым мы обычно следуем. 1) Все, что может пойти не так, пойдет не так, даже те вещи, о которых вы пока что не можете даже подумать, поэтому стройте системы таким образом, чтобы неудачи выглядели достойно. 2) И вы, и все ваши контрагенты – такие, как биржи, например – будут допускать ошибки. 3) В отличие от потребительских технологий, здесь не нужно ломать вещи и быстро итерировать: если вы потеряете слишком много денег, скорее всего, у вас не будет второго шанса. 4) Создавайте столько резервных копий системы и данных, сколько возможно, и делайте свои рабочие процессы избыточными, чтобы максимально нивелировать человеческий фактор. 5) Не используйте типы с плавающей точкой, так как потеря точности может дорого обойтись при работе с финансовыми инструментами с очень низкой стоимостью (например, KINBTC). 6) Сохраните достаточное количество вызовов из лимита API для отмены всех открытых ордеров в любой момент.

Заключительные соображения

Трейдинг – это единственная работа в мире, прямая цель которой состоит в том, чтобы превратить капитал в еще большее количество капитала. Соедините это с напоминающим Дикий Запад характером крипторынков, и вы получите настоящую сточную яму для людей и стратегий, нацеленных на быстрое обогащение. Каждый хочет получить простые ответы и никто не хочет учиться ремеслу. Люди хотят, чтобы говорящие головы в телевизоре рассказали им о целевых курсах, о том, когда покупать и когда продавать. Они хотят купить онлайн-курс по трейдингу за 99,99 $ или построенную на ТА алгоритмическую стратегию за 19,99 $/мес. Но ведь никто не стал бы продавать волшебную коробочку, печатающую деньги, он бы сохранил ее для себя. Нет никаких магических формул для генерации прибыли. Рынки находятся в постоянном развитии, и со временем игра становится только сложнее. Единственный способ сохранять лидерство в игре – это нанять лучшего таланта, способного адаптироваться к изменениям рыночных условий и постоянно превосходить самого себя.

Рынок – как гигантский покерный стол с миллионами игроков, каждый из которых считает, что может переиграть своего соседа. И люди за этим столом уже прошли некий первичный самоотбор. Побеждать – значить играть лучше, чем чуть больше половины капитала за столом, из чего, в свою очередь, следует, что вы должны быть лучше, чем 90% игроков, поскольку капитал распределяется между победителями по степенному закону.

С культурной точки зрения трейдинг отличается от инвестиций в венчурный капитал. В Кремниевой долине окупается то, что Питер Тиль называет твердым оптимизмом. Вам нужно верить, что новые технологии изменят мир и что вы можете будете определять курс, по которому это будет происходить. В Чикаго, с его биржевыми конторами, культура сильно отличается. Там окупается крайне состязательное и антагонистическое мышление. Каждый хочет выиграть так же сильно, как и вы, и всякий раз, когда вы совершаете сделку, у вас в голове сидит это свербящее беспокойство о том, что другой участник сделки, возможно, знает что-то, чего не знаете вы. Стартап из Долины должен сначала побороть безразличие мира, прежде чем он столкнется с реальной рыночной конкуренцией. С другой стороны, не имеющая клиентов биржевая контора, чтобы их набрать, не может избежать конкуренции уже с самого начала. Лучшие конторы такого рода окутывают себя покровом секретности. Криптотрейдинг находится на пересечении этих миров, и в этом зарождающемся пространстве еще нет четких победителей. Мы, в Galois Capital, стремимся к этой цели.

 

Подписывайтесь на BitNovosti в Telegram!

Делитесь вашим мнением об этой статье в комментариях ниже.

Источник




[vkontakte] [facebook] [twitter] [odnoklassniki] [mail.ru] [livejournal]

Statok.netКаталог сайтов