avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

میں تخلیق کیا: 2025-01-15 13:43:15, تازہ کاری: 2025-01-16 09:52:43
comments   2
hits   3114

[TOC]

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

دیباچہ

حال ہی میں، FMZ پلیٹ فارم نے Hyperliquid DEX کے لیے سپورٹ شامل کیا ہے، جو کہ ایک اعلیٰ کارکردگی والا وکندریقرت تبادلہ ہے، جو صارفین کو وکندریقرت ٹرانزیکشنز میں حصہ لینے کے لیے مزید اختیارات فراہم کرتا ہے۔ فی الحال، FMZ پلیٹ فارم کے کسٹوڈین فنکشن کو مکمل طور پر اپ ڈیٹ کر دیا گیا ہے تاکہ Hyperliquid کے اسپاٹ اور دائمی معاہدے کے لین دین کو سپورٹ کیا جا سکے اور DEX کے تمام API افعال کا احاطہ کیا جا سکے۔

Hyperliquid پلیٹ فارم کا جائزہ

Hyperliquid ایک اعلی کارکردگی والا L1 بلاکچین ہے جو مکمل طور پر آن چین اوپن مالیاتی نظام کی تعمیر کے وژن کے ساتھ شروع سے ہی بہتر بنایا گیا ہے۔ صارف ایک ہموار اختتامی صارف کے تجربے کو یقینی بناتے ہوئے موثر مقامی اجزاء کے ساتھ بات چیت کرکے آزادانہ طور پر ایپلی کیشنز تشکیل دے سکتے ہیں۔

Hyperliquid L1 کی کارکردگی مالی ایپلی کیشنز کے بغیر اجازت کے ماحولیاتی نظام کو سپورٹ کرنے کے لیے کافی ہے۔ تمام آرڈرز، آرڈر کی واپسی، لین دین اور لیکویڈیشن مکمل طور پر شفاف طریقے سے آن چین مکمل کیے جاتے ہیں، بلاک کی تاخیر 1 سیکنڈ سے بھی کم ہوتی ہے۔ فی الحال، سلسلہ 100,000 آرڈرز فی سیکنڈ تک پروسیسنگ کی صلاحیت کو سپورٹ کرتا ہے۔

Hyperliquid L1 HyperBFT نامی ایک حسب ضرورت متفقہ الگورتھم استعمال کرتا ہے، جو Hotstuff اور اس کے جانشینوں سے متاثر ہے۔ متفقہ طریقہ کار اور نیٹ ورک کی ساخت دونوں کو اعلی کارکردگی والے بلاکچین کی ضروریات کو پورا کرنے کے لیے نیچے سے اوپر تک بہتر بنایا گیا ہے۔

اس گائیڈ کے ذریعے، ہم امید کرتے ہیں کہ FMZ پلیٹ فارم پر Hyperliquid DEX کی پروگرامی اور مقداری ٹریڈنگ کے ساتھ تیزی سے شروع کرنے میں آپ کی مدد کریں گے اور مزید تجارتی مواقع دریافت کریں گے۔

مشمولات کی مشق کریں۔

REST پروٹوکول

  • مارکیٹ انٹرفیس کی مشق۔
  • ٹریڈنگ انٹرفیس پریکٹس (آڈرز دینا، آرڈر منسوخ کرنا)۔
  • لین دین سے متعلق استفسار کے طریقے (اکاؤنٹس، آرڈرز)۔
  • دیگر افعال (اسپاٹ، کنٹریکٹ ٹرانسفر، والٹ کی واپسی، پرس میں اثاثوں کی منتقلی وغیرہ)۔

ویب ساکٹ پروٹوکول

  • ایکسچینج انفارمیشن سبسکرپشن پریکٹس (REST انٹرفیس میں کوئی ٹریڈز انٹرفیس نہیں ہے، جو Websocket انٹرفیس کے ذریعے پورا کیا جاتا ہے)

Hyperliquid

  • تجارت کی اقسام Hyperliquid کو FMZ پلیٹ فارم کے فن تعمیر کی بنیاد پر اسپاٹ اور مستقل معاہدوں میں تقسیم کیا گیا ہے، اسے FMZ پلیٹ فارم پر Hyperliquid اسپاٹ ایکسچینج آبجیکٹ اور Hyperliquid فیوچر ایکسچینج آبجیکٹ میں بھی تقسیم کیا گیا ہے۔ وہ بالترتیب Hyperliquid DEX میں مختلف اقسام سے مطابقت رکھتے ہیں۔

FMZ پلیٹ فارم کے Add Exchange صفحہ پر، آپ Hyperliquid سپاٹ اور فیوچر ایکسچینج اشیاء کو ترتیب دے سکتے ہیں:

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

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

  • ماحولیاتی تقسیم زیادہ تر تبادلوں کی طرح، Hyperliquid میں ٹیسٹنگ ماحول ہوتا ہے۔

    • مینیٹ اے پی پی کا پتہ:

    https://app.hyperliquid.xyz

    اصل استعمال کے تجربے سے، مرکزی نیٹ ورک نسبتاً مستحکم ہے اور رفتار بھی اچھی ہے۔ متعلقہ REST پروٹوکول API انٹرفیس نوڈ ایڈریس:https://api.hyperliquid.xyz。 پیغام پر دستخط کرنے سے متعلق معلومات بھی مختلف ہیں:source == "a"chainId = 42161

    • ٹیسٹ نیٹ ورک اے پی پی ایڈریس:

    https://app.hyperliquid-testnet.xyz

    ٹیسٹ نیٹ ورک اکثر کریش ہو جاتا ہے، لیکن اسے صرف ایک ٹیسٹ انٹرفیس کے طور پر استعمال کیا جاتا ہے اور DEX پر ٹریڈنگ کے افعال سے خود کو واقف کرنے کے لیے۔ متعلقہ REST پروٹوکول API انٹرفیس نوڈ ایڈریس:https://api.hyperliquid-testnet.xyz。 پیغام پر دستخط کرنے سے متعلق معلومات بھی مختلف ہیں:source == "b"chainId = 421614

والیٹ کنکشن، لاگ ان اور کنفیگریشن کی معلومات

زیادہ تر DEX ایکسچینجز کے والیٹ کنکشن کے طریقہ کی طرح، آپ Hyperliquid سے منسلک ہونے کے لیے QR کوڈ کو اسکین کرنے کے لیے والیٹ APP کا استعمال کر سکتے ہیں (والٹ کو Arbitrum میں تبدیل کریں اور لاگ ان کرنے کے لیے کوڈ کو اسکین کریں، ٹیسٹ نیٹ ورک اور مین نیٹ ورک ایک جیسے ہیں) .

  • Hyperliquid سے والیٹ کنکشن

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

  • Testnet Faucet (ڈپازٹ ٹیسٹ USDC اثاثے)

اگر آپ پہلے ٹیسٹ نیٹ سے واقف ہونا چاہتے ہیں، تو آپ اپنے بٹوے کو Hyperliquid سے منسلک کرنے کے بعد براہ راست Hyperliquid صفحہ پر نل تلاش کر سکتے ہیں۔

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

آپ جانچ کے لیے USDC حاصل کرنے کے بعد، اسے Hyperliquid میں جمع کرنے کے لیے “ڈپازٹ” بٹن پر کلک کریں (آربٹرم ٹیسٹ نیٹ ورک کے لیے کچھ ETH رکھنا بہتر ہے)۔

  • مین نیٹ پر USDC کے اثاثے جمع کریں۔

ڈپازٹ کرنے کے لیے “ڈپازٹ” بٹن پر کلک کریں، جس کے لیے والیٹ کی تصدیق کی ضرورت ہوتی ہے اور یہ Arbitrum پر تھوڑا سا ETH استعمال کرے گا۔

  • ایک پراکسی والیٹ کنفیگریشن بنائیں

Hyperliquid APP صفحہ پر دستی لین دین کرتے وقت، صفحہ خود بخود ایک پراکسی والیٹ ایڈریس اور پرائیویٹ کلید بنائے گا، جو براؤزر میں ریکارڈ ہوتے ہیں اور اگر ہم پروگراماتی اور مقداری کام کرنا چاہتے ہیں تو براؤزر کے صفحہ پر آرڈر دینے جیسے کاموں کے لیے استعمال ہوتے ہیں۔ اس ترتیب کی معلومات حاصل کرنے کے لیے لین دین کی ضرورت کیسے ہے؟

آپ Hyperliquid API صفحہ پر مطلوبہ پراکسی والیٹ ایڈریس اور متعلقہ نجی کلید بنا سکتے ہیں:

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

  • 1. بنائے جانے والے پراکسی والیٹ کو ایک نام دیں۔

  • 2. پتہ اور نجی کلید بنائیں۔

    1. Hyperliquid سے منسلک والیٹ کا استعمال کرتے ہوئے پراکسی والیٹ کی اجازت دیں۔
  • FMZ پر پراکسی والیٹ ایڈریس اور نجی کلید کو ترتیب دیں۔

پھر آپ اس معلومات کو FMZ پلیٹ فارم پر کنفیگر کر سکتے ہیں (کنفیگریشن انٹرفیس کا اوپر ذکر کیا گیا ہے)۔

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

  • والیٹ کا پتہ: پرس کا پتہ Hyperliquid سے منسلک ہے (نوٹ، پراکسی والیٹ کا پتہ نہیں)۔
  • Wallet PrivateKey: Hyperliquid سے منسلک والیٹ پرائیویٹ کلید (اختیاری، صرف APIs جیسے کہ ٹرانسفرز کو کال کرنے پر ضروری ہے، خالی چھوڑی جا سکتی ہے)۔
  • خفیہ کلید: پراکسی والیٹ کی نجی کلید (پچھلے مرحلے میں تیار کی گئی، اجازت کے بعد ظاہر ہونے والی نجی کلید)۔

FMZ پر Hyperliquid پریکٹس

تبادلہ آبجیکٹ کو ترتیب دینے کے لیے درکار معلومات:

  • والٹ ایڈریس صارف کے لین دین کی معلومات کے استفسار کے لیے استعمال کیا جاتا ہے۔
  • Wallet PrivateKey کو منتقلی، منتقلی اور دیگر کاموں کے لیے استعمال کیا جاتا ہے۔
  • خفیہ کلید لین دین سے متعلق کارروائیوں کے لیے استعمال ہوتی ہے۔

ایک بار کنفیگریشن مکمل ہونے کے بعد، ہم اسے FMZ پلیٹ فارم پر جانچ سکتے ہیں، ہم ٹیسٹنگ پریکٹس کے لیے FMZ پلیٹ فارم کے “ڈیبگنگ ٹول” کو براہ راست استعمال کرتے ہیں۔

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

اگر آپ ٹیسٹ نیٹ کی معلومات کے ساتھ تشکیل شدہ Hyperliquid ایکسچینج آبجیکٹ استعمال کر رہے ہیں، تو آپ کو اسے استعمال کرتے وقت کچھ سوئچنگ آپریشن کرنے کی ضرورت ہوگی، مثال کے طور پر:

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

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

    return exchange.GetAccount()
}

مین نیٹ کنفیگریشن کو اوپر والے سوئچنگ آپریشن کی ضرورت نہیں ہے Hyperliquid 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) - Hyperliquid User Guide

بک ڈیٹا آرڈر کریں۔

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) - Hyperliquid User Guide

اکاؤنٹ کے اثاثے

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

DEX ایکسچینج کوانٹیٹیو پریکٹس (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) +  "`")
}

DEX ایکسچینج کوانٹیٹیو پریکٹس (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) +  "`")
}

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

سوئچ لیوریج، سوئچ کراس مارجن/ الگ تھلگ مارجن

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

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

    return exchange.GetRawJSON()
}

DEX ایکسچینج کوانٹیٹیو پریکٹس (2) - Hyperliquid User Guide

exchange.GetRawJSON() لیوریج سیٹنگ کی درخواست کی جوابی معلومات واپس کرتا ہے:

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

دوسرے انٹرفیس

چونکہ ایکسچینج کے انٹرفیس پیرامیٹرز پیچیدہ ہیں، اس لیے پیرامیٹرز کو پاس کرنے کے لیے URL انکوڈنگ کا طریقہ استعمال کرنا ممکن نہیں ہے۔exchange.IOکسی فنکشن کو کال کرتے وقت، صرف JSON سٹرنگز کو پیرامیٹرز کے طور پر پاس کیا جا سکتا ہے ہر انٹرفیس کو کال کرنے کی مثالیں درج ذیل ہیں۔

Hyperliquid حوالہ دستاویزات: 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

Testnet، ایک نئے پراکسی والیٹ کی اجازت دیں۔

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

Testnet، پرس میں اثاثے واپس لے لیں۔

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 انٹرفیس میں حالیہ لین دین کا ڈیٹا حاصل کرنے کے لیے کوئی انٹرفیس نہیں ہے، اس لیے Websocket انٹرفیس میں یہ چینل ہے جسے سبسکرائب کیا جا سکتا ہے۔

سبسکرپشن پیغام کا ڈھانچہ

{
    "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) - Hyperliquid User Guide

END

مندرجہ بالا ٹیسٹ تازہ ترین کسٹوڈین پر مبنی ہیں Hyperliquid DEX ایکسچینج کو سپورٹ کرنے کے لیے آپ کو تازہ ترین کسٹوڈین کو ڈاؤن لوڈ کرنا ہوگا۔

آپ کے تعاون کا شکریہ اور پڑھنے کے لیے آپ کا شکریہ۔