арбитражное окно что это
Арбитражная торговля (Алгоритм Беллмана — Форда)
Торговля на бирже обычно ассоциируется с рисками. Это совершенно верно для большинства торговых стратегий. Успешность торговли в этих случаях определяется исключительно способностью верно оценивать риски и управлять ими. Но не все торговые стратегии таковы. Существуют безрисковые стратегии, к которым относится, в частности, арбитраж. В этой статье будет рассказано, что такое арбитраж, и как реализовать его с использованием такого классического алгоритма на графе, как алгоритм Беллмана — Форда.
Что такое арбитраж
Арбитраж — это несколько логически связанных сделок, направленных на извлечение прибыли из разницы в ценах на одинаковые или связанные активы в одно и то же время на разных рынках (пространственный арбитраж), либо на одном и том же рынке в разные моменты времени (временной арбитраж).
В качестве простого примера рассмотрим пространственный арбитраж. В Нью-Йорке и Лондоне можно заключить сделки по покупке долларов за евро и евро за доллары. В Нью-Йорке это можно делать по курсу 4 доллара за 3 евро, а в Лондоне — по курсу 5 долларов за 3 евро. Такая разница курсов открывает возможность для пространственного арбитража.
Имея 4 доллара, в Нью-Йорке на них можно купить 3 евро. После этого в Лондоне купить за эти 3 евро 5 долларов. Как можно заметить, такая несложная последовательность сделок приносит 1 доллар прибыли на каждые вложенные 4 доллара. Соответственно, если изначально имеется 4 миллиона долларов, то и прибыль будет уже в миллион.
Когда обменные курсы (спред не рассматриваем) для одной и той же валютной пары отличаются, то последовательность сделок, необходимых для реализации арбитражной стратегии, очень простая. В случае, если курс для одной валютной пары фиксирован, но торгуются несколько валютных пар параллельно, арбитраж также возможен, но последовательность сделок уже будет нетривиальной. К примеру, можно купить 4 евро за 5 долларов, 3 фунта за 4 евро, а потом 6 долларов за 3 фунта. Прибыль от такой последовательности сделок составит 1 доллар на каждые 5 вложенных долларов.
На бирже могут торговаться сотни валютных пар, а обменные курсы постоянно меняются. Понять, какая последовательность сделок принесёт прибыль, без алгоритмического решения в этом случае уже невозможно.
Переход к алгоритмической задаче
Представим потенциальные сделки обмена валюты в алгоритмическом виде, а именно в виде графа. Вершины в этом графе представляют валюты, а ребра являются возможными сделками. Длина же ребра соответствует обменному курсу, по которому данную сделку можно заключить.
Далее встает вопрос, как в таком графе найти последовательность сделок, которая принесет прибыль. Очевидно, что так как в начале последовательности и в её конце должна быть одна и та же валюта, то последовательность должна соответствовать циклу в заданном графе. Далее необходимо определиться с тем, как вычисляется обменный курс между двумя валютами, если они обмениваются не напрямую, а через некую третью валюту (или произвольное количество промежуточных операций). Тут всё тоже достаточно просто. Такой обменный курс будет вычисляться как произведение обменных курсов промежуточных сделок. Прибыльной последовательность сделок становится, если это произведение принимает значение меньше единицы. Другими словами, если единицу валюты можно купить меньше, чем за единицу этой же самой валюты.
Классические алгоритмы на графах плохо подходят для работы с произведением длин ребер. Такие алгоритмы, в основном, заточены на нахождение пути, который определяется как сумма этих длин. Однако для обхода этого ограничения существует математический способ перейти от произведения к сумме. Таким способом является логарифмирование. Если под логарифмом оказывается произведение, то такой логарифм может быть преобразован в сумму логарифмов. В правой же части этого уравнения желаемым является число меньшее единицы, а значит, логарифм этого числа должен быть меньше нуля.
Такой простой математический трюк позволяет перейти от поиска цикла, произведение длин ребер которого меньше единицы, к поиску цикла, сумма длин ребер которого меньше нуля. Такая задача уже выглядит более решаемой классическими графовыми алгоритмами, а точнее алгоритмом Беллмана — Форда.
Алгоритм Беллмана — Форда
Алгоритм Беллмана — Форда обычно используется для нахождения расстояния от заданной вершины до всех остальных вершин некоторого графа, однако его модификация позволяет найти и циклы отрицательной длины.
Базовой операцией этого алгоритма является релаксация ребер. Суть данной операции следующая. Допустим, что имеется ребро , а еще известны вычисленные ранее предварительные значения расстояний до вершин
и
. Для выполнения релаксации ребра требуется вычислить, какое получилось бы расстояние до вершины
, если бы путь проходил через вершину
и ребро
. Это расстояние вычисляется как сумма расстояния до вершины
и длины ребра
. Далее, если это расстояние оказывается меньше текущего предварительного расстояния до
, то это самое расстоние до
переписывается и принимает новое, только что вычисленное, значение.
Остальной алгоритм тоже несложен. Необходимо раз (
— это количество вершин графа) обойти список ребер, при каждом обходе применяя операцию релаксации. Сложность алгоритма при этом получается
(где
— количество вершин, а
— количество ребер). Для графа без отрицательных циклов дальнейшие релаксации ребер не приведут к изменению расстояний до вершин. В то же время, для графа, содержащего отрицательный цикл, релаксации будут уменьшать расстояние до вершин и после
обходов. Это свойство может быть использовано использовано для нахождения искомого цикла.
Тем, кому привычнее разбираться с кодом, должна помочь следующая небольшая реализация описанного выше алгоритма на Kotlin’е.
Разберем пример с небольшим графом, в состав которого входит цикл отрицательной длины. Для работы алгоритма необходимо для каждой вершины поддерживать текущее известное расстояние до неё, а так же ссылку на её предыдущую вершину. Ссылка на предыдущая вершина в данном случае определяется успешной релаксацией ребра. Если операция релаксации прошла успешно, и дистанция до вершины была обновлена, то ссылка на предыдущую вершина этой вершины также обновляется и принимает значение вершины-источника заданного ребра.
Итак, для начала необходимо инициализировать вершины, установив дистанцию до всех вершин кроме начальной равной бесконечности. Для начальной вершины устанавливается дистанция равная нулю.
Далее следует первый обход всех ребер и выполняются их релаксации. Практически все релаксации не дают никакого результата, кроме релаксации ребра . Релаксация данного ребра позволяет обновить расстояние до
.
Далее следует второй обход всех рёбер графа и соответствующие релаксации. На этот раз результат дают релаксации ребер , а также
. Обновляются расстояния до вершин
и
. Тут следует заметить, что результат зависит от того, в каком порядке происходит обход ребер.
При третьем обходе ребер удается успешно релаксировать уже три ребра, а именно ребра ,
,
. При этом, при релаксации ребер
и
обновляются уже записанные ранее расстояния до
и
, а так же соответствующие ссылки на предыдущие вершины.
При четвертом обходе успешно заканчиваются операции релаксации ребер и
. При этом опять обновляются уже записанные значения расстояний до вершин
и
, как и соответствующие ссылки на предыдущие вершины.
Пятый обход является последним. При этом обходе релаксируются ребра ,
,
. Тут можно заметить, что наличие цикла отрицательной длины уже вносит определенные корректировки в значения расстояний до вершин.
После этого обхода, если бы граф не содержал цикла отрицательной длины, алгоритм был бы закончен, так как релаксация любого ребра уже не внесла бы никаких изменений. Однако для данного графа из-за наличия цикла отрицательной длины, все еще можно найти ребро, релаксация которого обновит значения расстояния до одной из вершин.
Ребро, релаксация которого обновляет расстояние до вершины, найдено. Это подтверждает наличие цикла отрицательной длины. Теперь необходимо найти сам этот цикл. Важно, что вершина, расстояние до которой сейчас обновилось, может быть как внутри цикла, так и вне него. В примере это вершина и она вне цикла. Далее необходимо обратиться к ссылкам на предыдущие вершины, которые аккуратно обновлялись на всех шагах алгоритма. Чтобы гарантированно попасть в цикл, необходимо отступить назад на
вершин, пользуясь этими ссылками.
В данном примере переходы будут следующие: . Таким образом находится вершина
, которая гарантированно лежит в цикле отрицательной длины.
Далее дело техники. Чтобы вернуть искомый цикл, нужно опять итерироваться по ссылкам на предыдущие вершины, пока опять не встретится вершина . Это будет значить, что цикл замкнулся. Остается только изменить порядок на обратный, так как при итерациях по ссылкам на предыдущие вершины порядок был инвертирован.
В приведенном алгоритме предполагается наличие некоторой изначальной вершины, от которой рассчитываются расстояния. Наличие такой вершины не является обязательным для работы алгоритма, а введена она в большей степени для соответствия изначальному алгоритму Беллмана — Форда. Если же предметом интереса является цикл отрицательной длины, то можно считать, что все вершины заданного графа являются начальными. Другими словами, что дистанция до всех вершин изначально равна нулю.
Арбитраж – риск по-другому
Наверное любой, кто интересуется финансовыми рынками, хоть раз да слышал о таком явлении как арбитраж. Часто арбитраж определяется как безрисковое извлечение прибыли. На самом деле это не так. В любой арбитражной операции содержится некоторая доля риска, но природа этого риска иная по сравнению с классической спекуляцией. Что же такое арбитраж, какие формы он может принимать, и чем он отличается от других стратегий работы на финансовых рынках?
Классический вариант
В классическом виде арбитраж предполагает покупку ценной бумаги на одном рынке для немедленной ее продажи на другом, чтобы получить прибыль за счет расхождения в ценах. Естественно для этого надо покупать дешево, а продавать дорого. Акции некоторых компаний могут торговаться сразу на двух биржах. Напр., бумаги многих отечественных фирм торгуются одновременно на ММВБ и на лондонской LSE в форме американских депозитарных расписок (ADR). Время от времени могут возникать ситуации, когда рублевая стоимость акции на двух площадках может сильно расходиться. Напр., Лукойл на ММВБ может стоить 1751 рублей, а на LSE 1700 рублей. В этом случае, если быстро купить ADR в Лондоне и продать акции в Москве, можно успеть «поймать» около 3% доходности (в реальности меньше – с учетом комиссий).
«Безрисковый риск»
Следует отметить, что любая арбитражная операция, даже пространственная, содержит в себе элемент риска, поскольку между обнаружением арбитражной ситуации и проведением сделки проходит некоторое время, а, значит, цены могут измениться и уничтожить прибыль. Наиболее надежными являются простые операции из двух бумаг. Однако такой «бесплатный сыр» съедается очень быстро и индивидуальный трейдер, скорее всего, не сможет угнаться здесь за институциональными участниками рынка. Поэтому актуальным является поиск менее очевидных комбинаций, которые могут остаться незамеченными широкими кругами. Поскольку любой арбитраж несет в себе элемент риска, его деление на «рисковый» и «безрисковый» достаточно условно. Безрисковым можно считать арбитраж, риск для которого пренебрежимо мал, скажем, заключается не столько в возможности убытка, сколько в неопределенности конечной величины прибыли из-за возможного изменения цен в процессе его осуществления. К такому арбитражу относятся примеры: акция – ADR и акция – фьючерс. А как насчет других видов арбитража с более высокими рисками? Чем они отличаются от обычной спекуляции? Динамика актива при осуществлении спекулятивной сделки обычно неплохо моделируется процессом случайного блуждания. Формально такая модель предполагает неограниченную прибыль или полное разорение при бесконечном времени торговли. При совершении рискового арбитража стоимость активов тоже колеблется, но происходит это согласно другому случайному процессу. Этот процесс характеризуется возвратом к средним значениям, поэтому риск при увеличении времени операции не растет неограниченно как при случайном блуждании, а, значит, возможное разорение (или margin call) зависит не от времени, а только от величины позиции.
Индивидуальные трейдеры: рисковый арбитраж
Тем не менее, некоторые формы арбитража вполне доступны и для индивидуальных трейдеров. Как правило, они предполагают больший уровень риска. Тем не мене, он все же воспринимается на ином уровне, чем риск, возникающий при обычных спекуляциях вроде покупки акции или продажи фьючерса и т.п. Далее мы рассмотрим некоторые из наиболее распространенных схем.
Парный трейдинг
Парный трейдинг (pairs trading) – один из наиболее популярных методов арбитража, доступных для индивидуального трейдера. Идея здесь заключается в поиске сходных бумаг. Предполагается, что стоимость таких бумаг должна колебаться около долгосрочного отношения. Исследуя это отношение, можно выявить сильные отклонения от равновесия. В этом случае в определенной пропорции продаются дорогие бумаги и покупаются дешевые. Делается это в расчете на то, что, в конечном итоге, соотношение восстановиться и будет получена прибыль. Такая практика часто называется «статистический арбитраж». В популярных заметках на эту тему нередко говорится, что нужно искать сильно коррелированные акции. Это вовсе не так. Чтобы статистический арбитраж работал, бумаги должны быть коинтегрированны. Коинтеграция и корреляция – это разные вещи. Корреляция фиксирует краткосрочную связь активов. Если две акции сильно коррелированны, то они имеют тенденцию, расти или падать одновременно. Однако в долгосрочке соотношение их стоимостей может разойтись на сколь угодно большое расстояние. Поэтому торговля высоко коррелированной парой принципиально не отличается от спекуляцией одной бумагой – только волатильность у такого спреда будет ниже. Коинтеграция же предполагает наличие долгосрочного стационарного соотношения стоимостей бумаг и механизма коррекции отклонений. Таким механизмом может быть, напр., деятельность аналитиков по сравнению компаний, предполагающая продажу переоцененных и покупку недооцененных бумаг. Для выявления коинтеграции активов используют специальные статистические методы. Следует отметить, что даже если на исторических данных бумаги были коинтегрированны, это еще не означает, что они будут вести себя так и в будущем. Если же коинтеграция разладится, это грозит неограниченными рисками при парном трейдинге.
Что еще?
Выше были рассмотрены наиболее элементарные виды арбитража. Существуют и более сложные. Напр., обобщением парного трейдинга является портфельный подход, предполагающий поиск стационарной комбинации из множества активов. Большое количество продвинутых арбитражных возможностей таят в себе опционы, напр., арбитраж наблюдаемой и подразумеваемой волатильности и т.п. Поиски Грааля продолжаются…
Что такое арбитражная торговля?
Арбитражная торговля — это торговая стратегия с относительно низким уровнем риска, которая использует разницу в ценах на разных рынках. В большинстве случаев это связано с покупкой и продажей одного и того же актива (например, биткоин) на разных биржах. Поскольку цена на биткоин теоретически должна быть одинаковой на Binance и на другой бирже, любая разница между ними, скорее всего, является возможностью для арбитража.
Это очень распространенная стратегия в мире трейдинга, но в основном она использовалась крупными финансовыми учреждениями. С демократизацией финансовых рынков благодаря криптовалютам у крипто-трейдеров также появилась возможность ей воспользоваться.
Вступление
Что, если бы вы могли гарантировать себе прибыльную сделку? Как бы это выглядело? Ответ прост. Вы бы знали, прежде чем входить в сделку, что точно получите прибыль. Любой, у кого есть такое преимущество, будет использовать его по максимуму, пока может.
Что такое арбитражная торговля?
Арбитражная торговля — это торговая стратегия, направленная на получение прибыли путем одновременной покупки актива на одном рынке и его продажи на другом. Чаще всего это делается между идентичными активами, торгуемыми на разных биржах. Теоретически разница в цене между этими финансовыми инструментами должна быть равна нулю, поскольку это буквально один и тот же актив.
Задача арбитражного трейдера, или арбитражера, заключается не только в обнаружении этих ценовых различий, но и в возможности быстро пользоваться ими. Поскольку другие арбитражные трейдеры также могут увидеть эту разницу в цене (спреде), окно прибыльности обычно закрывается очень быстро.
Вдобавок ко всему, поскольку арбитражные сделки, как правило, сопряжены с низким уровнем риска, доходность обычно невысока. Это означает, что арбитражным трейдерам нужно не только действовать быстро, но и иметь большой капитал, чтобы не проводить сделки в ноль.
Вам может быть интересно, какие виды арбитражной торговли доступны крипто-трейдерам. Давайте сразу перейдем к делу и рассмотрим стратегии, которыми можно воспользоваться.
Виды арбитражной торговли
Существует множество типов арбитражных стратегий, которыми пользуются трейдеры по всему миру на самых разных рынках. Ниже приведены самые популярные типы криптовалютного трейдинга.
Биржевой арбитраж
Наиболее распространенным типом арбитражной торговли является биржевой арбитраж, когда трейдер покупает один и тот же криптоактив на одной бирже и продает его на другой.
Цена на криптовалюту может быстро меняться. Если вы посмотрите на биржевые стаканы для одного и того же актива на разных биржах, вы обнаружите, что цены почти никогда не бывают одинаковыми в одно и то же время. Именно здесь начинают действовать арбитражные трейдеры. Они пытаются использовать эти небольшие различия для получения прибыли. Это, в свою очередь, делает базовый рынок более эффективным, поскольку цена остается в относительно ограниченном диапазоне на различных торговых площадках. В этом смысле неэффективность рынка может означать возможность.
Как это работает на практике? Допустим, есть разница в цене на биткоин между Binance и другой биржей. Если арбитражный трейдер увидит это, он захочет купить биткоины на бирже по более низкой цене и продать их на бирже по более высокой цене. Конечно, решающее значение имеют время и исполнение. Рынок биткоин — относительно зрелый, и окна возможностей в биржевом арбитраже, как правило, очень небольшие.
Арбитраж ставки финансирования
Другой распространенный тип арбитражной торговли для трейдеров, торгующих производными криптовалютами, — это арбитраж ставки финансирования. Это когда трейдер покупает криптовалюту и хеджирует ее ценовое движение с помощью фьючерсного контракта на ту же криптовалюту, ставка финансирования которого ниже, чем стоимость покупки криптовалюты. Стоимость в данном случае составляют любые комиссии, которые может понести позиция.
Допустим, у вас есть немного Ethereum. На данный момент вы можете быть довольны этими инвестициями, однако цена Ethereum будет сильно колебаться. Итак, вы решаете застраховать свою подверженность ценовым рискам, продав фьючерсный контракт (шорт) по той же цене, что и ваши инвестиции в Ethereum. Допустим, по ставке финансирования по этому контракту вам выплачивается 2%. Это будет означать, что вы получите 2% за владение Ethereum без какого-либо ценового риска, что приведет к выгодной возможности арбитража.
Треугольный арбитраж
Еще один очень распространенный вид арбитражной торговли в мире криптовалют — треугольный арбитраж. Этот тип арбитража возможен, когда трейдер замечает расхождение цен между тремя разными криптовалютами и циклично обменивает их друг на друга.
Идея треугольного арбитража исходит из попытки использовать разницу в цене между валютами (например, BTC / ETH). Например, вы можете купить биткоин за свой BNB, затем купить Ethereum за свой биткоин и, наконец, выкупить BNB за Ethereum. Если относительная стоимость Ethereum и биткоин не соответствует стоимости каждой из этих валют по отношению к BNB, существует возможность арбитража.
Риски, связанные с арбитражной торговлей
Хотя арбитражная торговля считается относительно низкорисковой, это не означает, что риск равен нулю. Без риска не было бы вознаграждения, и арбитражная торговля, безусловно, не исключение.
Самый большой риск, связанный с арбитражной торговлей, — это риск исполнения. Это происходит, когда разница между ценами меняется до того, как вы сможете завершить сделку, что приводит к нулевой или отрицательной доходности. Это может быть связано с проскальзыванием, медленным исполнением сделки, аномально высокими транзакционными издержками, внезапным всплеском волатильности и т. д.
Еще один серьезный риск при участии в арбитражной торговле — это риск ликвидности. Это происходит, когда вам не хватает ликвидности, чтобы входить и выходить с рынков, на которых вы должны торговать, чтобы завершить арбитраж. Если вы торгуете с использованием инструментов с кредитным плечом, таких как фьючерсные контракты, также возможно, что вы получите маржин колл, если сделка пойдет против вас. Как обычно, решающее значение имеет правильное управление рисками.
Завершающие мысли
Возможность воспользоваться преимуществами арбитражной торговли — отличная возможность для трейдеров криптовалюты. Обладая нужным количеством скорости и капитала для участия в этих типах стратегий, вы можете быстро выполнять прибыльные сделки с низким уровнем риска.
Нельзя упускать из виду риск, связанный с арбитражной торговлей. Хотя арбитражная торговля может подразумевать «безрисковую прибыль» или «гарантированную прибыль», в действительности существует достаточный риск, чтобы держать любого трейдера в напряжении.