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

کثیر تبادلے کی فوری قیمتوں میں فرق کی حکمت عملی منطق کا اشتراک کریں

مصنف:@cqz, تخلیق: 2022-06-27 21:26:27, تازہ کاری: 2023-09-18 19:44:32

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. جمع شدہ کھدائی کی معلومات سے ، سب سے زیادہ سودے کا فرق کا حساب لگایا جاتا ہے۔ چونکہ ہم خریدار ہیں ، لہذا ہم کم سے کم قیمت پر خریدتے ہیں ، اور سب سے زیادہ قیمت پر فروخت کرتے ہیں ، جب تک کہ سودے کی گنجائش موجود ہے۔ RealPrice > ask.
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],
        });
    }
    //按最优价差排序
    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("启动交易所平衡!");
                }
            }
        } 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("启动货币迁移:", 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


متعلقہ

مزید

ianzeng123ہاہاہاہا، minTakerAmount کیسی سیٹ ہے؟

شادی شدہ خواتین بھیایک اور صارف نے اپنی پوسٹ میں لکھا کہ:

جونیتعریف

h503059288ایکوگو ویو۔