Стратегия торговли криптопарами

Здесь приведена реализация стратегии торговли парами на основе данных Binance. Во-первых, мы импортируем несколько библиотек.

Затем мы создаем список, содержащий несколько монет, торгуемых на Binance.

Конечно, вы можете добавить или удалить столько элементов из этого массива, сколько пожелаете.

В следующих строках мы определяем переменные pair, root_url интервал, которые позволяют нам получать исторические данные из Binance. Затем мы считываем данные со следующей строкой:

data = json.loads(requests.get(url).text)

Когда вы посмотрите на содержимое переменной данных, вы увидите что-то вроде этого:

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

df = pd.DataFrame(data)

Теперь наш df выглядит так:

Сейчас намного лучше, но мы не знаем, что означают эти имена столбцов. Здесь может пригодиться документация по API Binance.

Мы переименуем наши столбцы с помощью следующего кода:

df.columns = ['open_time',
'o', 'h', 'l', 'c', 'v',
'close_time', 'qav', 'num_trades',
'taker_base_vol', 'taker_quote_vol', 'ignore']

Наш фрейм данных теперь в понятной человеку форме.

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

df.index = [dt.datetime.fromtimestamp(x/1000.0) for x in df.close_time]

Это наша функция create_df() которую мы подробно объяснили ниже

def create_df():
pair = "USDT"
root_url = 'https://api.binance.com/api/v3/klines'
interval = '1d'
close_prices = pd.DataFrame()
for i in lst:
url = root_url + '?symbol=' + i + pair + '&interval=' + interval
data = json.loads(requests.get(url).text)
if 'msg' in data:
pass
else:
df = pd.DataFrame(data)
df.columns = ['open_time',
'o', 'h', 'l', 'c', 'v',
'close_time', 'qav', 'num_trades',
'taker_base_vol', 'taker_quote_vol', 'ignore']
df.index = [dt.datetime.fromtimestamp(x/1000.0) for x in df.close_time]
close_price = df['c']
close_prices[i] = close_price
close_prices = close_prices.apply(pd.to_numeric)
return close_prices

Вызов этой функции вернет фрейм данных, содержащий исторические данные о ценах от Binance на указанные нами токены.

Итак, наш фрейм данных содержит исторические данные с Binance в удобочитаемом формате. Следующим шагом является расчет ежедневной доходности монет, чтобы мы могли вычислить корреляцию доходности. pct_change() в Pandas — это, пожалуй, самый питоновый способ сделать это.

def calculate_daily_return(df):
daily_return = df.pct_change(1)
return daily_return

Следующая функция берет фрейм данных ежедневных доходностей и создает корреляционную матрицу доходности. Давайте пройдемся по строкам. Сначала создадим корреляционную матрицу с помощью функции corr(). Затем мы преобразуем наш датафрейм в большой столбец с помощью функции melt().

Мы должны отбросить все корреляции со значением 1, так как это корреляции монет с самими собой; Нас эти не интересуют. Нас интересуют корреляции монет с другими монетами. Мы также игнорируем корреляции со значением ниже 0,75, поскольку они не указывают на сильную связь между двумя активами. Я не утверждаю, что 0,75 намного лучше, чем любой другой порог, но мы должны с чего-то начать. Наконец, столбец сортируется по убыванию, который хранится в sorted_corrs переменной. Функция возвращает sorted_corrs.

def correlations(df):
corr_matrix = df.corr()
correlations_df = corr_matrix.melt()
correlations_df = correlations_df.loc[(correlations_df["value"] != 1.0) & (correlations_df["value"] >= 0.75)]
sorted_corrs = correlations_df.sort_values(ascending=False, by="value")
return sorted_corrs

Теперь, когда у нас есть список коррелированных активов, мы можем выбрать 10 наиболее коррелированных пар активов. Вы можете выбрать любое количество пар, но для этой модели мы остановимся на 10. С помощью цикла for мы проходим по списку корреляций и помещаем пары монет с высокой корреляцией в список монет. Здесь следует сделать одно уточнение. Дело в том, что конкретная монета, скажем, монета А, может быть соотнесена как с монетой В, так и с монетой С. Это не то, чего мы хотим в этой модели, потому что это удвоит наш риск. Поясним это на примере.

Скажем, из-за ажиотажа цена токена MANA значительно выросла. Мы выяснили, что за последние 30 дней (период ретроспективного анализа) MANA коррелирует как с ENJ, так и с SAND. Всплеск привел к тому, что MANA торговалась выше исторических спредов ENJ-MANA и SAND-MANA. Это означает, что мы должны занять короткую позицию по обеим парам, т.е. в первой сделке мы покупаем ENJ и продаем MANA, а во второй сделке покупаем SAND и продаем MANA. Мы будем рисковать большими деньгами с MANA, чем с другими монетами. Если у нас есть $10 000 и мы выделяем $1 000 на каждую сделку, это означает, что мы будем торговать каждой ногой каждой пары с $500. Но поскольку MANA находится в двух сделках, мы рискнем $1,000 именно этой монетой. Еще раз повторю — это не то, чем мы хотим заниматься. Так что этого следует избегать. Если вы пройдетесь по коду, вы увидите, что это то, что делает сценарий.

Пары монет хранятся в виде кортежей в монетах, которые возвращает функция.

# select 10 most highly correlated pairs
def unique_pairs(df):
# create an empty list where we'll store pairs of correlated tokens
coins = []
# temporary array
out = []
high_corrs_array = list(df["variable"])
for i in range(0, len(df), 2):
if high_corrs_array[i] not in out and high_corrs_array[i+1] not in out:
tupl = (df.iloc[i]["variable"], df.iloc[i+1]["variable"])
coins.append(tupl)
out = [item for t in coins for item in t]
if len(coins) == 10:
break
return coins

Это первая часть серии. Здесь мы получили данные с Binance и узнали, как рассчитать дневную доходность и корреляции между ними. Мы также написали код для выбора наиболее коррелированных X (что в нашем случае равно 10) криптовалютных пар. В следующей статье я расскажу об этом и о том, как построить реальную стратегию торговли по парам.

Вот код, который мы написали до сих пор:

import requests
import json
import pandas as pd
import datetime as dt
import numpy as np
# list of about 100 tokens traded on Binance
lst = ["BTC", "ETH", "CAKE", "DOT", "MANA", "SAND", "AVAX", "ALGO", "ATOM", "MATIC", "BNB",
"SNX", "THETA", "GRT", "LINK", "SHIB", "DOGE", "VET", "AXS", "SOL", "FIL", "TRX",
"FTM", "FARM", "LTC", "ETC", "NEAR", "ALICE", "ICP", "EGLD", "UNI", "ADA", "XRP",
"ZEC", "QUICK", "BAT", "ENJ", "GALA", "1INCH", "SLP", "COMP", "ROSE", "ONT", "AAVE",
"ANKR", "NEO", "XTZ", "WTC", "OCEAN", "IOTA", "IOTX", "COTI", "XLM", "QTUM", "AR",
"LINA", "BETA", "CELO", "ZIL", "HBAR", "OGN", "ILV", "ALPHA", "RVN", "KAVA","YGG",
"AUDIO", "STORJ", "ATA", "DODO", "POND", "CHZ", "YFI", "SUPER", "NKN", "INJ", "EOS",
"LRC", "ARPA", "LPT", "XVS", "KLAY", "CRV", "LTO", "MKR", "ONE", "RNDR",
"FOR", "BICO","SYS", "CELR", "ALPACA", "BLZ", "DUSK", "KNC", "PAXG", "DOCK",
"MBOX", "BADGER", "ZRX", "IDEX", "FIDA"]
commissions = 0.01
slippage = 0.001
bid_ask_spread = 0.05
def create_df():
pair = "USDT"
root_url = 'https://api.binance.com/api/v3/klines'
interval = '1d'
close_prices = pd.DataFrame()
for i in lst:
url = root_url + '?symbol=' + i + pair + '&interval=' + interval
data = json.loads(requests.get(url).text)
if 'msg' in data:
pass
else:
df = pd.DataFrame(data)
df.columns = ['open_time',
'o', 'h', 'l', 'c', 'v',
'close_time', 'qav', 'num_trades',
'taker_base_vol', 'taker_quote_vol', 'ignore']
df.index = [dt.datetime.fromtimestamp(x/1000.0) for x in df.close_time]
close_price = df['c']
close_prices[i] = close_price
close_prices = close_prices.apply(pd.to_numeric)
return close_prices
close_prices = create_df()
#close_prices4 = close_prices.iloc[0:70,]
def calculate_daily_return(df):
daily_return = df.pct_change(1)
return daily_return
def correlations(df):
# create a correlation matrix
corr_matrix = df.corr()
# convert our matrix into ine long column
correlations_df = corr_matrix.melt()
# drop the correlations with the value of 1.0 since all securities are correlated with themselves
# and select the most correlated pairs
correlations_df = correlations_df.loc[(correlations_df["value"] != 1.0) & (correlations_df["value"] >= 0.75)]
sorted_corrs = correlations_df.sort_values(ascending=False, by="value")
return sorted_corrs
# select 10 most highly correlated pairs
def unique_pairs(df):
# create an empty list where we'll store pairs of correlated tokens
coins = []
# temporary array
out = []
high_corrs_array = list(df["variable"])
for i in range(0, len(df), 2):
if high_corrs_array[i] not in out and high_corrs_array[i+1] not in out:
tupl = (df.iloc[i]["variable"], df.iloc[i+1]["variable"])
coins.append(tupl)
out = [item for t in coins for item in t]
if len(coins) == 10:
break
return coins

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

Модель торговли криптовалютными парами

Во-первых, давайте посмотрим на код.

Он довольно длинный и кажется сложным. Но это не так. Давайте пройдемся по сценарию построчно. Функция принимает четыре параметра: фрейм данных, который является нашим фреймом данных, содержащий данные о цене, k, число, которое умножается на стандартное отклонение спреда между парами монет — со значением по умолчанию 1. Другими параметрами являются ретроспективный анализ и удержание. Период ретроспективного анализа относится к периоду времени, в течение которого оценивается прошлая доходность актива или портфеля. Холдинг относится к периоду времени, в течение которого мы владеем активом.

Мы будем перебирать наш фрейм данных цен закрытия с помощью цикла for. Мы начинаем с 30, потому что мы смотрим на взаимосвязь между монетами за последние 30 дней. Это, конечно, гибко, и вы можете экспериментировать с разным количеством дней. Последнее значение в цикле for указывает значение приращения. Как вы, вероятно, знаете, значение приращения по умолчанию в цикле for в Python равно 1. Таким образом, если мы хотим использовать другое значение, мы должны указать его.

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

Теперь мы можем пройтись по нашему списку пар монет. Идея проста. Допустим, мы находимся в 31-м ряду. Мы вычисляем корреляционную матрицу для нашего фрейма данных и выбираем пары монет, которые показали наибольшую корреляцию за последние 30 дней. После того, как мы выбрали 10 пар монет, мы проверяем, есть ли существенное отклонение от среднего спреда между двумя ногами пары. Допустим, одна из пар в нашем списке (ENJ, MANA). Мы рассчитываем спред между ценами этих двух монет за последние 30 дней. На 31-й день мы проверяем, значительно ли сейчас спред выше или ниже нашего исторического 30-дневного спреда. Если текущий спред выше, мы ставим, что спред вернется к своему историческому среднему значению. Это означает, что мы шортим спред, т.е. мы шортим первую монету и одновременно открываем длинную позицию по второй. И наоборот, если спред значительно ниже исторического спреда, мы открываем длинную позицию по первой монете и одновременно открываем короткую позицию по второй.

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

Как мы можем его улучшить?

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

Некоторые изменения, которые вы можете рассмотреть, включают, но не ограничиваются:

1) Изменить базу пары с USDT на BTC. Например, вместо того, чтобы смотреть на спред между ETHUSDT и DOTUSDT, мы можем проанализировать пару ETHBTC и DOTBTC. Я думаю, что это может значительно улучшить эффективность стратегии. Почему? Потому что рынок криптовалют очень волатилен, и монеты с базой USDT могут находиться в тренде в течение длительного периода времени. Происходит это просто из-за того, что одна нога пары является стейблкоином и не так сильно двигается. Это нежелательно, если мы хотим, чтобы пары токенов вернулись к среднему значению. Но если мы свяжем монету с BTC, а не со стейблкоином, таким как USDT, это, возможно, приведет к более среднему поведению, потому что в этом случае одной из ветвей пары является BTC, который сам по себе может значительно колебаться.

2) Вы можете играть со значением k. Это параметр, который, умноженный на стандартное отклонение спреда, показывает, насколько текущий спред отклонился от среднего спреда. Значение 1 даст много сигналов, но также и много ложных сигналов. Более высокие значения будут давать меньшее, но, надеюсь, более точные сигналы.

3) Можно исключить пары, где ожидается дальнейшее отклонение цены. Если спред < (среднее — 4 * std) или спред > (среднее значение + 4 * std), то можно предположить, что эти пары находятся в тренде и они могут не вернуться к своему среднему значению.

Возможности парной торговли как форма MEV на Ethereum

Мотивация

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

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

Методология и данные

Я посчитал, что пара криптовалют жизнеспособна для парного трейдинга, если их отношения стационарны на основе расширенного теста Дики-Фуллера и возврата к среднему значению на основе процесса Орнштейна-Уленбека. После того, как я нашел все пары, которые удовлетворяют этим требованиям, я посчитал, что возможность парного трейдинга присутствует в паре, если ценовое соотношение двух криптовалют удовлетворяет следующим критериям:

S(a,b)>μ(a,b)−2σ(a,b)∨S(a,b)<μ(a,b)+2σ(a,b)(1)

S(a,b)∗(1−f(a,b))2>μ(a,b)∨S(a,b)<μ(a,b)∗(1−f(a,b))2(2)

и

S(a,b)<μ(a,b)−4σ(a,b)∨S(a,b)>μ(a,b)+4σ(a,b)(3)

где S — обменный курс, f — комиссия, связанная с торговой парой, включая как торговую комиссию пары, так и комиссию за газ, связанную с транзакциями, μ — долгосрочное среднее значение, а σ — волатильность.

Если уравнение (1) или (2) не выполняется, то расхождение в цене слишком мало для того, чтобы возможность торговли парой была прибыльной. Если оба уравнения (1) и (2) выполняются, а уравнение (3) не выполняется, это означает, что цены разошлись. Значения в уравнениях (1) и (3) определены на основе значений, используемых в литературе по парному трейдингу TradFi (например, Caldeira and Moura 2013; «До и Фафф», 2010; Gatev et al., 2006; Jacobs and Weber 2015; Riedinger 2017) и уравнение (2) определяется как пороговое значение для фильтрации расхождений в ценах, которые удовлетворяют уравнению (1), но будут убыточными после уплаты сборов.

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

Мой набор данных состоит из всех транзакций в торговых парах Uniswap v3, Uniswap v2, форков Uniswap v2 и Balancer в период с 15 сентября 2022 года по 7 сентября 2023 года. Я отфильтровал набор данных, чтобы он состоял только из торговых пар с не менее чем 1 000 сделок за период наблюдения, чтобы рассматривать только активно торгуемые пары.

Прибыльность возможностей парного трейдинга

Из выявленных возможностей для парной торговли я нахожу, что средняя доходность возможностей для парной торговли положительна, а медианная доходность отрицательна как в процентах, так и в долларах. Я рассчитываю доходность возможностей в процентах как доходность позиции с нулевым вложением в возможную сделку. Я рассчитываю процентную отдачу выигрышных возможностей для торговли парами следующим образом: ∣∣S(a,b)−μ(a,b)∣∣⋅(1−f(a,b))2S(a,b) и упущенные возможности для торговли парами, так как −∣∣S′(a,b)−S(a,b)∣∣⋅(1+f(a,b))2S(a,b)где S′(a,b) – новый курс торговой пары после того, как цена разошлась. Я рассчитываю доходность возможности парной торговли в долларах, рассчитывая доходность позиции оптимального размера с учетом влияния на цену входа в позицию, используя следующую формулу для выигрышных возможностей для парной торговли: Δa⋅∣∣S∗(a,b)−μ(a,b)∣∣⋅(1−f(a,b))2S(a,b)где Δa — это изменение ликвидности в долларах, которое может вызвать пользователь, входящий в возможность парной торговли, прежде чем уравнения (1) и (2) перестанут оставаться в силе и S∗(a,b) — средний обменный курс, уплаченный за позицию.
Точно так же я рассчитываю доходность убыточных возможностей для торговли парами как −Δa⋅∣∣S′(a,b)−S∗(a,b)∣∣⋅(1+f(a,b))2S(a,b).

Отдача возможностей в процентах и долларах визуализирована на рисунках 1 и 2. Результаты показывают, что парный трейдинг можно использовать в качестве прибыльной стратегии извлечения MEV в течение длительного периода, но отдельные возможности, как правило, приносят убыток. Подгруппа Uniswap v3 с отрицательной доходностью в процентах и положительной доходностью в долларах означает, что пользователи должны оптимизировать размер своих позиций, чтобы извлечь выгоду из возможностей. Из 6731 возможностей для торговли парами 48% вернулись к своему долгосрочному среднему значению и, таким образом, были прибыльными, а остальные разошлись и привели к убыткам.

Рисунок 1: Эмпирическая кумулятивная функция распределения доходности возможностей парной торговли в процентах

образ904×542 49 кб

Рисунок 2: Эмпирическая кумулятивная функция распределения доходности возможностей парного трейдинга в долларах

образ904×542 46,7 КБ

Как долго существуют возможности для торговли парой?

Я определяю окно входа как количество блоков возможностей для парной торговли. Возможности парной торговли имеют медианное окно входа в 53 блока и среднее значение 1963 блока. Распределение продолжительности окна входа сильно искажено в положительную сторону, о чем свидетельствуют медиана и среднее значение, а также показано на рисунке 3.

Медиана в 53 блока говорит о том, что парный трейдинг не так чувствителен ко времени, как стратегии извлечения MEV, связанные с атомарным арбитражем или ликвидациями. Рациональный поисковик воспользуется такой возможностью, если он ожидает, что расхождение в ценах вернется, и ожидает, что доходность такой возможности с поправкой на риск будет достаточно высокой. Такие возможности могут присутствовать в течение длительного времени, и рациональные искатели по разным причинам ими не воспользуются. Например, левая часть уравнения (2) лишь немного выше правой части неравенства, что означает, что потенциал денежной выгоды невелик, если цена вернется в будущем. Это приводит к тому, что риск по отношению к потенциальной доходности такой возможности является высоким. В качестве альтернативы, пользователь может захотеть воспользоваться такой возможностью, но ему не хватает средств в правильных криптовалютах, чтобы извлечь выгоду из этой возможности, или использование такой возможности уменьшит или увеличит запасы пользователя в определенной криптовалюте до уровня, который слишком увеличит общий риск пользователя, учитывая все методы извлечения MEV, которые использует пользователь.

Рисунок 3: Эмпирическая функция кумулятивного распределения окна входа в возможности парной торговли

образ904×542 49,5 КБ

Продолжительность занятия линии

Возможности парной торговли не являются атомарными, как другие возможности MEV, такие как арбитраж или ликвидация, а вместо этого требуют, чтобы позиция удерживалась в течение определенного периода времени до тех пор, пока расхождение цен не вернется или не разойдется. Парные торговые позиции имеют медианный период удержания 190 блоков и средний 4131 блок. Распределение периода удержания сильно смещено в положительную сторону, о чем свидетельствуют медиана и среднее значение, а также показано на рисунке 4.

Рисунок 4: Эмпирическая кумулятивная функция распределения периода удержания парных торговых позиций

образ904×542 53,4 КБ

Корреляция

Номер блока, доходность, окно входа, период удержания и комиссии не коррелируют друг с другом, за исключением периода удержания и окна входа, которые имеют коэффициент корреляции 0,78 для всех возможностей торговли парами, коэффициент корреляции 0,68 для возможностей возврата и коэффициент корреляции 0,87 для расходящихся возможностей. Сильная корреляция между периодами удержания и окнами входа может быть частично объяснена определением периодов удержания и окон входа. Корреляции переменных приведены в таблице 1.

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

Таблица 1: Корреляция различных переменных

образ904×870 23 КБ

Парная торговля во время повышенного кризиса на рынке

Наблюдая за тем, как менялись доходность, окна входа и периоды удержания во время краха FTX, банкротства Silicon Valley Bank и эксплуатации финансовых пулов Curve, я прихожу к выводу, что изменения переменных однозначны и не подтверждают аргумент о том, что поисковики MEV ведут себя по-другому во время усиления кризиса на рынке.

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

Последствия

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

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

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

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

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

Ограничения

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

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

Будущие направления исследований

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

Я проанализировал возможности парной торговли на основе MEV поверх Ethereum. Исследование может быть воспроизведено поверх других блокчейнов. Это даст лучшее понимание MEV в различных микроструктурах блокчейна и потенциально может помочь в разработке лучших блокчейнов в будущем.

Я сосредоточился только на возможностях парной торговли. В будущих исследованиях могут быть изучены другие стратегии статистического арбитража, такие как арбитраж CeFi-DeFi как форма MEV. Это помогло бы получить более четкое представление о более сложных методах извлечения MEV и поведении поисковиков MEV с течением времени и в различных рыночных режимах. Будущие исследования также могут проанализировать профили риска и доходности между возможностями парной торговли и другими стратегиями извлечения MEV. Другие стратегии извлечения MEV могут быть гораздо более привлекательными для тех, кто ищет MEV.

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

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

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

Ссылки