Thanh toán & Đáo hạn
Trang này đề cập đến các quyền chọn trên Hypercall Exchange chính. Đây là quyền chọn kiểu châu Âu, được thanh toán bằng tiền mặt bằng USDC. Tại ngày đáo hạn, các vị thế được thanh toán tự động theo giá thanh toán của tài sản cơ sở, và giá trị thanh toán được ghi có hoặc ghi nợ vào tài khoản của bạn.
Thời điểm đáo hạn
| Tài sản cơ sở | Thời điểm đáo hạn |
|---|---|
| BTC, ETH | 08:00 UTC |
| Cổ phiếu và chỉ số (SPCX, SP500, BOT, MU, NVDA, META, MSFT, AAPL, SNDK, BABA) | 20:00 UTC |
20:00 UTC tương ứng 4:00 PM giờ New York khi Mỹ đang áp dụng giờ mùa hè. Thời điểm đáo hạn được cố định theo UTC, nên không thay đổi theo giờ mùa hè.
Tại thời điểm đáo hạn:
- Lệnh mới bị từ chối
- Lệnh đang mở bị hủy
- Các vị thế bước vào quy trình thanh toán
Engine kiểm tra các công cụ đã đáo hạn mỗi phút.
Vòng đời công cụ
Các công cụ đi qua ba trạng thái:
| Trạng thái | Mô tả | Giao dịch |
|---|---|---|
| Active | Giao dịch bình thường | Được bật |
| Expired Pending Price | Đang chờ giá thanh toán | Bị tắt |
| Settled | Đã thanh toán xong, các vị thế đã đóng | Không áp dụng |
Chuyển đổi trạng thái
- Active sang Expired Pending Price: đã đến thời điểm đáo hạn của hợp đồng
- Expired Pending Price sang Settled: đã có giá thanh toán và tất cả vị thế đã được thanh toán
Khi một công cụ chuyển sang Expired Pending Price, tất cả lệnh đang mở bị hủy và lệnh mới bị từ chối với thông báo "Instrument has expired".
Giá thanh toán
Giá thanh toán là giá trung bình 30 phút có khả năng chống nhiễu của giá oracle Hyperliquid cho tài sản cơ sở, được lấy trong 30 phút kết thúc tại thời điểm đáo hạn.
| Tham số | Giá trị |
|---|---|
| Nguồn giá | Giá oracle Hyperliquid (oraclePx) của perp tương ứng với tài sản cơ sở. BTC và ETH dùng các perp chính của Hyperliquid; cổ phiếu và chỉ số dùng các perp HIP-3 xyz, ví dụ xyz:NVDA. |
| Khung thời gian | 30 phút, kết thúc tại thời điểm đáo hạn |
| Lấy mẫu | Mọi cập nhật oracle riêng biệt trong khung thời gian, theo dấu thời gian Hyperliquid của cập nhật đó |
| Số mẫu tối thiểu | 500 |
| Phương pháp tính trung bình | Trung vị của các giá trị trung bình sau khi cắt tỉa |
Cách tính giá trung bình
- Thu thập. Hypercall ghi lại từng giá oracle mới được quan sát trong khoảng từ thời điểm đáo hạn trừ 30 phút đến thời điểm đáo hạn. Các lần đọc lặp lại của cùng một cập nhật chỉ được tính một lần, và không dùng bất kỳ dữ liệu nào được công bố sau thời điểm đáo hạn.
- Cắt tỉa. Sắp xếp các mẫu theo giá và loại bỏ 5% cao nhất và 5% thấp nhất.
- Chia nhóm. Chia các giá còn lại thành khoảng √n nhóm và tính trung bình từng nhóm.
- Lấy trung vị của các giá trị trung bình nhóm đó. Đó là giá thanh toán.
Việc cắt tỉa và trung vị của các giá trị trung bình khiến giá khó bị tác động bởi một vài giao dịch bất thường gần thời điểm đáo hạn, trong khi vẫn phản ánh toàn bộ khung thời gian.
Nếu không đủ mẫu
Khung thời gian có ít hơn 500 mẫu sẽ không bao giờ được sử dụng. Nếu dữ liệu ghi nhận của chính Hypercall bị thiếu (ví dụ, sau khi khởi động lại trong khung thời gian), hệ thống sẽ dựng lại khung thời gian từ lịch sử lưu trữ của cùng giá oracle Hyperliquid đó và áp dụng cùng ngưỡng tối thiểu 500 mẫu cũng như cùng phương pháp tính trung bình. Nếu cả hai nguồn đều không đủ mẫu, công cụ vẫn ở trạng thái Expired Pending Price và việc thanh toán sẽ chờ. Hypercall không thanh toán dựa trên khung thời gian không đầy đủ hoặc giá dự phòng.
Điều này tách biệt với cách định giá vị thế khi oracle gặp sự cố. Kiểm tra ký quỹ và thanh lý tiếp tục định giá vị thế theo giá giao ngay được ghi nhận gần nhất, và các lệnh làm tăng rủi ro bị từ chối khi giá đó cũ hơn 30 giây. Xem Các chế độ lỗi. Giá được ghi nhận gần nhất không bao giờ được dùng làm giá thanh toán.
Tính giá trị thanh toán
Thanh toán là giá trị nội tại của quyền chọn tại giá thanh toán:
Quyền chọn mua (call):
Quyền chọn bán (put):
Trong đó:
- = Giá thanh toán
- = Giá thực hiện
- = Quy mô vị thế (có dấu: dương với vị thế mua, âm với vị thế bán)
Quyền chọn ngoài tiền (OTM) được thanh toán bằng 0 và bị loại bỏ. Phí quyền chọn được trả bằng tiền mặt khi bạn giao dịch, nên việc thanh toán chỉ chuyển giá trị nội tại. Điều này áp dụng cho cả tài khoản ký quỹ tiêu chuẩn và ký quỹ danh mục.
Ví dụ
Long Call (ITM):
- Vị thế: Long 2 BTC-100000-C
- Giá thanh toán: $105,000
- Giá trị nội tại: max(0, 105000 - 100000) = $5,000
- Giá trị thanh toán: 10,000** (được ghi có)
Short Call (ITM):
- Vị thế: Short 2 BTC-100000-C
- Giá thanh toán: $105,000
- Giá trị thanh toán: 10,000** (bị ghi nợ)
Long Put (OTM):
- Vị thế: Long 1 BTC-100000-P
- Giá thanh toán: $105,000
- Giá trị nội tại: max(0, 100000 - 105000) = $0
- Giá trị thanh toán: $0 (đáo hạn không có giá trị)
Quy trình thanh toán
Khi thanh toán diễn ra:
- Lấy giá: giá thanh toán 30 phút đã được chốt
- Tính giá trị: tính giá trị nội tại cho từng vị thế
- Chuyển tiền: tất cả quyền chọn trên cùng một tài sản cơ sở có cùng ngày đáo hạn được thanh toán thành một lô, bù trừ theo từng tài khoản
- Xóa vị thế: vị thế được đóng và xóa khỏi danh mục
- Phát sự kiện: một thông điệp
PositionExpiredđược gửi trên kênh WebSocketportfolio
Việc thanh toán được xử lý với đảm bảo idempotency. Việc phát lại hoặc khởi động lại không thể gây ra thanh toán hai lần.
Ai thanh toán, theo chế độ ký quỹ
- Ký quỹ tiêu chuẩn: tài khoản có nghĩa vụ thanh toán sẽ trả đầy đủ từ số tiền mặt trên Hypercall của mình.
- Ký quỹ danh mục: tài khoản có nghĩa vụ thanh toán sẽ trả trước từ số tiền mặt trên Hypercall, sau đó từ khoản vay từ pool cho vay PM. Phần mà pool không thể tài trợ sẽ trở thành nghĩa vụ đang chờ, phải hoàn tất trong thời gian khắc phục. Xem Tài trợ PM.
Nếu một bên trả tiền dùng ký quỹ danh mục trong lô không thể trả đầy đủ, các tài khoản được nhận tiền trong lô đó sẽ chia số tiền mặt đã thu được theo tỷ lệ, và phần còn lại được ghi nhận là khoản yêu cầu đang chờ, sẽ được trả kèm lãi khi bên trả tiền hoàn trả. Công cụ vẫn được thanh toán trong mọi trường hợp; nó không bao giờ bị dừng vì một nghĩa vụ chưa được thanh toán.
Sự kiện WebSocket
PositionExpired
Được gửi trên kênh portfolio khi một vị thế được thanh toán:
{
"type": "PositionExpired",
"wallet_address": "0x...",
"symbol": "BTC-20250131-100000-C",
"position_size": "2",
"settlement_price": "5000",
"settlement_value": "10000",
"settlement_entry_price": "3200",
"cost_basis": "6400",
"net_pnl": "3600",
"timestamp": 1738310400000
}
| Trường | Mô tả |
|---|---|
position_size | Quy mô vị thế có dấu (dương = long, âm = short) |
settlement_price | Giá trị nội tại trên mỗi hợp đồng |
settlement_value | Tổng số tiền thanh toán |
settlement_entry_price | Giá vào lệnh trên mỗi hợp đồng của bạn |
cost_basis | Giá vốn của vị thế tại thời điểm thanh toán |
net_pnl | P&L thanh toán sau khi trừ giá vốn, chưa tính phí |
Thị trường đáo hạn
Được gửi trên kênh market_updates khi một công cụ đáo hạn:
{
"type": "MarketUpdate",
"action": "Expired",
"symbol": "BTC-20250131-100000-C",
"strike": "100000",
"is_call": true,
"underlying": "BTC",
"expiry": 1738310400,
"timestamp": 1738310400000
}
API Endpoint
Liệt kê công cụ theo trạng thái
GET /instruments?currency=BTC&status=EXPIRED_PENDING_PRICE
status mặc định là ACTIVE. Truyền EXPIRED_PENDING_PRICE, SETTLED, một danh sách phân tách bằng dấu phẩy, hoặc all.
Lấy các khoản chi trả thanh toán
GET /settlement-payouts?wallet=0x...
Trả về các bản ghi thanh toán cho tài khoản của bạn. Các tham số tùy chọn: symbol, ledger_applied, limit (mặc định 50, tối đa 100) và offset.
Phản hồi:
{
"success": true,
"data": [
{
"id": 1,
"wallet": "0x...",
"symbol": "BTC-20250131-100000-C",
"expiry_ts": 1738310400,
"position_size": "2",
"settlement_price": "5000",
"settlement_value": "10000",
"settlement_entry_price": "3200",
"cost_basis": "6400",
"net_pnl": "3600",
"ledger_applied": true,
"is_seen": false,
"created_at": 1738310460000
}
],
"pagination": { "limit": 50, "offset": 0, "count": 1 },
"error": null
}
Xử lý lỗi
Không có giá thanh toán
Nếu giá thanh toán không thể được chốt tại thời điểm đáo hạn:
- Công cụ vẫn ở trạng thái
Expired Pending Price - Giao dịch đã bị chặn
- Engine thử lại ở mỗi lần kiểm tra đáo hạn, mỗi phút một lần
- Tiền chỉ được chuyển sau khi có giá thanh toán đáp ứng quy tắc 500 mẫu
Khởi động lại hệ thống
Trạng thái thanh toán được lưu bền vững. Nếu hệ thống khởi động lại:
- Các công cụ đã đáo hạn được tiếp nhận khi khởi động
- Việc thanh toán tiếp tục tự động
- Đảm bảo idempotency ngăn chặn thanh toán hai lần
Tham số
| Tham số | Giá trị | Mô tả |
|---|---|---|
| Chu kỳ kiểm tra đáo hạn | 60 giây | Tần suất engine kiểm tra đáo hạn và thử lại các khoản thanh toán đang chờ |
| Khung thời gian thanh toán | 30 phút | Kết thúc tại thời điểm đáo hạn |
| Số mẫu tối thiểu | 500 | Nếu ít hơn, khung thời gian không được sử dụng |
| Cắt tỉa | 5% mỗi đầu | Loại bỏ trước khi tính trung bình |
Thực hành tốt nhất
- Theo dõi ngày đáo hạn: theo dõi ngày đáo hạn của các vị thế qua endpoint portfolio
- Lên kế hoạch trước: đóng vị thế trước ngày đáo hạn nếu bạn muốn tránh thanh toán
- Chú ý 30 phút cuối: giá thanh toán được xác định bởi oracle trong khung thời gian đó, không phải bởi giá tại đúng thời điểm đáo hạn
- Đăng ký WebSocket: nhận sự kiện
PositionExpiredtheo thời gian thực để được thông báo ngay lập tức - Duy trì vùng đệm ký quỹ: giữ đủ tiền mặt hoặc ký quỹ cho các khoản thanh toán short ITM có thể phát sinh
Xem thêm:
- Thanh lý: Điều gì xảy ra nếu ký quỹ không đủ
- Ký quỹ danh mục: Các vị thế ảnh hưởng đến ký quỹ như thế nào
- Tài trợ PM: Cách tài khoản ký quỹ danh mục thanh toán
- Ký quỹ tiêu chuẩn: Cách tính ký quỹ theo từng vị thế