리소스 로딩... 로딩...

디지털 화폐의 리드-래그 스위트 소개 (2)

저자:초목, 창작: 2024-12-18 11:16:41, 업데이트: 2024-12-18 16:54:28

이 소개

첫 번째 기사에서는 리드-래그 현상이 어떻게 유동화되는지에 대해 설명한 것 같습니다. 이 글은 주로 거래소 간 유동화를 소개합니다. 그것의 기본 원리는 다른 거래소 간의 가격 지연 현상을 이용함으로써 ("리드-래그 효과") 각 거래소의 시장 유동성, 거래 속도 및 네트워크 지연이 다르기 때문에 동일한 코인의 가격이 다른 거래소에서 종종 일치하지 않습니다. 이 거래소는 이러한 지연 가격 변화를 모니터링함으로써 빠른 유동화를 수행하여 위험없는 이익을 얻을 수 있습니다.

리드-래그 효과를 어떻게 활용할 수 있을까요?

1. 가격 차이를 감시합니다.

첫째, 중개인은 서로 다른 거래소 간의 가격 차이를, 특히 파고와 구매 가격을 실시간으로 모니터링해야 한다. 거래소 A의 파고와 거래소 B의 구매 가격을 추적함으로써, 거래소 A의 파고가 거래소 B의 구매 가격보다 낮으면 중개 기회가 존재한다고 볼 수 있다. 예를 들어, 거래소 A의 파고가 10,000 USDT이고, 거래소 B의 구매가 10,100 USDT이며, 가격은 100 USDT의 차이는 잠재적인 중개 기회이다. 물론, 최근 역사적인 차이 범위를 고려하여, 개시 및 평형 차이 가격의 참조로 대기 시간이 비용 중 하나이기도 하다.

2. 거래소 간 실행

일단 유권 기회가 발견되면 유권자는 낮은 판매 가격의 거래소 (예: A 거래소) 에서 자산을 구매하고 높은 구매 가격의 거래소 (예: B 거래소) 에서 판매해야 한다. 이 작업은 API 자동화로 완료되어 신속한 실행을 보장하고 가격 차이를 최대한 활용할 수 있다. 그러나 거래 실행에 있어서 거래 비용 (예: 수수료 및 슬라이드 포인트) 과 가격 충격을 고려해야 한다. 거래소 A의 처리 수수료가 0.1%, 거래소 B의 처리 수수료가 0.2%이며 시장 점유점이 존재한다고 가정한다. 예를 들어, 거래소 A에서 1개의 비트코인을 구매할 때, 실제 거래 가격이 큰 주문의 실행으로 인해 가격이 상승할 수 있으며, 슬라이드 포인트가 0.1%로 추정된다.

만약 슬라이드 포인트와 수수료를 고려한다면, 실제 구매 비용과 판매 수익은 예상보다 거리가 있습니다.

3. 평평하게 묶어

이매금의 마지막 단계는 평형이다. 예를 들어, 일정 시간이 지나면 A 거래소의 매수 가격은 10,100 USDT이고, B 거래소의 매수 가격은 10,150 USDT이며, 가격 차이는 100 USDT에서 50 USDT로 줄어들면 자동으로 평형이 종료된다. 물론, 어떤 경우에는 차이는 계속 확대될 수도 있고, 자금이 소진된 것을 알고 계속 거래할 수 있다. 거래소의 차이는 유지될 수 없기 때문에, 이매금자가 압도적인 힘을 기여한다.

실전에서의 문제와 해결 전략

1. 거래 기회가 없습니다.

많은 유권자와 시장 거래자가 존재하기 때문에 다른 거래소의 가격 차이는 크게 다르지 않으며, 그렇지 않으면 빠르게 평형됩니다. 이것은 유권 거래가 직면하는 가장 큰 문제입니다.

이 문제를 해결하기 위한 전략:

  • 물가차이의 자연적 형성을 기다리고 있습니다.: 디지털 통화 시장은 매우 불안정하며 종종 짧은 가격 차이가 발생하며 인내심을 갖는 것이 가장 좋은 방법입니다.
  • 메이커를 사용하세요: 거래소의 주문책에 직접 주문을 매입하고, 가격 변화에 따라 계속 취소 조정하여 한 쪽이 거래하면 다른 쪽이 주문을 먹습니다. 이러한 절차 비용은 더 낮으며, 더 작은 오차 수준을 받아 들일 수 있으며, 첫 번째 거래 시기를 보장합니다.
  • 더 많은 거래 쌍을 감시합니다: 단순히 주류 통화에만 집중할 수는 없으며, 주류 통화의 오프처 기회는 일반적으로 많은 주류 거래자가 포착하여 가격 차이가 줄어드는 것을 초래합니다. 냉동 통화 및 신상화 통화에는 유동성이 낮아서 큰 가격 차이를 초래할 수 있으며 경쟁이 적어서 주목할만한 오프처 기회입니다.
  • 소규모 거래소를 선택: 소규모 거래소는 일반적으로 유동성이 낮고 가격 조정이 느리기 때문에 더 큰 가격 차이가 발생할 가능성이 높습니다. 이 경우, 이자 거래자는 주문을 올리고 미리 실행하여 수익을 얻을 수 있습니다.
  • 고약품 거래소를 선택하세요: 일부 거래소는 한국의 Upbit 같은 엄격한 KYC 인증을 필요로 합니다. 이 거래소는 일반 거래자가 접근하기 어려운 곳이며, 더 많은 수익을 창출할 수 있는 기회가 있습니다.

2. 거래 가격과 모니터링 가격의 차이는 너무 크다.

채권 실패는 일반적인 문제이며, 절차가 차이점을 발견하여 채권을 조정할 때 실제 거래의 차이점이 그렇게 크지 않고 종종 손실을 초래합니다. 이 경우 가장 빠른 반응과 실행 속도가 중요합니다.

이 문제를 해결하기 위한 전략:

  • 네트워크 및 서버 위치를 최적화: 지연을 줄이기 위해 거래소 서버에 가까운 노드를 선택한다. 예를 들어, 유동성이 낮은 소규모 거래소를 선택하여 거래를 수행하면 시장 반응 속도가 낮아지고 선두를 잡을 수 있다.
  • 웹소켓과 동시 처리: 비동기 코드와 웹소켓을 사용하여 시장에 연결하여 실시간 가격 정보를 수신하고 신속하게 반응하여 정보 지연으로 인해 놓친 기회를 피할 수 있습니다.

3. 한 다리 협상

단발 거래는 한 쪽이 거래를 완료하고 다른 쪽이 거래를 하지 못하는 것을 의미합니다. 이것은 일반적으로 시장의 급격한 변동 상황에서 발생합니다. 한쪽의 주문만 성공하면 유리한 고가 거래자가 프 리스크를 직면합니다.

이 문제를 해결하기 위한 전략:

  • 합리적인 손해배상 메커니즘: 단발 거래가 발생했을 때 손해를 멈추게 할 수 있으며, 적절한 평형은 위험을 줄이는 효과적인 방법입니다.
  • 시장 가격으로 주문시가지는 거래를 보장할 수 있고, 거래의 차이점이 통제할 수 없으며 손실이 발생할 수 있다는 문제가 있습니다.

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) 는 시장의 지체 반응에 기반한 트랜스-이거진 유동화 전략이다. 시장의 가격 차이를 정확하게 분석하고 거래를 빠르게 실행함으로써 유동자는 디지털 통화 시장에서 안정적인 수익을 얻을 수 있다. 그러나 이 전략의 성공은 전략 자체의 디자인에 의존하는 것이 아니라, 좋은 실행력과 시장 시기를 민감하게 파악하는 것이 필요하다. 시장 경쟁이 심화됨에 따라 유동자는 전략과 기술을 지속적으로 최적화하고, 유동화 기회의 지속적인 효과를 유지하기 위해 속도와 반응 능력을 향상시켜야 한다.


더 많은