Tài nguyên đang được tải lên... tải...

DEX giao dịch định lượng thực hành ((2) -- Hyperliquid sử dụng hướng dẫn

Tác giả:Những nhà phát minh định lượng - những giấc mơ nhỏ, Tạo: 2025-01-15 13:43:15, Cập nhật: 2025-01-15 17:08:49

[TOC]

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

Lời mở đầu

Gần đây, nền tảng FMZ đã bổ sung hỗ trợ cho Hyperliquid DEX, một sàn giao dịch phân quyền hiệu suất cao, cung cấp nhiều lựa chọn hơn cho người dùng tham gia giao dịch phân quyền. Hiện nay, chức năng quản lý của nền tảng FMZ đã được cập nhật đầy đủ, hỗ trợ giao dịch giao dịch tại chỗ và hợp đồng vĩnh viễn của Hyperliquid và bao gồm tất cả các chức năng API của DEX.

Hyperliquid nền tảng

Hyperliquid là một blockchain L1 hiệu suất cao được tối ưu hóa từ đầu, với tầm nhìn xây dựng một hệ thống tài chính mở hoàn toàn trên chuỗi. Người dùng có thể tự tạo ứng dụng bằng cách tương tác với các thành phần gốc hiệu quả, đồng thời đảm bảo sự trôi chảy của trải nghiệm người dùng cuối cùng.

Hyperliquid L1 đủ mạnh để hỗ trợ một hệ sinh thái ứng dụng tài chính không giấy phép. Tất cả các đơn đặt hàng, rút tiền, giao dịch và thanh toán được thực hiện trên chuỗi một cách hoàn toàn minh bạch, với độ trễ khối dưới 1 giây. Hiện tại, chuỗi hỗ trợ xử lý lên đến 100.000 đơn đặt hàng mỗi giây.

Hyperliquid L1 sử dụng một thuật toán đồng thuận tùy chỉnh được gọi là HyperBFT, lấy cảm hứng từ Hotstuff và các thuật toán sau đó. Cả cơ chế đồng thuận và kiến trúc mạng đều được tối ưu hóa từ dưới xuống để đáp ứng nhu cầu của blockchain hiệu suất cao.

Thông qua hướng dẫn này, chúng tôi hy vọng sẽ giúp bạn nhanh chóng nắm bắt các giao dịch lập trình và định lượng của Hyperliquid DEX trên nền tảng FMZ và khám phá thêm nhiều cơ hội giao dịch.

Nội dung thực hành

REST protocol - Thực hành giao diện giao tiếp. - Thực hành giao dịch giao diện (đặt hàng, rút hàng) - Thực hành truy vấn liên quan đến giao dịch (tài khoản, đơn đặt hàng) - Các chức năng khác ((tiền mặt, chuyển nhượng hợp đồng, tiếp cận kho bạc, chuyển nhượng tài sản sang ví, v.v.)).

Giao thức Websocket - Thực hành đăng ký thông tin trao đổi (không có giao diện Trades trong giao diện REST, được bổ sung bằng giao diện Websocket)


Hyperliquid

  • Phân loại giao dịch Hyperliquid được phân chia theo các loại giao dịch, phân chia thành hiện tại, hợp đồng bất biến, cơ cấu dựa trên nền tảng FMZ, và trên nền tảng FMZ cũng được phân chia thành các đối tượng giao dịch hiện tại Hyperliquid, đối tượng giao dịch tương lai Hyperliquid; tương ứng với các loại khác nhau trong Hyperliquid DEX.

Trên trang thêm sàn giao dịch của nền tảng FMZ, bạn có thể cấu hình các đối tượng giao dịch hiện tại và tương lai của Hyperliquid:

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

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

  • Phân loại môi trường Giống như hầu hết các sàn giao dịch, Hyperliquid cũng có môi trường thử nghiệm.

    • Địa chỉ APP chính:

    https://app.hyperliquid.xyz

    Một số người sử dụng mạng xã hội trên mạng xã hội của họ cho thấy rằng họ có thể sử dụng mạng xã hội của họ một cách hiệu quả hơn. Địa chỉ của các nút giao diện API REST tương ứng:https://api.hyperliquid.xyz❖ Thông tin liên quan đến chữ ký tin nhắn cũng khác nhau:source == "a"chainId = 42161

    • Địa chỉ ứng dụng thử nghiệm:

    https://app.hyperliquid-testnet.xyz

    Testnet thường bị ngắt, nhưng chỉ được sử dụng như một giao diện thử nghiệm, quen thuộc với các chức năng giao dịch trên DEX. Địa chỉ của các nút giao diện API REST tương ứng:https://api.hyperliquid-testnet.xyz❖ Thông tin liên quan đến chữ ký tin nhắn cũng khác nhau:source == "b"chainId = 421614

Kết nối ví, đăng nhập và thông tin cấu hình

Cũng giống như hầu hết các sàn DEX, bạn có thể kết nối ví với Hyperliquid bằng cách sử dụng ứng dụng quét mã 2D của ví (chuyển ví sang Arbitrum, quét đăng nhập, testnet, homenet).

  • Ví được kết nối với Hyperliquid

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

  • Mạng lưới kiểm tra vòi nước (đánh giá tài sản USDC)

Nếu bạn muốn học sinh quen thuộc với mạng thử nghiệm trước, bạn có thể tìm vòi ngay trên trang Hyperliquid sau khi ví được kết nối với Hyperliquid.

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

Bạn có thể nhận tài sản thử nghiệm, nhận USDC cho thử nghiệm, sau đó nhấp vào nút "tiền" để gửi vào Hyperliquid (Arbitrum Testing Net tốt nhất là một chút ETH).

  • Mạng lưới chính đổ vào tài sản USDC

Nhấp vào nút "đặt tiền" để gửi tiền, cần xác minh ví và sẽ tiêu thụ một chút ETH trên Arbitrum.

  • Tạo cấu hình ví đại diện

Khi giao dịch được thực hiện theo cách thủ công trên trang Hyperliquid APP, trang này sẽ tự động tạo ra một địa chỉ ví đại diện và khóa cá nhân, được ghi lại trong trình duyệt, sử dụng cho các hoạt động như đặt hàng trên trang trình duyệt, vậy làm thế nào để chúng ta có được thông tin cấu hình này nếu chúng ta muốn lập trình, định lượng giao dịch?

Bạn có thể tạo địa chỉ ví trạm và khóa riêng tương ứng cần thiết trên trang API của Hyperliquid:

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

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

  • Trong khi đó, một số người khác cũng cho biết họ đang tìm kiếm một cái tên cho ví đại diện sắp được tạo.

  • 2, tạo địa chỉ và khóa riêng.

  • 3. Sử dụng ví kết nối với Hyperliquid để ủy quyền ví đại diện.

  • Phương tiện này được sử dụng để cài đặt các địa chỉ ví và khóa riêng trên FMZ.

Sau đó, thông tin này có thể được cấu hình trên nền tảng FMZ (xem giao diện cấu hình ở trên).

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

  • Wallet Address: Địa chỉ ví được kết nối với Hyperliquid (lưu ý, không phải là địa chỉ ví đại diện).
  • Wallet PrivateKey: Khóa riêng của ví được kết nối với Hyperliquid ((không cần thiết, chỉ cần khi cần gọi API như chuyển tiền, có thể bỏ trống) ).
  • Secret Key: Chìa khóa cá nhân ví trật tự (tạo ví trật tự trong bước trước và hiển thị khóa cá nhân sau khi ủy quyền).

Thực hành Hyperliquid trên FMZ

Thông tin cần thiết để cấu hình đối tượng giao dịch:

  • Wallet Address dùng để truy vấn thông tin như giao dịch của người dùng
  • Wallet PrivateKey được sử dụng để chuyển tiền, chuyển nhượng và các hoạt động khác
  • Chìa khóa bí mật được sử dụng cho các hoạt động liên quan đến giao dịch

Sau khi cấu hình hoàn tất, chúng tôi có thể thử nghiệm trên nền tảng FMZ, và chúng tôi thực hành thử nghiệm trực tiếp bằng "công cụ điều chỉnh" trên nền tảng FMZ.

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

Nếu bạn đang sử dụng một đối tượng Hyperliquid Exchange với cấu hình thông tin mạng thử nghiệm, bạn sẽ cần thực hiện một số thao tác chuyển đổi khi sử dụng, ví dụ:

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

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

    return exchange.GetAccount()
}

Các giao diện API liên quan đến các loại giao dịch hiện tại và tương lai tại Hyperliquid DEX hầu như giống nhau, chỉ có một chút khác biệt chi tiết.Thông tin cấu hình mạng chủThông tin cấu hình mạng thử nghiệmcủaHyperliquid tương laiCác đối tượng trên sàn giao dịch được thử nghiệm.

Thông tin về giống

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

Dữ liệu thâm hụt đơn hàng

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

Tài sản tài khoản

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

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

Đơn xin, đơn xin

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

Lệnh hoàn toàn bị thu hồi

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

Chuyển đòn bẩy, chuyển toàn bộ/một lần

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

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

    return exchange.GetRawJSON()
}

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

exchange.GetRawJSON () trả về câu trả lời cho yêu cầu đặt đòn bẩy:

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

Các giao diện khác

Do các tham số giao diện của sàn giao dịch phức tạp hơn và không thể truyền thông bằng cách mã hóa url, nên việc sử dụngexchange.IOKhi gọi hàm, chỉ có thể sử dụng chuỗi JSON để truyền tham số. Dưới đây là các ví dụ về các cuộc gọi giao diện.

Hyperliquid tài liệu tham khảo:https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order

Chương trình hủy bỏ.

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

{status:err,response: Không thể thiết lập thời gian hủy lịch trình cho đến khi đủ khối lượng giao dịch.Đổi đổi:174.57424.”}

Tính năng này có giới hạn: tài khoản đạt mức giao dịch để sử dụng tính năng này.

Đặt hàng

Tạo lệnh 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))
}

twapHủy bỏ

Theo đó, một số người bị cáo buộc là có liên quan đến vụ tấn công.

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

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

chấp thuận

Một số người cho biết họ đã sử dụng mạng lưới này để thử nghiệm và ủy quyền cho một chiếc ví đại diện mới.

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

Quyền truy cập đã thành công:

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

  • Tạo một ví đại diện API, 0xAAAA là địa chỉ ví được tạo (chỉ là một ví dụ) và lưu khóa riêng tương ứng khi tạo.
  • test02 là tên ví đại diện API, cặp khóa bí mật được tạo ra sẽ hiển thị trên trang APP hyperliquidhttps://app.hyperliquid-testnet.xyz/APITrong đó có:

vaultTransfer

Những người tham gia vào cuộc biểu tình này nói rằng:

function main() {
    var params = {
        "type": "vaultTransfer",
        "vaultAddress": "0xAAA",
        "isDeposit": true,
        "usd": 5000000
    }
    
    return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
  • usd: 5000000 nghĩa là 5 USDC.
  • 0xAAA: Địa chỉ kho bạc.
  • isDeposit: true, kiểm soát quyền truy cập.

rút lại

Những người tham gia cuộc thi này đã có thể tham gia vào các cuộc thi khác nhau.

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))
}
  • Tiền xu cho địa chỉ ví hiện tại của mình: 0xAAA.

usdClassTransfer

Việc phân chia tài sản giữa hiện tại / tương lai (hợp đồng vĩnh viễn)

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))
}
  • Các tham số toPerp được đặt làfalseChỉ định hướng di chuyển: Futures -> spot.
  • Các tham số toPerp được đặt làtrueĐịnh hướng chuyển hướng: spot -> futures.

Websocket sử dụng giao diện

Địa chỉ giao diện WS của mạng chủ chốt:

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

Vì REST protocol API không truy cập vào giao dịch gần đây, Websocket có thể đăng ký kênh này.

Định cấu trúc tin nhắn

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

Các ví dụ thử nghiệm được thực hiện trong công cụ điều chỉnh:

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

Kết thúc

Các thử nghiệm trên, dựa trên các nhà quản lý mới nhất, cần tải xuống các nhà quản lý mới nhất để hỗ trợ sàn giao dịch Hyperliquid DEX.

Xin cảm ơn vì đã ủng hộ, cảm ơn vì đã đọc.


Thêm nữa