DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

তৈরি: 2025-02-09 16:05:08, আপডেট করা হয়েছে: 2025-02-19 10:37:07
comments   0
hits   195

[TOC]

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

এটি DEX এক্সচেঞ্জের পরিমাণগত অনুশীলন সম্পর্কে তৃতীয় প্রবন্ধ। এবার আমরা ভার্টেক্স প্রোটোকলের ব্যবহার নির্দেশিকাটি উপস্থাপন করব।

ভূমিকা

ঐতিহ্যবাহী বিকেন্দ্রীভূত বিনিময় (DEX) এর কাঠামোর মধ্যে, পরিমাণগত ব্যবসায়ীদের প্রায়শই আপস করতে হয়: হয় স্বয়ংক্রিয় বাজার নির্মাতা (AMM) মডেলের উচ্চ স্লিপেজ এবং নিম্ন কার্যকরীকরণ দক্ষতা গ্রহণ করুন, অথবা ক্রস-চেইন লিকুইডিটি ফ্র্যাগমেন্টেশন এবং একক ডেরিভেটিভ ফাংশনের প্রযুক্তিগত দ্বিধায় পড়ুন। ভার্টেক্স প্রোটোকলের উত্থান একটি “বিকেন্দ্রীভূত + প্রাতিষ্ঠানিক-স্তরের” ফিউশন পরীক্ষার মাধ্যমে পরিমাণগত কৌশলগুলির অন-চেইন সীমানাগুলিকে পুনরায় সংজ্ঞায়িত করছে - এখানে কোনও “দুটির মধ্যে একটি বেছে নিন” দ্বিধা নেই, কেবল গতি, গভীরতা এবং স্বাধীনতার চূড়ান্ত ভারসাম্য।

প্রথম DEX হিসেবে যারা একটি ইউনিফাইড মাল্টি-চেইন লিকুইডিটি পুল, হাইব্রিড অর্ডার বুক (CLOB) এবং এমবেডেড কারেন্সি মার্কেটকে একীভূত করেছে, Vertex “কেন্দ্রীভূত অভিজ্ঞতা, বিকেন্দ্রীভূত আত্মা” কে তার মূল হিসেবে গ্রহণ করে এবং পরিমাণগত ব্যবসায়ীদের জন্য একটি অনন্য পথ উন্মুক্ত করে:

গতি এবং তরলতার একটি নতুন সংজ্ঞা

ব্লকচেইন প্রযুক্তির ক্রমাগত বিবর্তনের সাথে সাথে, ঐতিহ্যবাহী কেন্দ্রীভূত এক্সচেঞ্জ (CEX) এবং বিকেন্দ্রীভূত এক্সচেঞ্জ (DEX)-এর মধ্যে সীমানা ধীরে ধীরে ঝাপসা হয়ে আসছে। ভার্টেক্স প্ল্যাটফর্মের কেন্দ্রবিন্দু হিসেবে, ভার্টেক্স এজ কেবল লেনদেনের গতি এবং তারল্যকে নতুন আকার দেয় না, বরং ক্রস-চেইন ইন্টিগ্রেশনের মাধ্যমে চমৎকার অর্ডার ম্যাচিং প্রযুক্তি এবং স্ব-হেফাজতের সুবিধাগুলিকেও নিখুঁতভাবে একত্রিত করে, যা বিশ্বব্যাপী ব্যবসায়ীদের জন্য একটি নতুন ডিফাই অভিজ্ঞতা নিয়ে আসে।

  • ক্রস-চেইন তরলতা একীভূত করা: তরলতা বিভাজন ভেঙে ফেলা ঐতিহ্যবাহী বাজারে, বিভিন্ন শৃঙ্খলের মধ্যে তরলতা প্রায়শই খণ্ডিত থাকে, যার ফলে ব্যবসায়ীরা সর্বোত্তম লেনদেনের মূল্য এবং গভীরতা উপভোগ করতে অক্ষম হন। এই প্রেক্ষাপটে ভার্টেক্স এজের জন্ম, একটি ইউনিফাইড অর্ডার বুক নেটওয়ার্কের মাধ্যমে একাধিক শৃঙ্খলে স্থায়ী তরলতার সমকালীন ভাগাভাগি উপলব্ধি করে। বর্তমানে, ভার্টেক্স এজ আর্বিট্রাম, বেস, সেই, ব্লাস্ট, ম্যান্টল, সোনিক এবং অ্যাবস্ট্রাক্ট সহ ৭টি মূলধারার চেইনে চিরস্থায়ী চুক্তির তারল্য প্রদান করেছে, যাতে ব্যবসায়ীদের আর তারল্যের বিচ্ছুরণ নিয়ে চিন্তা করতে না হয় এবং তারা সর্বোত্তম মূল্যে ব্যবসা করতে পারে, সত্যিকার অর্থে বিশ্বব্যাপী তারল্যের নিরবচ্ছিন্ন সংযোগ অর্জন করতে পারে।

  • হাইব্রিড অর্ডার বুক ট্রেডিং: অতি-দ্রুত ম্যাচিং এবং অন-চেইন সেটেলমেন্টের মধ্যে নিখুঁত ভারসাম্য ভার্টেক্স এজ একটি হাইব্রিড অর্ডার বুক ট্রেডিং মডেল গ্রহণ করে এবং এর মূল প্রযুক্তিগুলির মধ্যে রয়েছে:

অফ-চেইন অর্ডার বুক ম্যাচার: একটি অতি-উচ্চ-গতির অফ-চেইন ম্যাচিং প্রক্রিয়া ব্যবহার করে মাত্র ৫-১৫ মিলিসেকেন্ডের লেটেন্সিতে অর্ডার ম্যাচিং অর্জন করা যায়, যা বেশিরভাগ কেন্দ্রীভূত এক্সচেঞ্জের সাথে তুলনীয়; অন-চেইন ঝুঁকি ইঞ্জিন এবং AMM: প্রতিটি সমর্থিত চেইনে ঝুঁকি ব্যবস্থাপনা সিস্টেম এবং স্বয়ংক্রিয় বাজার নির্মাতারা (AMM) স্থাপন করা হয় যাতে অর্ডারগুলি ম্যাচিংয়ের পরে নিরাপদ এবং স্বচ্ছভাবে নিষ্পত্তি করা যায়। এই স্থাপত্যটি কেবল অত্যন্ত দ্রুত লেনদেনের প্রতিক্রিয়া নিশ্চিত করে না, বরং অন-চেইন সেটেলমেন্টের মাধ্যমে ব্যবহারকারীদের বিকেন্দ্রীভূত নিরাপত্তাও প্রদান করে, যা ব্যবসায়ীদের সম্পদের স্ব-হেফাজতের স্বাধীনতা বজায় রেখে CEX-স্তরের কর্মক্ষমতা উপভোগ করার সুযোগ দেয়।

  • একীভূত ক্রস-মার্জিন ব্যবস্থাপনা: মূলধনের প্রতিটি পয়সার দক্ষ ব্যবহার ভার্টেক্স প্ল্যাটফর্ম ব্যবহারকারীদের একীভূত ক্রস-মার্জিন ব্যবস্থাপনা ক্ষমতা প্রদান করে। স্পট, চিরস্থায়ী চুক্তি বা এমবেডেড ফান্ডিং মার্কেট যাই হোক না কেন, সমস্ত সম্পদ এবং অবস্থান একটি একীভূত মার্জিন অ্যাকাউন্টে একত্রিত করা যেতে পারে। এই নকশা ব্যবহারকারীদের এগুলি করতে দেয়:

একাধিক অ্যাকাউন্ট ফাংশন: একটি একক ওয়ালেটে একাধিক অ্যাকাউন্ট পরিচালনা করুন এবং আরও দক্ষতার সাথে তহবিল বরাদ্দ করুন; লিভারেজড স্পট পজিশন: উচ্চ মূলধন দক্ষতা অর্জনের জন্য সমস্ত সম্পদকে মার্জিন হিসাবে ব্যবহার করুন; নমনীয় ঝুঁকি ব্যবস্থাপনা: ঝুঁকির ঝুঁকি সঠিকভাবে নিয়ন্ত্রণের জন্য আমানত, অবস্থান এবং লাভ-ক্ষতির তথ্য একীভূতভাবে বিবেচনা করা হয়।

কানেক্ট ভার্টেক্স

লগইন “ভার্টেক্স প্রোটোকল” পৃষ্ঠার ঠিকানা:

https://app.vertexprotocol.com/

আপনার ওয়ালেট সংযুক্ত করুন

ভার্টেক্স বেশিরভাগ DEX-এর মতোই। dapp-এ লগ ইন করার পর, অনুমোদনের জন্য আপনাকে ওয়ালেটের সাথে সংযোগ করতে হবে। ভার্টেক্সের সাব-অ্যাকাউন্ট সিস্টেমটি একটি লেবেলের উপর ভিত্তি করে আলাদা করা হয়। লেবেলটি একটি সাব-অ্যাকাউন্ট ওয়ালেট ঠিকানা পেতে ওয়ালেট ঠিকানা গণনায় অংশগ্রহণ করে। একই সময়ে, এই ঠিকানাটি অর্ডার এবং অন্যান্য ক্রিয়াকলাপের জন্য অনুমোদিত।

উদাহরণস্বরূপ, ব্যবহার করুনWalletConnectসংযুক্ত থাকাকালীন ওয়ালেটের ঠিকানা হল:0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43, ডিফল্ট লেবেলটি “ডিফল্ট”, এবং গণনা করা সাব-অ্যাকাউন্ট ঠিকানাটি হল:0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c4364656661756c740000000000. ডিফল্ট ট্যাগগুলি হল:64656661756c740000000000

Vertex একাধিক সম্পদের রিচার্জ সমর্থন করে। সাধারণত, আপনি মার্জিন হিসেবে USDC রিচার্জ করতে পছন্দ করেন এবং লেনদেন স্থানান্তরের জন্য সরাসরি সংযুক্ত ওয়ালেট ব্যবহার করেন। এটা মনে রাখা উচিত যে Vertex-এ টাকা তোলা, স্থানান্তর করা, টোকেন পাঠানো এবং সাব-অ্যাকাউন্ট স্থানান্তর করার মতো কাজগুলি USDC খরচ করবে, এবং ফিও কম নয়, তাই এই কাজগুলি সাবধানতার সাথে করা দরকার।

অন্য একটি শৃঙ্খলে স্যুইচ করুন:

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

ভার্টেক্সে, বিভিন্ন চেইনে বিভিন্ন কনফিগারেশন তথ্য থাকে যেমন নোড, ইনডেক্সার এবং চেইন আইডি। FMZ এনক্যাপসুলেশনের জন্য ডিফল্ট চেইন হলArbitrum Oneব্যবহার করা যাবেLog(HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=contracts"))একটি চেইনের আইডি, স্থাপন করা চুক্তির তথ্য ইত্যাদি জিজ্ঞাসা করুন।

FMZ-এ কনফিগার করুন

FMZ.COM-এ লগ ইন করার পর, এক্সচেঞ্জ কনফিগারেশন পৃষ্ঠায়, “Cryptocurrency” নির্বাচন করুন, Vertex Exchange নির্বাচন করুন, আপনি সরাসরি dapp-এ ওয়ালেট প্রক্সি কী কনফিগার করতে পারেন। অবশ্যই, আপনি ওয়ালেট প্রাইভেট কীও কনফিগার করতে পারেন। Vertex-এ, আপনি প্রক্সি কী অনুমোদন/অনুমোদন বাতিলকরণ এবং অন্যান্য ক্রিয়াকলাপ পরিচালনা করতে ইন্টারফেস ব্যবহার করতে পারেন, যা আরও সুবিধাজনক।

প্রক্সি কী:

উদাহরণস্বরূপ, ভার্টেক্স DEX এক্সচেঞ্জের ফ্রন্ট-এন্ড পৃষ্ঠায়: Chrome ব্রাউজার (ডিবাগিং চালু করুন) -> অ্যাপ্লিকেশন -> স্থানীয় স্টোরেজ -> https://app.vertex -> ভার্টেক্স ব্যবহারকারী সেটিংস

ভার্টেক্স এক্সচেঞ্জ কনফিগার করুন

FMZ-এ দুটি জিনিস কনফিগার করতে হবে। প্রথমটি হল ওয়ালেট ঠিকানা (সাইন করার জন্য ব্যবহৃত প্রক্সি কী-এর ঠিকানা নয়, এটি অবশ্যই dapp-এর সাথে সংযুক্ত ওয়ালেট ঠিকানা হতে হবে)। দ্বিতীয়টি হল স্বাক্ষর করার জন্য ব্যবহৃত গোপন কী (এটি একটি ওয়ালেট প্রাইভেট কী বা একটি প্রক্সি কী হতে পারে)। যেহেতু প্রক্সি কী ব্যবহার করা যেতে পারে, তাই কনফিগার করা ওয়ালেট ঠিকানা এবং কী অগত্যা এক জোড়া নয়।

ভার্টেক্সের সাব-অ্যাকাউন্ট সিস্টেম ট্যাগ দ্বারা চিহ্নিত করা হয়। FMZ-এ ব্যবহৃত ডিফল্ট ট্যাগ হলdefaultট্যাগের মূল অ্যাকাউন্ট, যদি আপনার স্যুইচ করার প্রয়োজন হয়, তাহলে আপনি এটি কোডে ব্যবহার করতে পারেন:

exchange.IO("subAccountTag", "default")   // 切换到主子账号
exchange.IO("subAccountTag", "test01")    // 切换到标签名为 test01 的子账号

FMZ-এ অনুশীলন করুন

এক্সচেঞ্জ কনফিগারেশন তথ্য কনফিগার করার পরে এবং ভার্টেক্স ইন্টারফেস অ্যাক্সেস করতে পারে এমন একটি কাস্টোডিয়ান প্রোগ্রাম স্থাপন করার পরে, আমরা ব্যবহারিক ক্রিয়াকলাপের জন্য কিছু কোড লেখা শুরু করতে পারি।

আমরা পরীক্ষার জন্য প্রধান উপ-অ্যাকাউন্ট ব্যবহার করি (ট্যাগ সহ উপ-অ্যাকাউন্ট: ডিফল্ট), এবং আমরা ব্যবহার করিArbitrumনেটওয়ার্ক।

বাজারের অবস্থা এবং চেইন তথ্য

১. চুক্তি বাজারের তথ্য পান

function main() {
    var markets = exchange.GetMarkets()
    if (!markets) {
        throw "get markets error"
    }

    var tbl = {
        type: "table", 
        title: "test markets", 
        cols: [
            "key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", 
            "MaxQty", "MinNotional", "MaxNotional", "CtVal", "CtValCcy"
        ], 
        rows: []
    }

    for (var symbol in markets) {
        var market = markets[symbol]
        tbl.rows.push([
            symbol, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, 
            market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal, market.CtValCcy
        ])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return markets
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

দেখা যায় যে Vertex-এ চুক্তির ধরণ হল USDC-ভিত্তিক চুক্তি, মার্জিন হল USDC, এবং একটি চুক্তির মূল্য একটি সংশ্লিষ্ট মুদ্রার প্রতিনিধিত্ব করে, উদাহরণস্বরূপBTC_USDC.swapঅর্থাৎ, বিটিসির ইউএসডিসি-ভিত্তিক চুক্তিতে, একটি চুক্তি একটি বিটিসি অবস্থানের প্রতিনিধিত্ব করে। উপরের কোডটি দেখায় কিভাবে চুক্তি বাজারের তথ্য অনুরোধ করতে হয় এবং বিভিন্ন বিষয়বস্তু আউটপুট করতে হয়।

  1. গভীরতার তথ্য পান (অর্ডার বই)
function main() {
    var depths = [{"symbol": "ETH_USDC"}, {"symbol": "SOL_USDC"}, {"symbol": "BTC_USDC"}]
    for (var ele of depths) {
        ele["depth"] = exchange.GetDepth(ele["symbol"] + ".swap")
    }

    var tbls = []
    for (var ele of depths) {
        var tbl = {"type": "table", "title": ele["symbol"], "cols": ["level", "price", "amount"], "rows": []}
        var depth = ele["depth"]
        for (var i = 0 ; i < 3 ; i++) {
            tbl["rows"].push(["卖" + (i + 1), depth.Asks[i].Price, depth.Asks[i].Amount])
        }
        tbl["rows"].reverse()
        for (var i = 0 ; i < 3 ; i++) {
            tbl["rows"].push(["买" + (i + 1), depth.Bids[i].Price, depth.Bids[i].Amount])
        }
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) + "`")
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

৩. বাজার লেনদেনের অর্ডার প্রবাহ তথ্য

function main() {
    var arrTrades = [{"symbol": "ETH_USDC"}, {"symbol": "SOL_USDC"}, {"symbol": "BTC_USDC"}]
    for (var ele of arrTrades) {
        ele["trades"] = exchange.GetTrades(ele["symbol"] + ".swap")
    }

    var tbls = []
    for (var ele of arrTrades) {
        var tbl = {"type": "table", "title": ele["symbol"], "cols": ["Time", "Price", "Amount", "side"], "rows": []}
        var trades = ele["trades"]
        for (var trade of trades) {
            tbl["rows"].push([_D(trade.Time), trade.Price, trade.Amount, trade.Type == 0 ? "买入" : "卖出"])            
        }

        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) + "`")
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

৪. কে-লাইন ডেটা

function main() {
    let c = KLineChart({
        overlay: true
    })            

    let bars = exchange.GetRecords("SOL_USDC.swap")
    if (!bars) {
        return
    }            
    
    bars.forEach(function(bar, index) {
        c.begin(bar)
        Log(index, bar)
        c.close()
    })
}

ভার্টেক্স চার্ট DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

FMZ কৌশল পরিচালনা অঙ্কন DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

৫. তহবিলের হার

function main() {
    var fundings = exchange.GetFundings()

    var tbl = {
        "type": "table",
        "title": "GetFundings",
        "cols": ["Symbol", "Interval", "Time", "Rate"],
        "rows": [],
    }
    for (var f of fundings) {
        tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
    }

    LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`")
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

তহবিল হার চক্র হল ১ ঘন্টা।

৬. একটি প্রদত্ত অ্যাকাউন্ট এবং পণ্যের জন্য অন-চেইন ডেটা এবং সর্বাধিক অর্ডার ভলিউম অনুসন্ধান করুন।

Max Order Size Gets the max order size possible of a given product for a given subaccount.

function main() {
    // GET [GATEWAY_REST_ENDPOINT]/query?type=max_order_size&product_id={product_id}&sender={sender}&price_x18={price_x18}&direction={direction}
    // price_x18=3000000000000000000000 : 3000 USDC
    // product_id=4 : ETH_USDC.swap
    // sender=0x123 : e.g. 0x123

    return HttpQuery("https://gateway.prod.vertexprotocol.com/query?type=max_order_size&product_id=4&sender=0x123&price_x18=3000000000000000000000&direction=short")
}
  • স্কেলিং ফ্যাক্টরটি বেশিরভাগই: 1e18, তাই: 300000000000000000000000 হল 3000 USDC।
  • product_id=4 ট্রেডিং পণ্য আইডি, 4 হল ইথেরিয়াম চুক্তি, ETH_USDC.swap
  • প্রেরক হল ওয়ালেট ঠিকানা এবং সাব-অ্যাকাউন্ট ট্যাগ থেকে গণনা করা সাব-অ্যাকাউন্ট ঠিকানা।

চূড়ান্ত অনুরোধের মাধ্যমে ফেরত দেওয়া তথ্য হল:{"status":"success","data":{"max_order_size":"170536415320344899"},"request_type":"query_max_order_size"} দেখা যায় যে ৩০০০ মূল্যের ইথেরিয়াম চিরস্থায়ী চুক্তির জন্য বর্তমান অ্যাকাউন্টে উপলব্ধ সম্পদ, একটি বিক্রয় আদেশের জন্য সর্বোচ্চ অর্ডার পরিমাণ হল: ০.১৭ ETH

৭. ওয়ালেট অনুমোদনের প্রক্সি কী তথ্য অনুসন্ধান করুন

Linked Signer Retrieves current linked signer of a provided subaccount

function main() {
    return HttpQuery("https://gateway.prod.vertexprotocol.com/query?type=linked_signer&subaccount=0x123")
}

অনুমোদনের তথ্য পাওয়া গেছে:

{“status”:“success”,“data”:{“linked_signer”:“0x79119…”},“request_type”:“query_linked_signer”} “0x79119…” ঠিকানাটি হল Vertex ফ্রন্ট-এন্ড পৃষ্ঠায় ওয়ালেটের সাথে সংযোগ করার সময় অর্ডার লেনদেন অনুমোদনের জন্য প্রক্সি ঠিকানা। এই অনুমোদন প্রত্যাহার বা যোগ করা যেতে পারে (API কলের মাধ্যমে)।

বাণিজ্য

এই প্রবন্ধের মূল বিষয়বস্তু হলো এই। আমরা দীর্ঘদিন ধরে বিকেন্দ্রীভূত এক্সচেঞ্জে সহজ এবং দ্রুত লেনদেন পরিচালনা করার জন্য ব্যস্ত ছিলাম।

১. অর্ডার দিন

একটি সহজ ট্রেড পরীক্ষা করুন এবং একটি স্বাভাবিক লিমিট অর্ডার দিন।

function main() {
    var id1 = exchange.CreateOrder("ETH_USDC.swap", "buy", 2000, 0.1)
    var id2 = exchange.CreateOrder("SOL_USDC.swap", "buy", 60, 2)
    Log("ETH_USDC.swap id1:", id1)
    Log("SOL_USDC.swap id2:", id2)

    var orders = exchange.GetOrders("USDC.swap")
    var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var order of orders) {
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

  1. একটি অর্ডার বাতিল করুন
function main() {
    var orders = exchange.GetOrders("USDC.swap")
    var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var order of orders) {
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        exchange.CancelOrder(order.Id)
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return exchange.GetOrders()
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

৩. কোয়েরি পজিশন

function main() {
    // 使用市价单下单持仓
    exchange.SetCurrency("ETH_USDC")
    exchange.SetContractType("swap")
    exchange.Buy(-1, 0.01)

    var positions = exchange.GetPositions()
    var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
    for (var p of positions) {
        tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
    } 

    LogStatus("`" + JSON.stringify(tbl) +  "`")
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

এটি লক্ষ করা উচিত যে ভার্টেক্স এপিআই দ্বারা প্রদত্ত ডেটা ভার্টেক্স ফ্রন্ট-এন্ড পৃষ্ঠায় প্রদর্শিত সামগ্রী থেকে বিচ্যুত হয়, মূলত গড় হোল্ডিং মূল্য এবং হোল্ডিংয়ের লাভ-ক্ষতির পার্থক্যের কারণে। এটি ভার্টেক্স টিমকে ফিরিয়ে দেওয়া হয়েছে এবং পরে আপগ্রেড এবং আপডেট করা হতে পারে।

4、Trigger Order

যেহেতু শীর্ষবিন্দুর ট্রিগার ক্রম শেষবিন্দু থেকে স্বাধীন,exchange.IOকোনও ফাংশনের জন্য শর্তসাপেক্ষ অর্ডার দেওয়ার সময়, আপনাকে নির্দিষ্ট করতে হবেTrigger: https://trigger.prod.vertexprotocol.com, আসুন ব্যবহারিক কাজ চালিয়ে যাই।

  • nonce: পরবর্তী ট্রিগার অর্ডারের জন্য একটি nonce প্যারামিটার পাস করতে হবে। Vertex-এর গণনার প্রয়োজনীয়তা রয়েছে, তাই ব্যবহারের সহজতার জন্য, গণনা করা nonce পাওয়ার জন্য এনক্যাপসুলেশনের সময় একটি পদ্ধতি ডিজাইন করা হয়।
  • মেয়াদোত্তীর্ণতা: মেয়াদোত্তীর্ণতা প্যারামিটারের ক্ষেত্রেও একই প্রয়োজন, এবং গণনা করা মেয়াদোত্তীর্ণতাও পেতে হবে।
function main() {
    // isTrigger : true
    var nonce = exchange.IO("nonce", true)   // 如果是 Trigger Order 订单用到的 nonce 需要指定 isTrigger : true

    // flag , reduceOnly
    var expiration = exchange.IO("expiration", "GTC", false)  // 设置订单为GTC类型,非只减仓

    // params
    var params = {
        "place_order": {
            "product_id": 4,
            "order": {
                "sender":     "0x123...",
                "priceX18":   "4100000000000000000000",
                "amount":     "-100000000000000000",
                "expiration": expiration,
                "nonce":      nonce
            },
            "trigger": {
                "price_above": "4000000000000000000000"
            }
        }
    }

    return exchange.IO("api", "POST", "https://trigger.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

ট্রিগার এন্ডপয়েন্টের অধীনে, আরও রয়েছে:

  • তালিকা ট্রিগার অর্ডার ইন্টারফেস
  • Cancel Trigger Orders
  • Cancel Product Trigger Orders

কলিং পদ্ধতিটি প্লেস ট্রিগার অর্ডারের অনুরূপ, তাই আমি এখানে বিস্তারিত আলোচনা করব না।

সাব-অ্যাকাউন্ট ব্যবস্থাপনা

১. সাব-অ্যাকাউন্ট ট্যাগ পরিবর্তন করুন

ডিফল্ট সাব-অ্যাকাউন্ট ট্যাগ হল:default, আমরা একটি কাস্টম ট্যাগে স্যুইচ করি:subAcc02

function main() {
    exchange.IO("subAccountTag", "subAcc02")

    return exchange.GetAccount()
}

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

DEX এক্সচেঞ্জ কোয়ান্টিটেটিভ প্র্যাকটিস (3) - ভার্টেক্স প্রোটোকল ব্যবহারকারী নির্দেশিকা

সাব-অ্যাকাউন্ট ঠিকানায় টাকা স্থানান্তর করার সময়, ভার্টেক্স আসলে এই সাব-অ্যাকাউন্টটি তৈরি করবে।

  1. ভার্টেক্স সাব-অ্যাকাউন্টে তহবিল স্থানান্তর করুন

অ্যাকাউন্টের নন্সটি জিজ্ঞাসা করতে হবে এবং একটি প্যারামিটার হিসাবে ট্রান্সফার ইন্টারফেসের প্যারামিটারগুলিতে প্রেরণ করতে হবে।

https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x6B3f11d807809B0b1E5e3243df04a280d9F94bF4

function main() {
    var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
    var obj = JSON.parse(ret)
    var nonce = obj["data"]["tx_nonce"]
    Log("nonce:", nonce)

    var params = {
        "transfer_quote": {
            "tx": {
                // default -> subAcc02
                "sender":    "0xabc...",  // default
                "recipient": "0xdef...",  // subAcc02
                "amount":    "7000000000000000000",
                "nonce":     nonce
            }
        }
    }

    return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}

উদাহরণস্বরূপ: 0xabc… ট্যাগ ডিফল্ট সহ সাব-অ্যাকাউন্ট ঠিকানার সাথে সম্পর্কিত। 0xdef… subAcc02 ট্যাগ সহ সাব-অ্যাকাউন্ট ঠিকানার সাথে মিলে যায়। 0x123… হল ওয়ালেটের ঠিকানা।

লিক্যুইডিটি টোকেন উত্তোলন, মিন্টিং/ধ্বংস ইত্যাদি।

১. ভার্টেক্স থেকে ওয়ালেটে কয়েন উত্তোলন করুন

function main() {
    var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
    var obj = JSON.parse(ret)
    var nonce = obj["data"]["tx_nonce"]
    Log("nonce:", nonce)

    var params = {
        "withdraw_collateral": {
            "tx": {
                "sender":    "0xabc...",  // default
                "productId": 0,           // USDC : 0 , precision : 6
                "amount":    "10000000",  // 10 USDC
                "nonce":     nonce
            }
        }
    }

    return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}

USDC এর নির্ভুলতার দিকে মনোযোগ দিন।

২. মিন্টিং এলপি

function main() {
    var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
    var obj = JSON.parse(ret)
    var nonce = obj["data"]["tx_nonce"]
    Log("nonce:", nonce)

    var params = {
        "mint_lp": {
            "tx": {
                "sender":          "0xabc...",  // default
                "productId":       31,          // USDT_USDC
                "amountBase":      "10000000000000000000",
                "quoteAmountLow":  "9999900000000000000",
                "quoteAmountHigh": "10100000000000000000",
                "nonce":           nonce,
            }
        }
    }

    return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}

ট্রেডিং জোড়ার জন্য মিন্ট এলপি টোকেনUSDT_USDCবিনিময় পুল তারল্য যোগ করে।

৩. এলপি ধ্বংস করুন

function main() {
    var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
    var obj = JSON.parse(ret)
    var nonce = obj["data"]["tx_nonce"]
    Log("nonce:", nonce)

    var params = {
        "burn_lp": {
            "tx": {
                "sender":    "0xabc...",            // default
                "productId": 31,                    // USDT_USDC
                "amount":    "7500000000000000000", 
                "nonce":     nonce,
            }
        }
    }

    return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}

ওয়েবসকেট ইন্টারফেস

ওয়েবসকেট ইন্টারফেসের শেষ বিন্দু:wss://gateway.prod.vertexprotocol.com/v1/ws

[🚧🚧🚧ing…]

END

উপরের পরীক্ষাগুলি সর্বশেষ কাস্টোডিয়ানের উপর ভিত্তি করে তৈরি। ভার্টেক্স ডেক্স অ্যাগ্রিগেটর সমর্থন করার জন্য আপনাকে সর্বশেষ কাস্টোডিয়ানটি ডাউনলোড করতে হবে।

আপনার সমর্থনের জন্য ধন্যবাদ এবং পড়ার জন্য ধন্যবাদ।