संसाधन लोड हो रहा है... लोड करना...

डीईएक्स एक्सचेंजों का मात्रात्मक अभ्यास (2) -- हाइपरलिक्विड यूजर गाइड

लेखक:FMZ~Lydia, बनाया गयाः 2025-01-16 10:57:22, अद्यतनः 2025-01-16 10:59:23

प्रस्तावना

हाल ही में, एफएमजेड प्लेटफॉर्म ने हाइपरलिक्विड डीईएक्स के लिए समर्थन जोड़ा है, जो एक उच्च प्रदर्शन विकेंद्रीकृत एक्सचेंज है, जो उपयोगकर्ताओं को विकेंद्रीकृत ट्रेडिंग में भाग लेने के लिए अधिक विकल्प प्रदान करता है। वर्तमान में, एफएमजेड प्लेटफॉर्म के डॉकर फ़ंक्शन को पूरी तरह से अपडेट किया गया है ताकि हाइपरलिक्विड के स्पॉट और स्थायी अनुबंध ट्रेडिंग का समर्थन किया जा सके, और डीईएक्स के सभी एपीआई कार्यों को कवर किया जा सके।

हाइपरलिक्विड प्लेटफार्म का अवलोकन

हाइपरलिक्विड एक उच्च-प्रदर्शन वाला एल 1 ब्लॉकचेन है जिसे खरोंच से अनुकूलित किया गया है, जिसमें पूरी तरह से ऑन-चेन ओपन वित्तीय प्रणाली बनाने की दृष्टि है। उपयोगकर्ता एक सुचारू अंतिम उपयोगकर्ता अनुभव सुनिश्चित करते हुए कुशल देशी घटकों के साथ बातचीत करके स्वतंत्र रूप से एप्लिकेशन बना सकते हैं।

हाइपरलिक्विड L1 का प्रदर्शन एक अनुमति रहित वित्तीय अनुप्रयोग पारिस्थितिकी तंत्र का समर्थन करने के लिए पर्याप्त है। सभी आदेश, निकासी, लेनदेन और परिसमापन पूरी तरह से पारदर्शी तरीके से श्रृंखला में पूरा किए जाते हैं, जिसमें 1 सेकंड से कम का ब्लॉक विलंबता होता है। वर्तमान में, श्रृंखला प्रति सेकंड 100,000 आदेशों तक की प्रसंस्करण क्षमता का समर्थन करती है।

हाइपरलिक्विड L1 एक कस्टम आम सहमति एल्गोरिथ्म का उपयोग करता है जिसे हाइपरबीएफटी कहा जाता है, जो हॉटस्टफ और इसके बाद के एल्गोरिदम से प्रेरित है। दोनों आम सहमति तंत्र और नेटवर्क वास्तुकला को नीचे से ऊपर तक अनुकूलित किया गया है ताकि उच्च प्रदर्शन वाले ब्लॉकचेन की जरूरतों को पूरा किया जा सके।

इस मार्गदर्शिका के माध्यम से, हम आशा करते हैं कि आप एफएमजेड प्लेटफॉर्म पर हाइपरलिक्विड डीईएक्स पर प्रोग्रामेटिक और मात्रात्मक ट्रेडिंग के साथ जल्दी से शुरू करने और अधिक ट्रेडिंग अवसरों की खोज करने में मदद करेंगे।

अभ्यास सामग्री

REST प्रोटोकॉल

  • बाजार इंटरफेस अभ्यास।
  • ट्रेडिंग इंटरफेस अभ्यास (ऑर्डर प्लेसमेंट, ऑर्डर निकासी) ।
  • लेन-देन से संबंधित क्वेरी अभ्यास (स्थिति, आदेश) ।
  • अन्य कार्य (स्पॉट, अनुबंध हस्तांतरण, तिजोरी निकासी, वॉलेट में परिसंपत्तियों का हस्तांतरण आदि) ।

वेबसॉकेट प्रोटोकॉल

  • विनिमय सूचना सदस्यता अभ्यास (REST इंटरफ़ेस में कोई ट्रेड्स इंटरफ़ेस नहीं है, जिसे वेबसॉकेट इंटरफ़ेस द्वारा पूरक किया गया है)

अतितरल

  • व्यापारिक किस्में हाइपरलिक्विड को ट्रेडिंग किस्मों के आधार पर स्पॉट और पर्प्युटर कॉन्ट्रैक्ट्स में विभाजित किया गया है। एफएमजेड प्लेटफॉर्म के आर्किटेक्चर के आधार पर, इसे एफएमजेड प्लेटफॉर्म पर हाइपरलिक्विड स्पॉट एक्सचेंज ऑब्जेक्ट्स और हाइपरलिक्विड फ्यूचर्स एक्सचेंज ऑब्जेक्ट्स में भी विभाजित किया गया है, जो क्रमशः हाइपरलिक्विड डीईएक्स में विभिन्न किस्मों के अनुरूप हैं।

एफएमजेड प्लेटफॉर्म के प्लेटफ़ॉर्म जोड़ें पृष्ठ पर, आप हाइपरलिक्विड स्पॉट और वायदा विनिमय वस्तुओं को कॉन्फ़िगर कर सकते हैंः

https://www.fmz.com/m/platforms/add

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

  • पर्यावरण प्रभाग अधिकांश एक्सचेंजों की तरह हाइपरलिक्विड में भी एक परीक्षण वातावरण है।

मुख्यनेट एपीपी पताः

https://app.hyperliquid.xyz

वास्तविक उपयोग में, मुख्य नेटवर्क अपेक्षाकृत स्थिर है और इसकी गति अच्छी है। संबंधित आरईएसटी प्रोटोकॉल एपीआई इंटरफ़ेस नोड पता हैःhttps://api.hyperliquid.xyz. संदेश हस्ताक्षर से संबंधित जानकारी भी अलग हैःsource == "a",chainId = 42161.

परीक्षण नेटवर्क एपीपी पताः

https://app.hyperliquid-testnet.xyz

परीक्षण नेटवर्क अक्सर क्रैश हो जाता है, लेकिन इसका उपयोग केवल एक परीक्षण इंटरफ़ेस के रूप में किया जाता है और आपको DEX पर ट्रेडिंग कार्यों से परिचित कराने के लिए किया जाता है। संबंधित आरईएसटी प्रोटोकॉल एपीआई इंटरफ़ेस नोड पता हैःhttps://api.hyperliquid-testnet.xyz. संदेश हस्ताक्षर से संबंधित जानकारी भी अलग हैःsource == "b",chainId = 421614.

वॉलेट कनेक्शन, लॉगिन और कॉन्फ़िगरेशन जानकारी

अधिकांश DEX एक्सचेंजों की वॉलेट कनेक्शन विधि की तरह, आप Hyperliquid से कनेक्ट करने के लिए QR कोड को स्कैन करने के लिए वॉलेट एपीपी का उपयोग कर सकते हैं (वॉलेट को Arbitrum पर स्विच करें और लॉग इन करने के लिए कोड स्कैन करें, परीक्षण नेटवर्क और मुख्य नेटवर्क समान हैं) ।

  • हाइपरलिक्विड से जुड़ा वॉलेट

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

  • टेस्टनेट लीडरबोर्ड (डिपॉजिट टेस्ट यूएसडीसी परिसंपत्तियां) यदि आप पहले टेस्टनेट से परिचित होना चाहते हैं, तो आप अपने वॉलेट को हाइपरलिक्विड से कनेक्ट करने के बाद सीधे हाइपरलिक्विड पेज पर लीडरबोर्ड पा सकते हैं।

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

आप परीक्षण परिसंपत्तियों का दावा कर सकते हैं. परीक्षण के लिए USDC प्राप्त करने के बाद, Hyperliquid में जमा करने के लिए Deposit बटन पर क्लिक करें (अर्बिट्रम परीक्षण नेटवर्क के लिए कुछ ETH रखना सबसे अच्छा है).

  • मुख्य नेटवर्क पर USDC परिसंपत्तियां जमा करें

जमा करने के लिए डिपॉजिट बटन पर क्लिक करें, जिसके लिए वॉलेट सत्यापन की आवश्यकता होती है और यह आर्बिट्रम पर थोड़ा ईटीएच का उपभोग करेगा।

  • प्रॉक्सी वॉलेट विन्यास बनाएँ

हाइपरलिक्विड एपीपी पेज पर मैन्युअल लेनदेन करते समय, पेज स्वचालित रूप से एक प्रॉक्सी वॉलेट पता और निजी कुंजी उत्पन्न करेगा, जो ब्राउज़र में रिकॉर्ड किए जाते हैं और ब्राउज़र पेज पर ऑर्डर देने जैसे संचालन के लिए उपयोग किए जाते हैं। तो यदि हम प्रोग्रामेटिक और मात्रात्मक व्यापार करना चाहते हैं, तो हम इस कॉन्फ़िगरेशन जानकारी को कैसे प्राप्त करते हैं?

आप Hyperliquid API पृष्ठ पर आवश्यक प्रॉक्सी वॉलेट पता और संबंधित निजी कुंजी बना सकते हैंः

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

  1. बनाने के लिए प्रॉक्सी वॉलेट का नाम दें.
  2. पता और निजी कुंजी उत्पन्न करें.
  3. हाइपरलिक्विड से जुड़े वॉलेट का उपयोग करके प्रॉक्सी वॉलेट को अधिकृत करें.
  • एफएमजेड पर प्रॉक्सी वॉलेट पता और निजी कुंजी कॉन्फ़िगर करें

फिर आप इस जानकारी को FMZ प्लेटफॉर्म पर कॉन्फ़िगर कर सकते हैं (कन्फ़िगरेशन इंटरफ़ेस ऊपर उल्लेख किया गया है) ।

https://www.fmz.com/m/platforms/add

वॉलेट पताः हाइपरलिक्विड से जुड़ा वॉलेट पता (नोट, प्रॉक्सी वॉलेट पता नहीं) । वॉलेट प्राइवेटकीः वॉलेट की निजी कुंजी हाइपरलिक्विड से जुड़ी होती है (वैकल्पिक, केवल एपीआई जैसे ट्रांसफर को कॉल करने के लिए आवश्यक है, इसे खाली छोड़ दिया जा सकता है) । गुप्त कुंजी: प्रॉक्सी वॉलेट निजी कुंजी (पिछले चरण में उत्पन्न, प्राधिकरण के बाद प्रदर्शित निजी कुंजी) ।


एफएमजेड पर अतितरल अभ्यास

विनिमय वस्तु को विन्यस्त करने के लिए आवश्यक जानकारीः

  • वॉलेट पता उपयोगकर्ता लेनदेन जानकारी क्वेरी करने के लिए प्रयोग किया जाता है
  • वॉलेट प्राइवेटकी का उपयोग हस्तांतरण और अन्य कार्यों के लिए किया जाता है
  • गुप्त कुंजी लेनदेन से संबंधित कार्यों के लिए प्रयोग किया जाता है

एक बार कॉन्फ़िगरेशन पूरा हो जाने के बाद, हम इसे एफएमजेड प्लेटफॉर्म पर परीक्षण कर सकते हैं। हम सीधे परीक्षण अभ्यास के लिए एफएमजेड प्लेटफॉर्म के डिबगिंग टूल का उपयोग करते हैं।

https://www.fmz.com/m/debug

यदि आप टेस्टनेट जानकारी के साथ कॉन्फ़िगर की गई हाइपरलिक्विड एक्सचेंज ऑब्जेक्ट का उपयोग कर रहे हैं, तो आपको इसका उपयोग करते समय कुछ स्विचिंग ऑपरेशन करने की आवश्यकता होगी, उदाहरण के लिएः

function main() {
    // REST protocol API address switched to testnet
    exchange.SetBase("https://api.hyperliquid-testnet.xyz")

    // source : a Mainnet, b Testnet
    exchange.IO("source", "b")

    return exchange.GetAccount()
}

मेननेट कॉन्फ़िगरेशन के लिए उपरोक्त स्विचिंग ऑपरेशन की आवश्यकता नहीं है। हाइपरलिक्विड डीईएक्स एक्सचेंज में स्पॉट और वायदा उत्पादों से संबंधित एपीआई इंटरफ़ेस लगभग समान हैं, केवल विवरण में मामूली अंतर के साथ। इसके बाद हम उपयोग करते हैंअतितरल वायदाविनिमय के उद्देश्यमुख्यनेट विन्यास जानकारीऔरटेस्टनेट कॉन्फ़िगरेशन जानकारीपरीक्षण के लिए।

किस्म की जानकारी

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) +  "`")
}

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

ऑर्डर बुक डेटा

function main() {
    var depth = exchange.GetDepth("ETH_USD.swap")
    var asks = depth.Asks
    var bids = depth.Bids

    Log("asks 3", bids[2])
    Log("asks 2", bids[1])
    Log("asks 1", bids[0])

    Log("bids 1", asks[0])
    Log("bids 2", asks[1])
    Log("bids 3", asks[2])
}

खाते की संपत्ति

function main() {
    var account = exchange.GetAccount()
    return account
}

कार्य के परिणाम:

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

आदेश और जाँच

function main() {
    var symbols = ["ETH_USD.swap", "XRP_USD.swap", "HYPE_USD.swap"]
    var arrDir = ["market_buy", "sell", "buy"]
    var markets = exchange.GetMarkets()

    var ids = []
    for (var i in symbols) {
        var symbol = symbols[i]
        var side = arrDir[i]

        var ticker = exchange.GetTicker(symbol)
        var info = markets[symbol]

        exchange.SetPrecision(info.PricePrecision, info.AmountPrecision)
        
        // USDC
        var qty = 15
        var price = null 
        var amount = null 
        if (side == "market_buy") {
            price = -1
            side = "buy"
            amount = qty / ticker.Last
        } else {
            price = side == "buy" ? ticker.Last * 0.9 : ticker.Last * 1.1
            amount = qty / price
        }        

        var id = exchange.CreateOrder(symbol, side, price, amount)
        ids.push(id)
    }

    var tbl = {type: "table", title: "test", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var id of ids) {
        var order = exchange.GetOrder(id)
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        Sleep(500)
    }

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

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

सभी आदेश रद्द करें

function main() {
    var orders = exchange.GetOrders("USD.swap")
    for (var order of orders) {
        exchange.CancelOrder(order.Id, order)
        Sleep(1000)
    }

    var tbl = {type: "table", title: "test", 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) +  "`")
}

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

स्विच लीवरेज, स्विच क्रॉस/आइसोलेटेड पोजीशन

function main() {
    // Set the current position to cross position
    exchange.IO("cross", true)

    // Set leverage
    exchange.SetMarginLevel("ETH_USD.swap", 10)

    return exchange.GetRawJSON()
}

कार्य के परिणाम:

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

exchange.GetRawJSON() लीवरेज सेटिंग अनुरोध की प्रतिक्रिया जानकारी लौटाता हैः

{status:ok,response:{type:default}}

अन्य इंटरफेस

चूंकि एक्सचेंज के इंटरफेस पैरामीटर अपेक्षाकृत जटिल हैं और यूआरएल एन्कोडिंग विधि का उपयोग करके पारित नहीं किया जा सकता है, जब उपयोग किया जाता हैexchange.IOfunctionकॉल, केवल JSON स्ट्रिंग्स को पैरामीटर के रूप में पास किया जा सकता है। निम्नलिखित विभिन्न इंटरफ़ेस कॉल के उदाहरण हैं।

अतितरल संदर्भ दस्तावेज:https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order

कार्यक्रम रद्द करें (मृत आदमी की स्विच)

var params = {"type": "scheduleCancel", "time": new Date().getTime()}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))

{status:err,response:जब तक पर्याप्त मात्रा में कारोबार नहीं हो जाता तब तक निर्धारित रद्द करने का समय निर्धारित नहीं किया जा सकता। आवश्यकः1000000। व्यापार किया:174.57424.”}

इस फ़ंक्शन के कुछ प्रतिबंध हैं: इस फ़ंक्शन का उपयोग करने के लिए खाते को ट्रेडिंग स्तर तक पहुँचना होगा।

आदेश

एक TWAP आदेश बनाएँ।

function main() {
    var params = {
        "type": "twapOrder",
        "twap": {
            "a": 0,
            "b": true,
            "s": "1",
            "r": false,
            "m": 10,
            "t": false
        }
    }

    // SOL_USDT.swap , Order Quantity: 1 , twapOrder order has position requirement, minimum value of 100 USD
    // a: 0, i.e. SOL_USDT.swap
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}

twapरद्द करें

TWAP आदेश रद्द करें।

function main() {
    var params = {
        "type": "twapCancel",
        "a": 0,
        "t": 3805
    }

    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}

अनुमोदित करेंएजेंट

टेस्टनेट, एक नए प्रॉक्सी वॉलेट को अधिकृत करें.

function main() {
    var params = {
        "type": "approveAgent",
        "hyperliquidChain": "Testnet",
        "signatureChainId": "0x66eee",
        "agentAddress": "0xAAAA",
        "agentName": "test02",
        "nonce": new Date().getTime()
    }

    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}

अनुमति सफलतापूर्वक, रिटर्नः

{status:ok,response:{type:default}}

  • एक एपीआई प्रॉक्सी वॉलेट बनाएँ. 0xAAAA उत्पन्न वॉलेट पता है (सिर्फ एक उदाहरण). इसे उत्पन्न करते समय संबंधित निजी कुंजी सहेजें.
  • test02 एपीआई प्रॉक्सी वॉलेट का नाम है। उत्पन्न कुंजी जोड़ी हाइपरलिक्विड एपीपी पृष्ठ पर प्रदर्शित की जाएगीhttps://app.hyperliquid-testnet.xyz/API.

वॉल्ट ट्रांसफर

ताबूत से संपत्ति वापस ले लो.

function main() {
    var params = {
        "type": "vaultTransfer",
        "vaultAddress": "0xAAA",
        "isDeposit": true,
        "usd": 5000000
    }
    
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
  • USD: 5000000 का अर्थ है 5 USDC.
  • 0xAAA: ताबूत का पता है.
  • isDeposit: सही, जमा और जमा को नियंत्रित करता है.

वापस लेना3

टेस्टनेट, वॉलेट में संपत्ति निकालें।

function main() {
    var params = {
        "type": "withdraw3",
        "hyperliquidChain": "Testnet",
        "signatureChainId": "0x66eee",
        "amount": "5",
        "time": new Date().getTime(),
        "destination": "0xAAA"
    }
    
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
  • अपने वर्तमान वॉलेट पते पर धन निकालेंः 0xAAA

usdClassTransfer

संपत्ति का स्पॉट/फ्यूचर्स के बीच हस्तांतरण (स्थायी अनुबंध) ।

function main() {
    var params = {
        "type": "usdClassTransfer",
        "hyperliquidChain": "Testnet",
        "signatureChainId": "0x66eee",
        "amount": "5",
        "toPerp": false,
        "nonce": new Date().getTime()
    }

    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
  • पैरामीटर toPerp को सेट किया गया हैfalse, घूर्णन की दिशा दर्शाता हैः वायदा -> स्पॉट।
  • पैरामीटर toPerp को सेट किया गया हैtrue, घूर्णन की दिशा दर्शाता हैः स्पॉट -> वायदा।

वेबसॉकेट इंटरफेस उपयोग

मुख्य नेटवर्क WS इंटरफ़ेस पताः

मुख्य नेटवर्क: wss://api.hyperliquid.xyz/ws

चूंकि REST प्रोटोकॉल एपीआई इंटरफ़ेस में हाल के लेनदेन डेटा प्राप्त करने के लिए एक इंटरफ़ेस नहीं है, इसलिए वेबसॉकेट इंटरफ़ेस में यह चैनल है जिसे सब्सक्राइब किया जा सकता है।

सदस्यता संदेश संरचना

{
    "method": "subscribe", 
    "subscription": {
        "type": "trades", 
        "coin": "SOL"
    } 
}

डिबगिंग टूल में निष्पादित परीक्षण का उदाहरणः

function main() {
    var loopCount = 20
    var subMsg = {
        "method": "subscribe", 
        "subscription": {
            "type": "trades", 
            "coin": "SOL"
        } 
    }

    var conn = Dial("wss://api.hyperliquid.xyz/ws")
    conn.write(JSON.stringify(subMsg))
    if (conn) {
        for (var i = 0; i < loopCount; i++) {
            var msg = conn.read(1000)
            if (msg) {
                Log(msg)
            }
        }
    }

    conn.close()
    Log("End of test")
}

Quantitative Practice of DEX Exchanges (2) – Hyperliquid User Guide

अंत

उपरोक्त परीक्षण नवीनतम डॉकर पर आधारित हैं. आपको हाइपरलिक्विड डीईएक्स एक्सचेंज का समर्थन करने के लिए नवीनतम डॉकर डाउनलोड करने की आवश्यकता है.

आपके समर्थन के लिए धन्यवाद और पढ़ने के लिए धन्यवाद।


अधिक