Pengenalan Order RPI
Order Retail Price Improvement (RPI) adalah jenis order khusus yang dirancang secara eksklusif untuk market maker yang telah disetujui. Order ini hanya cocok dengan order non-algoritmik yang ditempatkan melalui antarmuka Aplikasi atau Web sehingga memberikan likuiditas pasar yang lebih terarah bagi trader retail dan harga eksekusi yang lebih baik. Sementara itu, order ini melindungi order penyedia likuiditas milik market maker agar tidak dipertemukan dengan order algoritmik sehingga menjaga keadilan dan integritas pasar secara keseluruhan.
I. Apa Itu Order RPI?
Order RPI adalah limit order khusus yang hanya dapat dikirim melalui OpenAPI oleh market maker yang sudah masuk dalam whitelist. Order ini memiliki empat karakteristik utama:
•Pencocokan Terarah: Hanya cocok dengan order non-algoritmik yang dikirim melalui antarmuka Aplikasi dan antarmuka Web. Order ini tidak akan cocok dengan order API (termasuk order RPI lainnya) atau order bot grid.
• Prioritas terendah: Pada tingkat harga yang sama, order RPI hanya akan dicocokkan setelah seluruh order non-RPI pada tingkat harga tersebut dieksekusi.
•Maker Only: Ini adalah limit order pasif yang selalu menyediakan likuiditas ke order book dan tidak pernah mengambil likuiditas.
•Perbedaan Visibilitas: Ditampilkan secara normal di antarmuka Aplikasi dan antarmuka Web; tidak terlihat di order book API publik.
II. Siapa yang Dapat Mengirim Order RPI?
Order RPI hanya dapat dikirim melalui OpenAPI oleh market maker yang telah disetujui dan masuk dalam whitelist, serta dibatasi dengan ketat untuk pasangan perdagangan yang sudah masuk dalam whitelist.
• Jika order dikirim oleh market maker yang tidak masuk dalam whitelist, akan muncul pesan: "Order RPI hanya tersedia bagi market maker yang telah disetujui".
• Jika order dikirim untuk pasangan perdagangan yang tidak masuk dalam whitelist, akan muncul pesan: "Order RPI hanya didukung untuk pasangan perdagangan tertentu".
III. Bagaimana Cara Mengirim Order RPI?
Order RPI hanya dapat dikirim melalui OpenAPI dengan dukungan metode REST dan WebSocket. Saat menempatkan order, jenis order (type) harus diatur sebagai limit order (buy-limit atau sell-limit) dan field time-in-force harus diatur ke rpi. Seluruh parameter lainnya tetap sama dengan limit order standar.
Metode REST
Endpoint penempatan order spot, batch, dan margin semuanya mendukung order RPI (type harus diatur ke buy-limit atau sell-limit). Anda hanya perlu menambahkan field time-in-force (bernilai rpi) ke parameter permintaan yang sudah ada.
• Penempatan Order Spot: POST /v1/order/orders/place
• Penempatan Order Batch: POST /v1/order/batch-orders
• Penempatan Order Margin: POST /v1/order/auto/place
Contoh permintaan (Order Beli RPI Spot):
{
"account-id": "12345",
"symbol": "btcusdt",
"type": "buy-limit",
"amount": "0.01",
"price": "50000",
"time-in-force": "rpi"
}
Metode WebSocket
Channel trading WebSocket juga mendukung penempatan order RPI menggunakan parameter yang sama seperti REST API:
• Penempatan Order Spot: Channel create-order
• Penempatan Order Batch: Channel create-batchorder
• Penempatan Order Margin: Channel create-margin-order
Kode Error Umum
| Kode Error |
Deskripsi |
|
|
Akun saat ini tidak masuk dalam whitelist RPI dan tidak diizinkan untuk mengirim order RPI. |
|
|
Pasangan perdagangan ini tidak masuk dalam whitelist RPI dan tidak mendukung pengiriman order RPI. |
|
|
Jenis order harus buy-limit atau sell-limit. |
|
|
Fitur RPI saat ini dinonaktifkan. Silakan hubungi tim operasional untuk mengonfirmasi jadwal peluncuran. |
Pasangan Perdagangan Apa Saja yang Mendukung Order RPI?
Panggil endpoint Dapatkan Semua Pasangan Perdagangan GET /v2/settings/common/symbol. Setiap pasangan perdagangan dalam respons menyertakan field enable_rpi (boolean). Nilai true menunjukkan bahwa dukungan RPI diaktifkan untuk pasangan perdagangan tersebut, sedangkan nilai false menunjukkan bahwa RPI tidak didukung.
Contoh respons (hanya field utama):
{
"status": "ok",
"data": [
{ "sc": "btcusdt", "dn": "BTC/USDT", "enable_rpi": true },
{ "sc": "ethusdt", "dn": "ETH/USDT", "enable_rpi": false }
]
}
Jika permintaan order RPI dikirim untuk pasangan perdagangan yang tidak mendukung RPI, sistem akan mengembalikan kode error order-rpi-symbol-not-allowed.
IV. Cakupan Pencocokan
Order yang Dapat Dicocokkan dengan Order RPI
• Sumber: Antarmuka Aplikasi/Web
• Jenis: Market order, limit order, advanced limit-FOK, advanced limit-IOC, take-profit order/stop-loss order, market/limit order yang dipicu oleh conditional order
• Khusus: Copy trading/follow trading order dan iceberg order diperlakukan sebagai order biasa dan dapat dicocokkan secara normal
Order yang Tidak Memenuhi Syarat untuk Pencocokan RPI
• Semua order API (termasuk order RPI lainnya dan conditional order yang dipicu melalui channel API)
• Order bot grid
V. Aturan Trading
| Butir Aturan |
Deskripsi |
| Produk yang Didukung |
Spot (termasuk Margin) |
| Mekanisme Order |
Sama persis dengan limit order standar (persyaratan margin, ukuran order minimum/maksimum, dan batas harga yang sama) |
| Operasi yang Didukung |
Penempatan order batch, perubahan order (harga/jumlah), pembatalan order, pembatalan order batch, dan eksekusi sebagian order |
| Ketidakkompatibilan |
Tidak dapat digabung dengan conditional order (TP/SL, trigger order, dll.) |
| Batas Harga |
Saat order ditempatkan, harga order tidak boleh melampaui harga order non-RPI di sisi berlawanan; jika melampaui, order akan dibatalkan |
Contoh Batas Harga
•Mengirim order beli RPI pada harga 99 → Diterima.
•Mengirim order beli RPI pada harga 102 → Ditolak karena harganya melampaui harga order non-RPI pada Ask 2 (harga 102).
| Level |
Harga |
Jumlah |
| Ask 2 |
102 |
25 |
| Ask 1 |
100 (RPI) |
15 |
| Bid 1 |
99 (RPI) |
10 |
| Bid 2 |
98 |
20 |
VI. Visibilitas Order
| Modul |
Skenario |
Deskripsi |
| Order Book |
Aplikasi/Web |
Order RPI ditampilkan secara normal tanpa tag khusus; otomatis disembunyikan saat harganya melampaui. Order yang disembunyikan tetap aktif di mesin pencocokan dan dapat dieksekusi ketika memenuhi syarat. |
| OpenAPI |
Tidak terlihat. |
|
| Riwayat Order Pribadi |
Aplikasi/Web |
Market maker dapat melihat order RPI beserta tag "RPI" pada catatan order terkini dan historis; order milik pengguna biasa tidak menampilkan tag khusus. |
| OpenAPI |
Order RPI ditampilkan secara normal dan dapat dibedakan dari order biasa. |
Contoh Penyembunyian Harga Bersilangan
Contoh 1: Dua order RPI dengan harga yang bersilangan (harga beli ≥ harga jual) → kedua sisi disembunyikan.
| / |
Harga |
Jumlah |
Terlihat |
| Ask 4 |
1.005 |
20 |
Ya |
| Ask 3 |
1.003 (RPI) |
15 |
Ya |
| Ask 2 |
1.001 (RPI) |
10 |
Tidak |
| Ask 1 |
999 (RPI) |
5 |
Tidak |
| Bid 1 |
1.002 (RPI) |
10 |
Tidak |
| Bid 2 |
1.000 (RPI) |
20 |
Tidak |
| Bid 3 |
998 |
25 |
Ya |
| Bid 4 |
997 (RPI) |
30 |
Ya |
Contoh 2: Order RPI bersilangan dengan order API atau order strategi grid → order RPI disembunyikan; order counterparty ditampilkan seperti biasa
| / |
Harga |
Jumlah |
Terlihat |
| Ask 4 |
1.005 |
20 |
Ya |
| Ask 3 |
1.003 (RPI) |
15 |
Ya |
| Ask 2 |
1.001 (RPI) |
10 |
Tidak |
| Ask 1 |
999 (RPI) |
5 |
Tidak |
| Bid 1 |
1.002 (Bot Grid) |
10 |
Ya |
| Bid 2 |
1.000 (API) |
20 |
Ya |
| Bid 3 |
998 |
25 |
Ya |
| Bid 4 |
997 (RPI) |
30 |
Ya |
VII. Struktur Biaya
Order RPI dikenai tarif biaya maker RPI khusus yang menggantikan tarif biaya maker asli market maker. Order non-RPI tetap dikenai tarif biaya asli.
Tarif biaya RPI khusus dapat dilihat melalui endpoint GET /v2/reference/transact-fee-rate. Respons endpoint tersebut menambahkan field baru rpiFeeRate yang menunjukkan tarif biaya maker RPI yang saat ini berlaku. Sebagai alternatif, Anda juga dapat menghubungi langsung tim Operasional Market Maker HTX.
VIII. Pembaruan Endpoint API dan Data Stream
Untuk mendukung mekanisme order RPI, endpoint yang ada telah disesuaikan sesuai aturan berikut.
Data Pasar REST
| Nama Endpoint |
HTTP Request |
Deskripsi Perubahan |
| Kedalaman Order Book |
|
Menambahkan parameter opsional includeRpi (Boolean, default false). Jika diatur ke true, data kedalaman tanpa agregasi (step0) akan menyertakan order RPI. Tier agregasi lainnya tidak akan terpengaruh. |
| Kedalaman Order Book Lengkap |
|
Sama seperti di atas dengan penambahan parameter includeRpi |
| Transaksi Pasar Terbaru |
|
Respons untuk setiap transaksi menambahkan field isRpiTrade (Boolean); true menunjukkan bahwa eksekusi tersebut dihasilkan oleh order RPI. |
| Riwayat Transaksi Terbaru |
|
Sama seperti di atas dengan penambahan field isRpiTrade |
| Ticker Terbaru untuk Semua Pasangan Perdagangan |
|
Tidak ada perubahan struktur; eksekusi RPI tetap diperhitungkan dalam metrik seperti biasa. |
| Detail Ticker Gabungan |
|
Tidak ada perubahan struktur; eksekusi RPI tetap diperhitungkan dalam metrik seperti biasa. |
| Detail Pasar 24 Jam |
|
Tidak ada perubahan struktur; eksekusi RPI tetap diperhitungkan dalam metrik seperti biasa. |
| Data Candlestick (K-Line) |
|
Tidak ada perubahan struktur; eksekusi RPI tetap diperhitungkan dalam metrik seperti biasa. |
WebSocket Market Data Stream
| Channel |
Mencakup Order RPI |
Deskripsi |
|
|
Tidak |
Data Best Bid/Offer per tick; order RPI dikecualikan dari perhitungan. |
|
|
Tidak |
Data kedalaman pasar, order RPI yang masih menunggu tidak disertakan dalam push |
|
|
Ya (Baru) |
Menambahkan push channel baru untuk mengagregasikan order RPI yang masih menunggu. Protokolnya konsisten dengan depth channel sehingga market maker dapat berlangganan secara independen ke data kedalaman lengkap yang mencakup RPI. |
|
|
Tidak |
Incremental MBP depth; order RPI tidak disertakan dalam push. |
|
|
Tidak |
Full MBP snapshot; order RPI tidak disertakan dalam push. |
Endpoint Penempatan dan Query Order (REST)
| Nama Endpoint |
HTTP Request |
Deskripsi Perubahan |
| Tempatkan Order Spot |
|
Menambahkan field time-in-force (nilai: rpi). |
| Tempatkan Order Batch |
|
Menambahkan field time-in-force (nilai: rpi). |
| Tempatkan Order Margin |
|
Menambahkan field time-in-force (nilai: rpi). |
| Lihat Open Order Saat Ini |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). |
| Lihat Detail Order |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). Nilai enum baru rpi_cancel ditambahkan ke canceled-source yang menunjukkan order dibatalkan oleh sistem karena harganya bersilangan dengan order non-RPI. |
| Lihat berdasarkan clientOrderId |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). Nilai enum baru rpi_cancel ditambahkan ke canceled-source yang menunjukkan order dibatalkan oleh sistem karena harganya bersilangan dengan order non-RPI. |
| Detail Transaksi |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). Nilai enum baru rpi_cancel ditambahkan ke canceled-source yang menunjukkan order dibatalkan oleh sistem karena harganya bersilangan dengan order non-RPI. |
| Cari Riwayat Order |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). Nilai enum baru rpi_cancel ditambahkan ke canceled-source yang menunjukkan order dibatalkan oleh sistem karena harganya bersilangan dengan order non-RPI. |
| Riwayat Order dalam 48 Jam Terakhir |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). Nilai enum baru rpi_cancel ditambahkan ke canceled-source yang menunjukkan order dibatalkan oleh sistem karena harganya bersilangan dengan order non-RPI. |
| Transaksi Terkini dan Historis |
|
Field baru time-in-force ditambahkan ke respons (nilai rpi menunjukkan order RPI). |
Order Push (WebSocket)
| Channel |
Deskripsi |
Deskripsi Perubahan |
|
|
Push pembaruan order |
Field baru time-in-force ditambahkan (nilai: rpi) sehingga order RPI dan order reguler dapat dibedakan secara real-time. |
|
|
Pembaruan transaksi dan pembatalan order pasca-kliring |
Field time-in-force baru ditambahkan (nilai: rpi); nilai enum baru rpi_cancel ditambahkan ke canceled-source sehingga pembatalan yang dipicu oleh harga bersilangan dapat diidentifikasi secara real-time. |
Dokumentasi Order RPI berakhir di sini.