3
پر توجہ دیں
1444
پیروکار

کریپٹو کرنسی میں لیڈ-لیگ آربٹریج کا تعارف (2)

میں تخلیق کیا: 2024-12-18 11:16:41, تازہ کاری: 2024-12-19 15:42:52
comments   0
hits   1677

کریپٹو کرنسی میں لیڈ-لیگ آربٹریج کا تعارف (2)

“برک موونگ” ثالثی کا تعارف

پہلے مضمون میں، ہم نے مختصراً یہ بتایا کہ Lead-Lag رجحان کا استعمال کرتے ہوئے ثالثی کیسے کی جائے، یہ مضمون بنیادی طور پر کراس ایکسچینج “برک موونگ” کو متعارف کرائے گا۔ بنیادی اصول مختلف ایکسچینجز کے درمیان قیمت کے وقفے کے رجحان (لیڈ-لیگ اثر) کو استعمال کرنا ہے کیونکہ ہر ایکسچینج میں ایک ہی کرنسی کی قیمت مختلف ہوتی ہے۔ . ثالث قیمت میں اس طرح کی تاخیر سے ہونے والی تبدیلیوں کی نگرانی کر سکتے ہیں اور خطرے سے پاک منافع حاصل کرنے کے لیے تیزی سے ثالثی کر سکتے ہیں۔

ثالثی کے لیے Lead-Lag اثر کا استعمال کیسے کریں؟

1. قیمت کے فرق کی نگرانی کریں۔

سب سے پہلے، ثالثوں کو حقیقی وقت میں مختلف ایکسچینجز کے درمیان قیمت کے فرق کی نگرانی کرنے کی ضرورت ہے، خاص طور پر پوچھنے کی قیمت اور بولی کی قیمت۔ ایکسچینج A کی پوچھ قیمت اور ایکسچینج B کی بولی کی قیمت کا پتہ لگا کر، اگر ایکسچینج A کی پوچھ قیمت ایکسچینج B کی بولی کی قیمت سے کم ہے، تو یہ سمجھا جا سکتا ہے کہ ثالثی کا موقع موجود ہے۔ مثال کے طور پر، ایکسچینج A کی پوچھ قیمت 10,000 USDT ہے، اور ایکسچینج B کی بولی کی قیمت 10,100 USDT ہے، جو کہ ایک ممکنہ ثالثی کا موقع ہے۔ بلاشبہ، ہمیں قیمتوں کے افتتاحی اور اختتامی فرق کے حوالہ کے طور پر حالیہ تاریخی قیمت کے فرق پر بھی غور کرنے کی ضرورت ہے، اور انتظار کا وقت بھی اخراجات میں سے ایک ہے۔

2. کراس ایکسچینج پر عمل درآمد

ایک بار جب ثالثی کا موقع مل جاتا ہے، ثالث کو چاہیے کہ وہ اثاثہ ایکسچینج پر کم پوچھ قیمت (جیسے ایکسچینج A) کے ساتھ خریدے اور اسے زیادہ بولی کی قیمت کے ساتھ ایکسچینج پر فروخت کرے (جیسے کہ ایکسچینج B)۔ اسے API کے ذریعے خودکار کیا جا سکتا ہے، تیزی سے عملدرآمد کو یقینی بنا کر اور قیمت کے فرق کو زیادہ سے زیادہ استعمال کیا جا سکتا ہے۔ تاہم، تجارت کو انجام دیتے وقت، لین دین کے اخراجات (جیسے فیس اور پھسلن) کے ساتھ ساتھ قیمت کے جھٹکے پر بھی غور کیا جانا چاہیے۔ فرض کریں کہ ایکسچینج A کی ٹرانزیکشن فیس 0.1% ہے، جبکہ ایکسچینج B کی ٹرانزیکشن فیس 0.2% ہے، اور مارکیٹ میں پھسلن ہے۔ مثال کے طور پر، ایکسچینج A پر 1 بٹ کوائن خریدتے وقت، لین دین کی اصل قیمت بڑے آرڈرز کے نفاذ کی وجہ سے بڑھ سکتی ہے، یہ فرض کرتے ہوئے کہ پھسلن 0.1% ہے۔ پھر، لین دین کی اصل قیمت متوقع سے 0.1% زیادہ ہوگی، جس کے نتیجے میں خریداری کی لاگت میں اضافہ ہوگا۔

اگر پھسلن اور فیسوں کو مدنظر رکھا جائے تو اصل خرید لاگت اور فروخت کی آمدنی توقعات سے مختلف ہوگی۔

3. پوزیشن بند کریں۔

ثالثی کا آخری مرحلہ پوزیشن کو بند کرنا ہے۔ مثال کے طور پر، ایک مدت کے بعد، اگر ایکسچینج A کی قیمت خرید 10,100 USDT اور ایکسچینج B کی فروخت کی قیمت 10,150 USDT ہے، اور قیمت کا فرق 100 USDT سے 50 USDT تک کم ہو جاتا ہے، تو پروگرام خود بخود پوزیشن کو بند کر دے گا اور منافع کا احساس. بلاشبہ، بعض صورتوں میں، پھیلاؤ بڑھتا جا سکتا ہے، اور آپ اس وقت تک پوزیشنیں کھولنا جاری رکھ سکتے ہیں جب تک کہ آپ کے فنڈز ختم نہیں ہو جاتے۔ ثالثی اس وجہ سے زیادہ تر حصہ ڈالتے ہیں کہ ایکسچینج پر قیمت کے فرق کو برقرار نہیں رکھا جا سکتا۔

عملی طور پر مسائل اور حل

1. پوزیشن کھولنے کا کوئی موقع نہیں۔

ثالثوں اور مارکیٹ سازوں کی ایک بڑی تعداد کی موجودگی کی وجہ سے، مختلف ایکسچینجز کے درمیان قیمتوں میں فرق بہت زیادہ مختلف نہیں ہوگا، بصورت دیگر وہ تیزی سے برابر ہوجائیں گے۔ یہ کیری ٹریڈنگ کا سب سے بڑا مسئلہ ہے۔

حل کی حکمت عملی:

  • قدرتی طور پر قیمت کے انحراف کا انتظار کریں۔:ڈیجیٹل کرنسی مارکیٹ انتہائی غیر مستحکم ہے، اور عام طور پر قلیل مدتی قیمت میں فرق ہوتا ہے اس مسئلے کو حل کرنے کا بہترین طریقہ صبر ہے۔
  • بنانے والے کی حکمت عملی کا استعمال: ایکسچینج آرڈر بک پر خرید و فروخت کے آرڈرز کو فعال طور پر رکھیں، اور قیمتوں میں تبدیلی کے ساتھ ہی آرڈرز کو منسوخ اور ایڈجسٹ کریں، اگر ایک فریق لین دین مکمل کرتا ہے تو دوسرا فریق آرڈر لے لے گا۔ اس طرح، لین دین کی فیس کم ہے، ایک چھوٹا اسپریڈ قبول کیا جا سکتا ہے، اور ٹرانزیکشن کے پہلی بار مکمل ہونے کی ضمانت دی جا سکتی ہے۔
  • مزید تجارتی جوڑوں کی نگرانی کریں۔:آپ صرف مرکزی دھارے کی کرنسیوں پر توجہ مرکوز نہیں کر سکتے ہیں، ان کے ثالثی کے مواقع کو عام طور پر بڑی تعداد میں ثالثوں نے حاصل کر لیا ہے، جس کی وجہ سے قیمتوں میں فرق کم ہو جاتا ہے۔ غیر مقبول اور نئی درج شدہ کرنسیوں میں ناقص لیکویڈیٹی اور کم مسابقت کی وجہ سے قیمتوں میں اضافہ ہو سکتا ہے، اور ثالثی کے مواقع قابل توجہ ہیں۔
  • ایک چھوٹا سا تبادلہ منتخب کریں۔:چھوٹے ایکسچینجز میں عام طور پر ناقص لیکویڈیٹی اور سستی قیمت ایڈجسٹمنٹ ہوتی ہے، جس کی وجہ سے وہ قیمتوں میں بڑے فرق کا شکار ہوتے ہیں۔ اس وقت، ثالث منافع کمانے کے لیے پہلے آرڈر دینے اور ان پر عمل درآمد کرنے کا انتخاب کر سکتے ہیں۔
  • ایک اعلی حد کا تبادلہ منتخب کریں۔:کچھ ایکسچینجز کو سخت KYC سرٹیفیکیشن کی ضرورت ہوتی ہے، جیسے کورین ایکسچینج Upbit۔ ان جگہوں پر ثالثی کے مزید مواقع ہیں جن میں داخل ہونا عام تاجروں کے لیے مشکل ہے، یقیناً، آپ کو خود ہی مشکلات پر قابو پانے کے طریقے تلاش کرنے کی ضرورت ہے۔

2. لین دین کے پھیلاؤ اور نگرانی کے پھیلاؤ کے درمیان فرق بہت بڑا ہے۔

آرڈرز حاصل کرنے میں ناکامی ایک عام مسئلہ ہے جب پروگرام قیمت میں فرق تلاش کرتا ہے اور ثالثی آرڈر دیتا ہے، اصل لین دین کی قیمت کا فرق اتنا بڑا نہیں ہوتا ہے اور اکثر نقصان ہوتا ہے۔ اس وقت، تیز ترین ردعمل اور عملدرآمد کی رفتار بہت اہم ہے۔

حل کی حکمت عملی:

  • نیٹ ورک اور سرور کے مقامات کو بہتر بنائیں: تاخیر کو کم کرنے کے لیے ایک نوڈ کا انتخاب کریں جو ایکسچینج سرور کے قریب ہو۔ مثال کے طور پر، آپریٹ کرنے کے لیے ناقص لیکویڈیٹی کے ساتھ ایک چھوٹے تبادلے کا انتخاب کرنا مارکیٹ کے رد عمل کی رفتار کو کم کر سکتا ہے اور اس طرح پہل پر قبضہ کر سکتا ہے۔
  • غیر مطابقت پذیر پروسیسنگ اور ویب ساکٹمارکیٹ کے حالات سے مربوط ہونے کے لیے غیر مطابقت پذیر کوڈ اور WebSocket کا استعمال کرتے ہوئے، آپ اصل وقت میں قیمت کی معلومات حاصل کر سکتے ہیں اور معلومات میں وقفے کی وجہ سے گمشدہ مواقع سے بچنے کے لیے فوری جواب دے سکتے ہیں۔

3. سنگل ٹانگ ڈیل

سنگل ٹانگ ٹرانزیکشن سے مراد وہ لین دین ہے جس میں ایک فریق لین دین مکمل کرتا ہے جبکہ دوسرا فریق لین دین کو مکمل کرنے میں ناکام رہتا ہے، جو عام طور پر اس وقت ہوتا ہے جب مارکیٹ میں تیزی سے اتار چڑھاؤ آتا ہے۔ اگر حکم کا صرف ایک رخ کامیاب ہوتا ہے، تو ثالث کو نمائش کے خطرے کا سامنا کرنا پڑے گا۔

حل کی حکمت عملی:

  • ایک معقول سٹاپ نقصان کا طریقہ کار مرتب کریں۔: جب ایک ٹانگ کا لین دین ہوتا ہے، تو آپ ایک سٹاپ نقصان مقرر کر سکتے ہیں جو کہ خطرات کو کم کرنے کا ایک مؤثر طریقہ ہے۔
  • مارکیٹ آرڈر استعمال کریں۔مارکیٹ کی قیمت لین دین کی ضمانت دے سکتی ہے، لیکن مسئلہ یہ ہے کہ لین دین کی قیمت کا فرق بے قابو ہے اور اس کے نتیجے میں نقصان ہو سکتا ہے۔

4. ایک ہی ایکسچینج پر مکمل گودام

جب قیمت کا فرق طویل عرصے تک موجود رہتا ہے، تو ایک مخصوص ایکسچینج کے فنڈز جلد خرید لیے جائیں گے، اور اربیٹریج اپنی ثالثی کارروائیوں کو جاری رکھنے کے قابل نہیں ہو سکتے ہیں۔ اس وقت، ثالثوں کو فوری طور پر فنڈز کی منتقلی یا اپنی پوزیشن کو ایڈجسٹ کرنے کی ضرورت ہے۔

حل کی حکمت عملی:

  • سکے کی منتقلی کا آپریشن: رقوم کی منتقلی اور ثالثی جاری رکھنے کے لیے کراس ایکسچینج کرنسی کی منتقلی کا استعمال کریں۔ اس طرح، ایک ہی مارکیٹ میں فنڈز کے ڈھیر ہونے سے بچنا اور فنڈز کی لیکویڈیٹی میں اضافہ ممکن ہے۔
  • پھیلنے کا انتظار کر رہے ہیں۔: واپسی کے وقت کی لاگت کو مدنظر رکھتے ہوئے، قیمت کے فرق کی واپسی کا انتظار کرنا بھی ایک آپشن ہے۔

ڈیمو کوڈ

کوڈ حقیقی کوڈ نہیں ہے اور صرف نمائشی مقاصد کے لیے ہے اس میں مارکیٹوں کی تعداد، API تک رسائی میں ناکامی، غیر مطابقت پذیر آرڈر کی رفتار وغیرہ کو مدنظر نہیں رکھا گیا ہے۔


// symbol 是套利的交易对,比如 BTC/USDT
let symbol = "BTC_USDT";
exchanges[0].SetCurrency(symbol);
exchanges[0].SetPrecision(2, 4); //设置精度
exchanges[1].SetCurrency(symbol);
exchanges[1].SetPrecision(2, 4);

// 设置手续费、滑点、开仓和平仓的利润率
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));
    //容错处理
    if(!tickers[1] || !tickers[0]){
        return;
    }
    // 计算套利机会(基于利润率)
    // profitAB: 从交易所0买入,从交易所1卖出
    const profitAB = (tickers[1].Buy - tickers[0].Sell) / tickers[0].Sell - fee * 2 - slippage * 2;
    // profitBA: 从交易所1买入,从交易所0卖出
    const profitBA = (tickers[0].Buy - tickers[1].Sell) / tickers[1].Sell - fee * 2 - slippage * 2;

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

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

    //容错处理
    if(!accountBuy || !accountSell){
        return;
    }
    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(buyPrice * (1 + slippage), amount);

    // 在卖出交易所下单卖出
    Log(`在交易所${sellExchangeIndex} 下单卖出 ${amount} BTC @ ${sellPrice}`);
    sellExchange.Sell(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();

    //容错处理
    if(!accountBuy || !accountSell){
        return;
    }

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

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

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

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

خلاصہ کریں۔

Lead-Lag Arbitrage ایک کراس ایکسچینج ثالثی حکمت عملی ہے جس کی بنیاد مارکیٹ کے وقفے کے رد عمل پر ہے۔ مارکیٹ میں قیمت کے فرق کا درست تجزیہ کرکے اور تجارت کو تیزی سے انجام دینے سے، اربابِ اختیار کرپٹو کرنسی مارکیٹ میں مستحکم منافع کمانے کے قابل ہوتے ہیں۔ تاہم، اس حکمت عملی کی کامیابی کا انحصار نہ صرف خود حکمت عملی کے ڈیزائن پر ہے، بلکہ اس کے لیے اچھی کارکردگی اور مارکیٹ کے وقت کی حساس گرفت کی بھی ضرورت ہے۔ جیسے جیسے مارکیٹ میں مسابقت بڑھ رہی ہے، ثالثوں کو اپنی حکمت عملیوں اور تکنیکوں کو مسلسل بہتر بنانے اور ثالثی کے مواقع کی مسلسل تاثیر کو برقرار رکھنے کے لیے اپنی رفتار اور ردعمل کو بہتر بنانے کی ضرورت ہے۔