Sumber daya yang dimuat... Pemuatan...

DEX Exchange Quantitative Practice ((2) -- Hyperliquid Panduan Penggunaan

Penulis:Penemu Kuantitas - Mimpi Kecil, Dibuat: 2025-01-15 13:43:15, Diperbarui: 2025-01-15 17:08:49

[TOC]

DEX交易所量化实践(2)– Hyperliquid 使用指南

Pengantar

Baru-baru ini, platform FMZ telah menambahkan dukungan baru untuk pertukaran desentralisasi kinerja tinggi Hyperliquid DEX, yang memberikan lebih banyak pilihan bagi pengguna untuk berpartisipasi dalam perdagangan desentralisasi. Saat ini, fungsi administrator platform FMZ telah diperbarui secara lengkap untuk mendukung perdagangan langsung dan kontrak permanen Hyperliquid dan mencakup semua fungsi API DEX.

Hyperliquid Platform

Hyperliquid adalah sebuah blockchain L1 berkinerja tinggi yang dioptimalkan dari awal, dengan visi untuk membangun sistem keuangan terbuka yang benar-benar berantai. Pengguna dapat membuat aplikasi sendiri dengan berinteraksi dengan komponen asli yang efisien, sambil memastikan kelancaran pengalaman pengguna akhir.

Kinerja Hyperliquid L1 cukup untuk mendukung ekosistem aplikasi keuangan tanpa izin. Semua pesanan, penarikan, transaksi, dan liquidasi dilakukan di rantai dengan cara yang sepenuhnya transparan, dengan keterlambatan blok kurang dari 1 detik. Saat ini rantai mendukung kapasitas pemrosesan hingga 100.000 pesanan per detik.

Hyperliquid L1 menggunakan algoritma konsensus khusus yang disebut HyperBFT, yang terinspirasi dari Hotstuff dan algoritma berikutnya. Baik mekanisme konsensus maupun arsitektur jaringan dioptimalkan dari bawah untuk memenuhi kebutuhan blockchain berkinerja tinggi.

Dengan panduan ini, kami berharap dapat membantu Anda dengan cepat menguasai transaksi terprogram dan kuantitatif Hyperliquid DEX di platform FMZ dan mengeksplorasi lebih banyak peluang perdagangan.

Isi Praktek

Protokol REST - Praktik antarmuka komunikasi. - Praktek antarmuka transaksi (Pesenan, Pengunduran Diri) - Praktik pertanyaan terkait transaksi (akun, pesanan) - Fungsi lain (cash, contract transfer, cash deposit, asset transfer to wallet, dll.)

Protokol Websocket - Praktek berlangganan informasi pertukaran (tidak ada antarmuka Trades di antarmuka REST, ditambah dengan antarmuka Websocket)


Hipercairan

  • Pembagian varietas perdagangan Hyperliquid terbagi dari varietas perdagangan, yang terbagi menjadi spot, kontrak permanen, dan struktur berbasis FMZ, yang juga terbagi dalam platform FMZ sebagai objek bursa spot Hyperliquid, dan objek bursa berjangka Hyperliquid; masing-masing sesuai dengan varietas yang berbeda dalam Hyperliquid DEX.

Pada halaman menambahkan bursa di FMZ, Anda dapat mengkonfigurasi objek bursa spot dan futures Hyperliquid:

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

DEX交易所量化实践(2)– Hyperliquid 使用指南

  • Pengelompokan lingkungan Seperti kebanyakan bursa, Hyperliquid juga memiliki lingkungan pengujian.

    • Alamat aplikasi utama:

    https://app.hyperliquid.xyz

    "Saya tidak tahu apa yang akan terjadi, tapi saya pikir itu akan menjadi lebih baik jika saya tidak melakukan hal yang sama", katanya. Alamat node interface API REST protokol yang sesuai:https://api.hyperliquid.xyzSaya tidak tahu. Informasi yang terkait dengan tanda tangan juga berbeda:source == "a"chainId = 42161

    • Alamat aplikasi uji coba:

    https://app.hyperliquid-testnet.xyz

    Jaringan pengujian sering kali rusak, tetapi hanya digunakan sebagai antarmuka pengujian, untuk mengetahui fungsi transaksi di DEX. Alamat node interface API REST protokol yang sesuai:https://api.hyperliquid-testnet.xyzSaya tidak tahu. Informasi yang terkait dengan tanda tangan juga berbeda:source == "b"chainId = 421614

Koneksi dompet, login dan informasi konfigurasi

Seperti halnya dengan sebagian besar DEX, Anda dapat menggunakan wallet APP untuk meng-scan kode dua dimensi untuk terhubung ke Hyperliquid (wallet beralih ke Arbitrum untuk meng-scan login, test net, dan home net dengan cara yang sama).

  • Dompet terhubung ke Hyperliquid

DEX交易所量化实践(2)– Hyperliquid 使用指南

  • Test net faucet (menyerbu untuk menguji aset USDC)

Jika Anda ingin mengetahui lebih lanjut tentang jaringan pengujian, Anda dapat menemukan keran langsung di halaman Hyperliquid setelah dompet Anda terhubung ke Hyperliquid.

DEX交易所量化实践(2)– Hyperliquid 使用指南

Setelah mendapatkan aset uji coba dan USDC untuk uji coba, klik tombol "deposit" untuk menyimpan ke Hyperliquid (Arbitrum Testing Net, sebaiknya sedikit ETH).

  • Jaringan utama masuk ke aset USDC

Klik tombol "Deposit" untuk melakukan deposit, Anda memerlukan verifikasi dompet dan akan menghabiskan sedikit ETH di Arbitrum.

  • Membuat konfigurasi dompet proxy

Ketika transaksi dilakukan secara manual di halaman Hyperliquid APP, halaman akan secara otomatis menghasilkan alamat dompet proxy dan kunci pribadi, yang tercatat di browser, untuk melakukan transaksi di halaman browser, bagaimana kita mendapatkan informasi konfigurasi ini jika kita ingin melakukan transaksi terprogram dan kuantitatif?

Anda dapat membuat alamat dompet proxy yang diperlukan dan kunci pribadi yang sesuai di halaman API Hyperliquid:

DEX交易所量化实践(2)– Hyperliquid 使用指南

DEX交易所量化实践(2)– Hyperliquid 使用指南

  • 1, Sebutkan nama dompet agen yang akan dibuat.

  • 2. Menghasilkan alamat dan kunci pribadi.

  • 3. Menggunakan dompet yang terhubung ke Hyperliquid untuk mengizinkan dompet proxy.

  • Mengkonfigurasi alamat dompet agen, kunci pribadi di FMZ

Setelah itu, informasi tersebut dapat dikonfigurasi di platform FMZ (lihat antarmuka konfigurasi di atas).

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

  • Wallet Address: Alamat dompet yang terhubung ke Hyperliquid (perhatikan, bukan alamat dompet proxy).
  • Wallet PrivateKey: Kunci pribadi dompet yang terhubung ke Hyperliquid ((tidak diperlukan, hanya diperlukan ketika perlu memanggil API seperti transfer, dapat dibiarkan kosong) ).
  • Secret Key: Proxy wallet private key (dalam langkah sebelumnya, menghasilkan wallet proxy, yang ditampilkan setelah otorisasi).

Praktik Hyperliquid di FMZ

Informasi yang dibutuhkan untuk mengkonfigurasi objek bursa:

  • Alamat dompet digunakan untuk menanyakan informasi seperti transaksi pengguna
  • Wallet PrivateKey digunakan untuk transfer, pembagian, dan operasi lainnya
  • Secret Key digunakan untuk operasi yang berhubungan dengan transaksi

Setelah konfigurasi selesai, kami dapat menguji penggunaannya di platform FMZ, dan kami langsung menggunakan "Debugging Tool" dari platform FMZ untuk melakukan praktik pengujian.

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

Jika Anda menggunakan objek Hyperliquid Exchange dengan konfigurasi informasi testnet, beberapa operasi switching perlu dilakukan saat digunakan, seperti:

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

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

    return exchange.GetAccount()
}

Konfigurasi jaringan utama tidak memerlukan operasi switching di atas, dan antarmuka API yang terkait dengan varietas spot dan futures di Hyperliquid DEX hampir sama, hanya dengan sedikit perbedaan detail, selanjutnya kita akan menggunakanInformasi konfigurasi jaringan utamadanInformasi konfigurasi test netPerbedaanHyperliquid Futures"Saya tidak tahu apa yang akan terjadi", katanya.

Informasi Spesies

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 使用指南

Data Pemesanan Rendah

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 使用指南

Akuntansi

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

DEX交易所量化实践(2)– Hyperliquid 使用指南

Daftar, Invoice

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 使用指南

Pemesanan total ditarik

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 使用指南

Pertukaran leverage, pergantian posisi penuh/posisi

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

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

    return exchange.GetRawJSON()
}

DEX交易所量化实践(2)– Hyperliquid 使用指南

exchange.GetRawJSON (()) mengembalikan jawaban atas permintaan set lever:

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

Antarmuka lainnya

Karena parameter antarmuka pertukaran yang relatif rumit, tidak mungkin untuk menggunakan cara pengkodean url untuk mengirim data, maka penggunaanexchange.IOPada saat panggilan fungsi, hanya dapat menggunakan string JSON sebagai parameter input, berikut adalah contoh panggilan antarmuka masing-masing.

Hyperliquid Referensi: http://www.hyperliquid.com/https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order

Jadwal Batalkan

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

{status:err,response:Tidak dapat mengatur waktu pembatalan yang dijadwalkan sampai volume yang cukup diperdagangkan.{\fnCandara\fs60\b1\4cH000000\4aH80}Diperdagangkan:174.57424.”}

Fungsi ini terbatas: akun mencapai tingkat transaksi untuk menggunakan fitur ini.

Perintah dua

Buat pesanan 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))
}

twap Batalkan

TWAP telah membatalkan pesanan mereka.

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

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

menyetujuiAgen

Perangkat lunak ini juga dapat digunakan untuk mengaktifkan dan mengaktifkan perangkat lunak lain.

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

Permit berhasil kembali:

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

  • Membuat dompet proxy API, dengan 0xAAAA sebagai alamat dompet yang dihasilkan (hanya contoh), dan menyimpan kunci pribadi yang sesuai saat dibuat.
  • test02 adalah nama dompet proxy API, dan pasangan kunci rahasia yang dihasilkan akan muncul di halaman hyperliquid APP.https://app.hyperliquid-testnet.xyz/APIDi tengah-tengah.

VaultTransfer

"Saya tidak tahu apa yang akan terjadi", katanya.

function main() {
    var params = {
        "type": "vaultTransfer",
        "vaultAddress": "0xAAA",
        "isDeposit": true,
        "usd": 5000000
    }
    
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
  • 5 USDC = 5000000 = 5 USDC.
  • Di sini, Anda akan menemukan beberapa tips yang dapat Anda gunakan.
  • isDeposit: true, mengontrol akses.

menarik diri

"Saya tidak tahu apa yang akan terjadi di masa depan, tapi saya pikir itu akan menjadi masalah besar", katanya.

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))
}
  • Saat ini, Bitcoin telah menjadi salah satu mata uang paling populer di dunia.

usdClassTransfer

Pembagian aset antara spot/future (kontrak permanen)

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))
}
  • Parameter toPerp diatur sebagaifalseFitur yang digunakan untuk menandai arah perputaran: futures -> spot.
  • Parameter toPerp diatur sebagaitrueIni menunjukkan arah perputaran: spot -> futures.

Penggunaan antarmuka websocket

Situs web ini memiliki alamat antarmuka WS:

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

Karena antarmuka API REST tidak mendapatkan antarmuka data transaksi terbaru, antarmuka Websocket memiliki saluran yang dapat Anda berlangganan.

Struktur Pendaftaran

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

Contoh-contoh pengujian yang dilakukan dalam alat debugging:

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 使用指南

Penghentian

Tes di atas, berdasarkan pengelola terbaru, membutuhkan pengelola terbaru untuk mendukung bursa Hyperliquid DEX.

Terima kasih atas dukungannya dan terima kasih telah membaca.


Lebih banyak