وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ملٹی ایکسچینج اسپاٹ اسپریڈ آربیٹریج حکمت عملی منطق کا اشتراک

مصنف:ایجاد کاروں کی مقدار - خواب, تخلیق: 2022-07-12 17:20:06, تازہ کاری: 2023-09-25 19:47:14

img

حکمت عملی کے اصول

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

حکمت عملی کا بنیادی منطق
  1. ملٹی ایکسچینج مارکیٹ کی معلومات کو بیک وقت حاصل کرنے کے لئے ، اسے حاصل کردہ مارکیٹ کی تاخیر کو کم کرنے کے لئے بیک وقت حاصل کرنا ضروری ہے۔ بیک وقت حصول کے لئے ، براہ کرم مشترکہ ٹول پلگ ان سے رجوع کریں۔ملٹی ایکسچینج بیک وقت پلگ ان
  2. ایک مشترکہ آرڈر کی معلومات حاصل کرنے کے لئے تمام تبادلہ احکامات کی پوچھ اور بولی کو یکجا کریں، جہاں RealPrice ہینڈلنگ فیس کو کم کرنے کے بعد قیمت ہے،
function createOrders(depths, askOrders, bidOrders) {
    let asksIndex = 0;
    let bidIndex = 0;
    for (let i = 0; i < depths.length; i++) {
        let exchangeTariff = getExchangeTariff(i);
        let asks = depths[i].Asks;
        let bids = depths[i].Bids;
        for (let j = 0; j < Math.min(asks.length, bids.length, 20); j++) {
            if (asks[j].Amount >= minTakerAmount) {
                askOrders[asksIndex] = {
                    "Price": asks[j].Price,
                    "Amount": asks[j].Amount,
                    "Fee": asks[j].Price * exchangeTariff,
                    "RealPrice": asks[j].Price * (1 + exchangeTariff),
                    "Index": i,
                };
                asksIndex++;
            }
            if (bids[j].Amount >= minTakerAmount) {
                bidOrders[bidIndex] = {
                    "Price": bids[j].Price,
                    "Amount": bids[j].Amount,
                    "Fee": bids[j].Price * exchangeTariff,
                    "RealPrice": bids[j].Price * (1 - exchangeTariff),
                    "Index": i,
                };
                bidIndex++;
            }
        }
    }
    askOrders.sort(function (a, b) {
        return a.RealPrice - b.RealPrice;
    });
    bidOrders.sort(function (a, b) {
        return b.RealPrice - a.RealPrice;
    });
}
  1. مشترکہ مارکیٹ کی معلومات سے بہترین ثالثی پھیلاؤ کا حساب لگائیں۔ چونکہ ہم آرڈر لے رہے ہیں ، یعنی ، سب سے کم قیمت سے خریدیں اور سب سے زیادہ قیمت کی بولی سے فروخت کریں ، جب تک کہ بولی.ریئل پرائس > پوچھیں.ریئل پرائس ، منافع کی گنجائش موجود ہے
function getArbitrageOrders(askOrders, bidOrders) {
    let ret = [];
    for (let i = 0; i < askOrders.length; i++) {
        for (let j = 0; j < bidOrders.length; j++) {
            let bidOrder = bidOrders[j];
            let askOrder = askOrders[i];
            if (bidOrder.Index === askOrder.Index) {
                continue
            }
            let minMigrateDiffPrice = ((askOrder.Price + bidOrder.Price) / 2 * minMigrateDiffPricePercent / 100);
            if (bidOrder.RealPrice - askOrder.RealPrice > minMigrateDiffPrice) {
                ret.push({
                    "Ask": askOrder,
                    "Bid": bidOrder,
                })
            }
        }
    }
    if (ret.length === 0) {
        ret.push({
            "Ask": askOrders[0],
            "Bid": bidOrders[0],
        });
    }
    //Sort by best spread
    ret.sort((a, b) => {
        return (b.Bid.RealPrice - b.Ask.RealPrice) - (a.Bid.RealPrice - a.Ask.RealPrice);
    });
    return ret;
}
  1. اس مرحلے پر، ہم نے مارکیٹ میں ثالثی پھیلاؤ پر معلومات حاصل کی ہیں، لہذا فیصلہ کرنے کے کئی نکات ہیں کہ کس طرح تجارت کو انجام دینے کا انتخاب کرنا ہے اور کتنا تجارت کرنا ہے:
  • موجودہ بقایا اثاثے
  • پھیلاؤ کا سائز (اگر پھیلاؤ بہت چھوٹا ہے تو ، صرف کرنسی کی رقم ہی متوازن ہوگی ، اور اگر پھیلاؤ کافی بڑا ہے تو ، تجارت کی تعداد زیادہ سے زیادہ ہوگی)
  • زیر التواء احکامات کی تعداد
    var askOrder = arbitrageOrder.Ask;
    var bidOrder = arbitrageOrder.Bid;
    var perAmountFee = arbitrageOrder.Ask.Fee + arbitrageOrder.Bid.Fee;
    var minRealDiffPrice = (askOrder.Price + bidOrder.Price) / 2 * minDiffPricePercent / 100;
    var minMigrateDiffPrice = ((askOrder.Price + bidOrder.Price) / 2 * minMigrateDiffPricePercent / 100);
    var curRealDiffPrice = arbitrageOrder.Bid.RealPrice - arbitrageOrder.Ask.RealPrice;
    var buyExchange = exchanges[arbitrageOrder.Ask.Index];
    var sellExchange = exchanges[arbitrageOrder.Bid.Index];
    var buySellAmount = 0;
    if (curRealDiffPrice > minRealDiffPrice) {
        buySellAmount = math.min(
            bidOrder.Amount,
            askOrder.Amount,
            maxTakerAmount,
            runningInfo.Accounts[bidOrder.Index].CurStocks,
            runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price
        );
    } else if (bidOrder.Index !== askOrder.Index) {
        if (migrateCoinEx == -1) {
            if (curRealDiffPrice > minMigrateDiffPrice && runningInfo.Accounts[bidOrder.Index].CurStocks - runningInfo.Accounts[askOrder.Index].CurStocks > maxAmountDeviation) {
                buySellAmount = math.min(
                    bidOrder.Amount,
                    askOrder.Amount,
                    maxTakerAmount,
                    runningInfo.Accounts[bidOrder.Index].CurStocks,
                    runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price,
                    runningInfo.Accounts[bidOrder.Index].CurStocks - ((runningInfo.Accounts[bidOrder.Index].CurStocks + runningInfo.Accounts[askOrder.Index].CurStocks) / 2)
                );
                if (buySellAmount >= minTakerAmount) {
                    Log("Start exchange balancing!");
                }
            }
        } else if (migrateCoinEx == askOrder.Index) {
            if (curRealDiffPrice > minMigrateDiffPrice && runningInfo.Accounts[bidOrder.Index].CurStocks > 0) {
                buySellAmount = math.min(
                    bidOrder.Amount,
                    askOrder.Amount,
                    maxTakerAmount,
                    runningInfo.Accounts[bidOrder.Index].CurStocks,
                    runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price
                );
                if (buySellAmount >= minTakerAmount) {
                    Log("Initiate currency migration:", exchanges[bidOrder.Index].GetName(), "-->", exchanges[askOrder.Index].GetName());
                }
            }
        }
    }
  1. رکھنے کے لئے احکامات کی تعداد کا حساب کرنے کے بعد، ٹرانزیکشن پر عملدرآمد کیا جا سکتا ہے. حکمت عملی براہ راست سلائڈج کو شامل کرنے اور ایک ہی وقت میں احکامات لینے کا طریقہ اپناتا ہے
            var buyWait = buyExchange.Go("Buy", _N(askOrder.Price * (1.01), pricePrecision), buySellAmount);
            var sellWait = sellExchange.Go("Sell", _N(bidOrder.Price * (0.99), pricePrecision), buySellAmount);
            var startWaitTime = new Date().getTime()
            Sleep(3000);
            var buyOrder = buyWait.wait()
            var sellOrder = sellWait.wait()
  1. اب صرف منافع کا حساب لگانے، ناکام احکامات پر سٹاپ نقصانات کو سنبھالنے وغیرہ کا منطق باقی ہے۔
حکمت عملی کے اصل منافع

img img img

موجودہ حقیقی بوٹ ڈسپلے، بنیادی منطق برقرار رہتا ہے، متعدد کرنسیوں کی حمایت کرنے کے لئے مرضی کے مطابق

https://www.fmz.com/robot/464965

آخر میں، لاؤکیو مقداری تبادلہ مواصلات میں شمولیت کا خیرمقدم کرتے ہیں:https://t.me/laoqiu_arbitrage


متعلقہ

مزید