4
ध्यान केंद्रित करना
1271
समर्थक

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

में बनाया: 2025-01-15 13:43:15, को अपडेट: 2025-01-16 09:52:43
comments   2
hits   3114

[TOC]

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

प्रस्तावना

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

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

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

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

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

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

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

REST प्रोटोकॉल

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

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

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

Hyperliquid

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

FMZ प्लेटफ़ॉर्म के एक्सचेंज जोड़ें पृष्ठ पर, आप हाइपरलिक्विड स्पॉट और फ्यूचर्स एक्सचेंज ऑब्जेक्ट कॉन्फ़िगर कर सकते हैं:

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

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

    • मेननेट एपीपी पता:

    https://app.hyperliquid.xyz

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

    • नेटवर्क APP पता परीक्षण करें:

    https://app.hyperliquid-testnet.xyz

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

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

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

  • हाइपरलिक्विड से वॉलेट कनेक्शन

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

  • टेस्टनेट नल (जमा परीक्षण USDC संपत्ति)

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

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

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

जमा करने के लिए “जमा” बटन पर क्लिक करें, जिसके लिए वॉलेट सत्यापन की आवश्यकता होगी और यह आर्बिट्रम पर थोड़ा ETH खपत करेगा।

  • प्रॉक्सी वॉलेट कॉन्फ़िगरेशन बनाएँ

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

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

  • 1. बनाए जाने वाले प्रॉक्सी वॉलेट को एक नाम दें।

  • 2. पता और निजी कुंजी उत्पन्न करें.

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

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

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

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

FMZ पर हाइपरलिक्विड प्रैक्टिस

एक्सचेंज ऑब्जेक्ट को कॉन्फ़िगर करने के लिए आवश्यक जानकारी:

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

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

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

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

function main() {
    // REST协议API地址切换到测试网
    exchange.SetBase("https://api.hyperliquid-testnet.xyz")

    // source : a 主网 , b 测试网
    exchange.IO("source", "b")

    return exchange.GetAccount()
}

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

विविधता की जानकारी

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

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

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

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

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

खाता परिसंपत्तियां

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

ऑर्डर करें और जांच करें

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

सभी ऑर्डर रद्द करें

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

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

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

function main() {
    // 设置当前为全仓
    exchange.IO("cross", true)

    // 设置杠杆
    exchange.SetMarginLevel("ETH_USD.swap", 10)

    return exchange.GetRawJSON()
}

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

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

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

अन्य इंटरफेस

चूंकि एक्सचेंज के इंटरफ़ेस पैरामीटर जटिल हैं, इसलिए पैरामीटर पास करने के लिए URL एन्कोडिंग विधि का उपयोग करना संभव नहीं है।exchange.IOफ़ंक्शन को कॉल करते समय, केवल JSON स्ट्रिंग को पैरामीटर के रूप में पास किया जा सकता है। नीचे प्रत्येक इंटरफ़ेस को कॉल करने के उदाहरण दिए गए हैं।

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

Schedule Cancel (dead man’s switch)

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

{“status”:“err”,“response”:“Cannot set scheduled cancel time until enough volume traded. Required: \(1000000. Traded: \)174.57424.”}

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

twapOrder

एक TWAP ऑर्डर बनाएं.

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

    // SOL_USDT.swap , 订单量 : 1  , twapOrder 订单有头寸要求,最少100美元价值
    // a : 0 , 即 SOL_USDT.swap 这个品种
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}

twapCancel

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

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

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

approveAgent

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

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”}}

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

vaultTransfer

तिजोरी से संपत्ति निकालें।

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”: सत्य, जमा और जमा को नियंत्रित करता है।

withdraw3

टेस्टनेट, परिसंपत्तियों को वॉलेट में वापस ले जाएं।

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 इंटरफ़ेस पता:

Mainnet: wss://api.hyperliquid.xyz/ws

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

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

{
    "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("测试结束")
}

DEX एक्सचेंज क्वांटिटेटिव प्रैक्टिस (2) - हाइपरलिक्विड उपयोगकर्ता गाइड

END

उपरोक्त परीक्षण नवीनतम कस्टोडियन पर आधारित हैं। हाइपरलिक्विड DEX एक्सचेंज का समर्थन करने के लिए आपको नवीनतम कस्टोडियन डाउनलोड करना होगा।

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