پہلے مضمون میں تقریباً یہ بتایا گیا ہے کہ لیڈ لیگ کا استعمال کس طرح کیا جاتا ہے، اس مضمون میں بنیادی طور پر کراس ایکسچینج لیڈ لیگ کا استعمال کیا جائے گا۔ اس کا بنیادی اصول یہ ہے کہ مختلف ایکسچینجز کے درمیان قیمت میں تاخیر کا استعمال کرکے لیڈ لیگ اثر (لیڈ لیگ اثر) ہوتا ہے، کیونکہ مختلف ایکسچینجز میں مارکیٹ کی لچک، ٹرانزیکشن کی رفتار اور نیٹ ورک کی تاخیر مختلف ہوتی ہے، جس کی وجہ سے ایک ہی سکے کی قیمت مختلف ایکسچینجز میں متضاد ہوتی ہے۔ لیڈر اس تاخیر کی قیمت میں تبدیلی کی نگرانی کرکے تیزی سے سود لے سکتے ہیں، جس سے خطرہ سے پاک منافع حاصل ہوتا ہے۔
سب سے پہلے ، سودے داروں کو مختلف تبادلے کے مابین قیمتوں کے فرق کی حقیقی وقت میں نگرانی کرنے کی ضرورت ہوتی ہے ، خاص طور پر فروخت اور خرید کی قیمتوں میں۔ اگر آپ ایکسچینج اے کی فروخت کی قیمت اور ایکسچینج بی کی خرید کی قیمت کو ٹریک کرتے ہیں تو ، اگر ایکسچینج اے کی فروخت کی قیمت ایکسچینج بی کی خرید کی قیمت سے کم ہے تو ، سودے کا موقع موجود ہے۔ مثال کے طور پر ، ایکسچینج اے کی فروخت کی قیمت 10،000 USDT ہے ، اور ایکسچینج بی کی خریداری کی قیمت 10،100 USDT ہے ، جس میں قیمت 100 USDT مختلف ہے ، اس وقت یہ ایک ممکنہ سود کا موقع ہے۔ اور یقینا. ، حالیہ تاریخی فرق کی حد کو بھی مدنظر رکھتے ہوئے ، انتظار کا وقت بھی ایک لاگت ہے۔
ایک بار جب سودے کا موقع مل جاتا ہے تو سودے دار کو کم قیمت پر فروخت کرنے والے ایکسچینج (جیسے ایکسچینج اے) میں اثاثہ خریدنا چاہئے اور زیادہ قیمت پر خریدنے والے ایکسچینج (جیسے ایکسچینج بی) میں فروخت کرنا چاہئے۔ یہ عمل اے پی آئی آٹومیشن کے ذریعہ کیا جاسکتا ہے ، تاکہ تیزی سے عملدرآمد کو یقینی بنایا جاسکے اور قیمت کے فرق کو زیادہ سے زیادہ فائدہ اٹھایا جاسکے۔ تاہم ، تجارت کو انجام دیتے وقت ، اس کے ساتھ ساتھ قیمتوں میں اضافے کے ساتھ ساتھ تجارت کے اخراجات کو بھی مدنظر رکھنا ضروری ہے۔ فرض کریں کہ ایکسچینج اے کی کارروائی کی فیس 0.1٪ ہے ، اور ایکسچینج بی کی کارروائی کی فیس 0.2٪ ہے ، جبکہ مارکیٹ میں ایک نقطۂ نظر موجود ہے۔ مثال کے طور پر ، جب ایکسچینج اے میں ایک ٹوکن خریدا جاتا ہے تو ، اصل تجارت کی قیمت بڑی آرڈر پر عمل درآمد کی وجہ سے قیمت میں اضافے کا سبب بن سکتی ہے ، فرض کریں کہ اس کی قیمت 0.1٪ ہے۔ پھر ، اصل تجارت کی قیمت توقع سے 0.1٪ زیادہ ہوگی ، جس سے خریداری کی لاگت میں اضافہ ہوگا۔
اگر سلائڈ پوائنٹس اور چارجز کو مدنظر رکھا جائے تو اصل خریداری کی لاگت اور فروخت سے حاصل ہونے والی آمدنی متوقع سے کہیں زیادہ ہے۔
سودے کا آخری مرحلہ بریفنگ ہے۔ مثال کے طور پر ، کچھ عرصے کے بعد ، ایکسچینج اے کی خرید قیمت 10،100 USDT ہے ، اور ایکسچینج بی کی فروخت قیمت 10،150 USDT ہے ، جب قیمت کا فرق 100 USDT سے کم ہوکر 50 USDT ہوجاتا ہے تو ، یہ عمل خود بخود بریفنگ کا فائدہ اٹھاتا ہے۔ یقینا some کچھ معاملات میں ، یہ ممکن ہے کہ فرق بڑھتا ہی رہے ، اور یہ جان کر کہ فنڈز ختم ہوچکے ہیں ، تجارت جاری رکھ سکتے ہیں۔ اس کی وجہ یہ ہے کہ ایکسچینج کی قیمت برقرار نہیں رہ سکتی ، سودے داروں نے زیادہ تر طاقت کا تعاون کیا۔
سودے داروں اور مارکیٹرز کی بڑی تعداد کی وجہ سے ، مختلف تبادلے کی قیمتوں میں فرق بہت زیادہ نہیں ہوتا ہے ، ورنہ یہ جلدی سے برابر ہوجاتا ہے۔ یہ سودے بازی کا سب سے بڑا مسئلہ ہے۔
آرڈر لینے میں ناکامی ایک عام مسئلہ ہے ، جب پروسیسنگ نے فرق کو فائدہ اٹھانے کے لئے پایا تو ، اس کا نتیجہ یہ ہوا کہ اصل تجارت کی قیمت اتنی بڑی نہیں ہے ، اور اکثر نقصان بھی ہوتا ہے۔ اس وقت ، تیزی سے ردعمل اور عملدرآمد کی رفتار انتہائی ضروری ہے۔
ایک پاؤں کی تجارت کا مطلب یہ ہے کہ ایک طرف کا عمل مکمل ہو جاتا ہے جبکہ دوسری طرف کا عمل ناکام ہوجاتا ہے ، جو عام طور پر مارکیٹ میں تیزی سے اتار چڑھاؤ کی صورت میں ہوتا ہے۔ اگر صرف ایک طرف کا آرڈر کامیاب ہوتا ہے تو ، سودے دار کو خطرہ ہوتا ہے۔
جب فرق طویل عرصے تک موجود ہوتا ہے تو ، کسی ایکسچینج میں فنڈز تیزی سے مکمل طور پر خریدے جاتے ہیں ، اور سودے دار سودے کی تجارت کو جاری نہیں رکھ سکتے ہیں۔ اس وقت سودے دار کو تیزی سے فنڈز منتقل کرنے یا ان کی ہولڈنگ کو ایڈجسٹ کرنے کی ضرورت ہوتی ہے۔
یہ کوڈ حقیقی ڈسک کا کوڈ نہیں ہے اور صرف ڈیمو کے لئے استعمال کیا جاتا ہے ، جیسے کہ ڈسک کی تعداد ، 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); // 每秒钟执行一次
}
}
لیڈ-لاگ ہینڈلنگ سوٹ ایک کراس ایکسچینج سوٹ کی حکمت عملی ہے جو مارکیٹ میں تاخیر کے ردعمل پر مبنی ہے۔ سوٹ لینے والے کو مارکیٹ میں قیمتوں کے فرق کا درست تجزیہ کرنے اور تیزی سے عملدرآمد کرکے ڈیجیٹل کرنسی مارکیٹ میں مستحکم منافع حاصل کرنے کی اجازت دیتی ہے۔ تاہم ، اس حکمت عملی کی کامیابی کا انحصار نہ صرف حکمت عملی کے ڈیزائن پر ہے ، بلکہ اس کے لئے اچھی کارکردگی اور مارکیٹ کے وقت کی حساس گرفت کی ضرورت ہے۔ مارکیٹ میں مقابلہ بڑھنے کے ساتھ ، سوٹ لینے والوں کو اپنی حکمت عملی اور تکنیک کو مستقل طور پر بہتر بنانے ، رفتار اور رد عمل کی صلاحیت کو بڑھانے کی ضرورت ہوتی ہے تاکہ سوٹ کے مواقع کی مستقل تاثیر کو برقرار رکھا جاسکے۔