В процессе загрузки ресурсов... загрузка...

Презентация о своде Lead-Lag в цифровой валюте (2)

Автор:Трава, Создано: 2024-12-18 11:16:41, Обновлено: 2024-12-18 16:54:28

Оригинальное название:

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

Как использовать эффекты Lead-Lag для сбора средств?

1. Мониторинг разницы в ценах

Во-первых, фаворитам необходимо в режиме реального времени контролировать ценовые различия между различными биржами, особенно цены продажи и покупки. Следя за ценой продажи и покупки на бирже А и на бирже В, можно считать, что существует возможность фаворитизма, если цена продажи на бирже А ниже цены покупки на бирже В. Например, цена продажи на бирже А составляет 10 000 USDT, цена покупки на бирже В - 10 100 USDT, при этом цена отличается от 100 USDT, что является потенциальной возможностью фаворитизма.

2. Межбиржевое исполнение

После обнаружения оптовой возможности, оптовый покупатель должен купить актив на бирже с более низкой ценой продажи (например, на бирже А) и продать на бирже с более высокой ценой покупки (например, на бирже Б). Эта операция может быть выполнена с помощью автоматизации API, чтобы обеспечить быстрое выполнение и максимальное использование разницы в цене. Однако при выполнении сделки необходимо учитывать затраты на транзакции (например, сборы и сдвиги) и ценовые шоки. Предположим, что сборы на бирже А составляют 0,1%, а сборы на бирже Б - 0,2%, при этом существует рынок.

Если учесть сдвиги и расходы на обслуживание, то фактические затраты на покупку и доходы от продажи будут отличаться от ожиданий.

3. Плоская застежка

Последний шаг в сделке заключается в ликвидации. Например, через некоторое время, когда цена покупки на бирже А составляет 10,100 USDT, а цена продажи на бирже В - 10,150 USDT, когда разница цены сокращается с 100 USDT до 50 USDT, процедура автоматически завершается. Конечно, в некоторых случаях разница может продолжать расширяться, можно продолжить торговлю, зная, что деньги исчерпаны.

Проблемы и стратегии решения в реальном мире

1. Нет возможности открыть позицию

Из-за наличия большого количества дилеров и рыночных трейдеров разница в ценах на различных биржах не очень большая, иначе она быстро сглаживается.

Стратегия решения:

  • Ждем естественного формирования разницы в ценах: Рынок цифровых валют очень волатилен, часто бывают кратковременные ценовые различия, и лучше всего подождать с терпением.
  • Использование стратегии makerПроцесс: инициативное покупка-продажа заказов в книге заказов на бирже и постоянное снятие с учетом изменения цены, если одна сторона совершает сделку, другая сторона идет на сделку. Такие процедурные расходы ниже, принимают меньший уровень разницы и гарантируют первое время совершения сделок.
  • Прослеживание большего числа сделокНельзя просто смотреть на основные валюты, их опционы, как правило, уже захвачены большим количеством спекулянтов, что приводит к сокращению разницы в ценах. Холодные и новые криптовалюты, которые могут иметь большую дифференциацию из-за плохой ликвидности и меньшей конкуренции, являются привлекательными опционами.
  • Выбор небольших бирж: малые биржи, как правило, из-за низкой ликвидности, медленной корректировки цен, более склонны к большим ценовым различиям. В этом случае, фавориты могут выбрать закладку и предварительное исполнение, чтобы получить прибыль.
  • Выбор высокоограниченной биржиНекоторые биржи требуют жесткой проверки KYC, например, корейская Upbit.

2. Слишком большая разница между ценой и мониторингом

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

Стратегия решения:

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

3. Одноногие сделки

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

Стратегия решения:

  • Создание разумных механизмов прекращения потерьПри наличии односторонних сделок можно настроить стоп-лосс, а своевременное урегулирование является эффективным средством снижения риска.
  • Заказать по рыночной ценеВ частности, в частности, в Китае, где цены на продукты питания выросли в среднем на 1,5% в год, в Китае, где цены на продукты питания выросли на 1,5% в год.

4. Заполненность отдельных бирж

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

Стратегия решения:

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

Демонстрационный код

Код не является кодом реального диска и используется только для демонстрации, если не учитывать количество дисков, ошибки при неудачном доступе к API, асинхронное ускорение заказа и т. д.


// symbol 是套利的交易对,比如 BTC/USDT
let symbol = "BTC_USDT";

// 设置手续费、滑点、开仓和平仓的利润率
let fee = 0.1 / 100;      // 0.1% 手续费
let slippage = 0.1 / 100; // 0.1% 滑点
let entryThreshold = 0.005; // 开仓阈值:价差大于0.5%时开仓
let exitThreshold = 0.001;  // 平仓阈值:价差回归到0.1%时平仓

// 每次循环执行的具体操作
function OnTick() {
    // 获取各个交易所的行情数据
    let tickers = exchanges.map(exchange => exchange.GetTicker(symbol));

    // 计算套利机会(基于利润率)
    // profitAB: 从交易所0买入,从交易所1卖出
    const profitAB = (tickers[1].bid - tickers[0].ask) / tickers[0].ask - fee * 2 - slippage * 2;
    // profitBA: 从交易所1买入,从交易所0卖出
    const profitBA = (tickers[0].bid - tickers[1].ask) / tickers[1].ask - fee * 2 - slippage * 2;

    // 打印日志
    Log(`Tickers: Exchange0 Buy: ${tickers[0].ask}, Exchange1 Sell: ${tickers[1].bid}, Profit AB: ${profitAB} USDT`);
    Log(`Tickers: Exchange1 Buy: ${tickers[1].ask}, Exchange0 Sell: ${tickers[0].bid}, Profit BA: ${profitBA} USDT`);

    // 根据利润判断是否执行套利操作
    if (profitAB > entryThreshold) {  // 当利润大于开仓阈值时开仓
        Log(`套利机会:从交易所0买入BTC,从交易所1卖出,利润:${profitAB} USDT`);
        executeArbitrage(0, 1, tickers[0].ask, tickers[1].bid, profitAB);  // 从交易所0买入并在交易所1卖出
    } else if (profitBA > entryThreshold) {
        Log(`套利机会:从交易所1买入BTC,从交易所0卖出,利润:${profitBA} USDT`);
        executeArbitrage(1, 0, tickers[1].ask, tickers[0].bid, profitBA);  // 从交易所1买入并在交易所0卖出
    } else if (profitAB < exitThreshold) {  // 如果价差回归,平仓
        Log(`平仓:从交易所0买入并在交易所1卖出的套利机会,利润已回归至平仓阈值`);
        closeArbitrage(0, 1, tickers[0].ask, tickers[1].bid); // 执行平仓操作
    } else if (profitBA < exitThreshold) { 
        Log(`平仓:从交易所1买入并在交易所0卖出的套利机会,利润已回归至平仓阈值`);
        closeArbitrage(1, 0, tickers[1].ask, tickers[0].bid); // 执行平仓操作
    } else {
        Log("没有足够的利润进行套利或平仓");
    }
}

// 执行套利交易
function executeArbitrage(buyExchangeIndex, sellExchangeIndex, buyPrice, sellPrice) {
    let buyExchange = exchanges[buyExchangeIndex];
    let sellExchange = exchanges[sellExchangeIndex];

    // 获取账户余额(假设为BTC余额)
    let accountBuy = buyExchange.GetAccount();
    let accountSell = sellExchange.GetAccount();
    
    let amountBTC = Math.min(accountBuy.Balance / buyPrice, accountSell.Amount);

    // 假设每次交易量为 0.1 BTC
    let amount = Math.min(amountBTC, 0.1);

    // 确保交易量充足
    if (amount <= 0) {
        Log("余额不足,无法进行套利");
        return;
    }

    // 在买入交易所挂单买入
    Log(`在交易所${buyExchangeIndex} 下单买入 ${amount} BTC @ ${buyPrice}`);
    buyExchange.Buy(symbol, buyPrice * (1 + slippage), amount);

    // 在卖出交易所挂单卖出
    Log(`在交易所${sellExchangeIndex} 下单卖出 ${amount} BTC @ ${sellPrice}`);
    sellExchange.Sell(symbol, sellPrice * (1 - slippage), amount);
}

// 平仓操作
function closeArbitrage(buyExchangeIndex, sellExchangeIndex, buyPrice, sellPrice) {
    let buyExchange = exchanges[buyExchangeIndex];
    let sellExchange = exchanges[sellExchangeIndex];

    // 获取账户余额(假设为BTC余额)
    let accountBuy = buyExchange.GetAccount();
    let accountSell = sellExchange.GetAccount();

    let amountBTC = Math.min(accountBuy.Balance / buyPrice, accountSell.Amount);
    let amount = Math.min(amountBTC, 0.1);

    // 在买入交易所挂单卖出
    Log(`在交易所${buyExchangeIndex} 平仓卖出 ${amount} BTC @ ${buyPrice}`);
    buyExchange.Sell(symbol, buyPrice * (1 - slippage), amount);

    // 在卖出交易所挂单买入
    Log(`在交易所${sellExchangeIndex} 平仓买入 ${amount} BTC @ ${sellPrice}`);
    sellExchange.Buy(symbol, sellPrice * (1 + slippage), amount);
}

// 主循环
function main() {
    while (true) {
        OnTick();
        Sleep(1000); // 每秒钟执行一次
    }
}

Подведение итогов

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


Больше