[TOC]

Gần đây, nền tảng FMZ đã bổ sung hỗ trợ cho Hyperliquid DEX, một sàn giao dịch phi tập trung hiệu suất cao, cung cấp cho người dùng nhiều lựa chọn hơn để tham gia vào các giao dịch phi tập trung. Hiện tại, chức năng lưu ký của nền tảng FMZ đã được cập nhật đầy đủ để hỗ trợ các giao dịch hợp đồng giao ngay 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.
Tổng quan về nền tảng Hyperliquid
Hyperliquid là 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ạo ứng dụng độc lập bằng cách tương tác với các thành phần gốc hiệu quả trong khi vẫn đảm bảo trải nghiệm mượt mà cho người dùng cuối.
Hiệu suất của Hyperliquid L1 đủ để hỗ trợ hệ sinh thái ứng dụng tài chính không cần xin phép. Tất cả các lệnh, lệnh rút, giao dịch và thanh lý đều được hoàn thành 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 này có khả năng xử lý tới 100.000 đơn hàng mỗi giây.
Hyperliquid L1 sử dụng thuật toán đồng thuận tùy chỉnh có tên là HyperBFT, lấy cảm hứng từ Hotstuff và các phiên bản kế nhiệm của nó. Cả cơ chế đồng thuận và kiến trúc mạng đều được tối ưu hóa từ dưới lên để đá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 có thể giúp bạn nhanh chóng bắt đầu giao dịch theo chương 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 khác.
Giao thức REST
Giao thức Websocket
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 giao ngay và tương lai của Hyperliquid:

Bộ phận môi trường Giống như hầu hết các sàn giao dịch khác, Hyperliquid cũng có môi trường thử nghiệm.
Theo kinh nghiệm sử dụng thực tế thì mạng chính tương đối ổn định và tốc độ cũng tốt.
Địa chỉ nút giao diện API giao thức REST tương ứng:https://api.hyperliquid.xyz。
Thông tin liên quan đến việc ký tin nhắn cũng khác nhau:source == "a",chainId = 42161
Mạng thử nghiệm thường bị sập, nhưng nó chỉ được sử dụng làm giao diện thử nghiệm và để bạn làm quen với các chức năng giao dịch trên DEX.
Địa chỉ nút giao diện API giao thức REST tương ứng:https://api.hyperliquid-testnet.xyz。
Thông tin liên quan đến việc ký tin nhắn cũng khác nhau:source == "b",chainId = 421614
Giống như phương pháp kết nối ví của hầu hết các sàn giao dịch DEX, bạn có thể sử dụng APP ví để quét mã QR để kết nối với Hyperliquid (chuyển ví sang Arbitrum và quét mã để đăng nhập, mạng thử nghiệm và mạng chính giống nhau) .

Nếu bạn muốn làm quen với mạng thử nghiệm trước, bạn có thể tìm vòi trực tiếp trên trang Hyperliquid sau khi kết nối ví của bạn với Hyperliquid.

Bạn có thể yêu cầu tài sản thử nghiệm. Sau khi nhận được USDC để thử nghiệm, hãy nhấp vào nút “Gửi tiền” để gửi vào Hyperliquid (tốt nhất là nên có một số ETH cho mạng thử nghiệm Arbitrum).
Nhấp vào nút “Gửi tiền” để gửi tiền, yêu cầu xác minh ví và sẽ tiêu tốn một ít ETH trên Arbitrum.
Khi thực hiện giao dịch thủ công trên trang Hyperliquid APP, trang sẽ tự động tạo địa chỉ ví proxy và khóa riêng, được ghi lại trong trình duyệt và được sử dụng cho các hoạt động như đặt lệnh trên trang trình duyệt. Nếu chúng ta muốn thực hiện lập trình và định lượng Giao dịch cần lấy thông tin cấu hình này bằng cách nào?
Bạn có thể tạo địa chỉ ví proxy cần thiết và khóa riêng tương ứng trên trang API Hyperliquid:


1. Đặt tên cho ví proxy cần tạo.
2. Tạo địa chỉ và khóa riêng.
Cấu hình địa chỉ ví proxy và khóa riêng trên FMZ
Sau đó, bạn có thể cấu hình thông tin này trên nền tảng FMZ (giao diện cấu hình được đề cập ở trên).
Thông tin cần thiết để cấu hình đối tượng trao đổi:
Sau khi cấu hình hoàn tất, chúng ta có thể kiểm tra trên nền tảng FMZ. Chúng ta sử dụng trực tiếp “công cụ gỡ lỗi” của nền tảng FMZ để thực hành kiểm tra.
Nếu bạn đang sử dụng đối tượng trao đổi Hyperliquid được cấu hình với 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 đối tượng này, ví dụ:
function main() {
// REST协议API地址切换到测试网
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a 主网 , b 测试网
exchange.IO("source", "b")
return exchange.GetAccount()
}
Cấu hình mainnet không yêu cầu thao tác chuyển đổi ở trên. Giao diện API liên quan đến sản phẩm giao ngay và tương lai trong sàn giao dịch Hyperliquid DEX gần như giống nhau, chỉ có một số khác biệt nhỏ về chi tiết. Tiếp theo, chúng tôi sử dụngThông tin cấu hình MainnetVàThông tin cấu hình Testnetcủa Hợp đồng tương lai siêu thanh khoảnTrao đổi các vật để kiểm tra.
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) + "`")
}

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

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

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

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

function main() {
// 设置当前为全仓
exchange.IO("cross", true)
// 设置杠杆
exchange.SetMarginLevel("ETH_USD.swap", 10)
return exchange.GetRawJSON()
}

exchange.GetRawJSON() trả về thông tin phản hồi của yêu cầu thiết lập đòn bẩy:
{“status”:“ok”,“response”:{“type”:“default”}}
Vì các tham số giao diện của sàn giao dịch rất phức tạp nên không thể sử dụng phương pháp mã hóa URL để truyền các tham số.exchange.IOKhi gọi một hàm, chỉ có thể truyền chuỗi JSON làm tham số. Sau đây là các ví dụ về cách gọi từng giao diện.
Tài liệu tham khảo Hyperliquid: 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”:“Cannot set scheduled cancel time until enough volume traded. Required: \(1000000. Traded: \)174.57424.”}
Chức năng này có một số hạn chế: tài khoản phải đạt đến cấp độ giao dịch để sử dụng chức năng này.
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))
}
Hủy đơn hàng TWAP.
function main() {
var params = {
"type": "twapCancel",
"a": 0,
"t": 3805
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Testnet, cho phép ví proxy 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))
}
Xác thực thành công trả về:
{“status”:“ok”,“response”:{“type”:“default”}}
https://app.hyperliquid-testnet.xyz/APIở giữa.Rút tài sản ra khỏi két.
function main() {
var params = {
"type": "vaultTransfer",
"vaultAddress": "0xAAA",
"isDeposit": true,
"usd": 5000000
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Testnet, rút tài sản về ví.
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))
}
Chuyển giao tài sản giữa giao dịch giao ngay/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))
}
falseBiểu thị hướng quay vòng: tương lai -> giao ngay.trueChỉ ra hướng chuyển nhượng: giao ngay -> tương lai.Địa chỉ giao diện WS mạng chính:
Mainnet: wss://api.hyperliquid.xyz/ws
Vì giao diện API của giao thức REST không có giao diện để lấy dữ liệu giao dịch gần đây nên giao diện Websocket có kênh này có thể đăng ký được.
Cấu trúc tin nhắn đăng ký
{
"method": "subscribe",
"subscription": {
"type": "trades",
"coin": "SOL"
}
}
Ví dụ về thử nghiệm được thực hiện trong trình gỡ lỗi:
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("测试结束")
}

Các bài kiểm tra trên dựa trên người giám hộ mới nhất. Bạn cần tải xuống người giám hộ mới nhất để hỗ trợ sàn giao dịch Hyperliquid DEX.
Cảm ơn các bạn đã ủng hộ và đọc bài viết.