Lewati ke konten

Perdagangan

Mesin pencocokan

Mesin pencocokan memutuskan order mana yang berdagang satu sama lain. Halaman ini mencakup aturan prioritas, pemicu penghentian, perilaku restart, dan invarian keadilan yang diberlakukan mesin.

Prioritas harga-waktu

Saat order baru tiba, mesin mencocokkannya terhadap counter-order terbaik di buku. Terbaik ditentukan pertama berdasarkan harga, kemudian waktu.

  • Harga lebih baik diisi terlebih dahulu โ€” penawaran lebih tinggi mengalahkan penawaran lebih rendah untuk penjual.
  • Harga yang sama diisi berdasarkan waktu โ€” order yang lebih awal menang.
  • Harga isian berasal dari order yang menunggu, bukan dari order yang masuk.

Pemicu penghentian

Tiga peristiwa dapat menghentikan pencocokan di sebuah pasar. Selama dihentikan, mesin menolak order baru dan membekukan order yang menunggu.

PemicuEfekLanjutkan
Circuit breaker โ€” pergerakan harga 30%+ Hentikan order baru, bekukan yang menunggu, beri tahu pengguna. Tinjauan admin + lanjutkan manual.
Penghentian resolusi โ€” penguncian pra-resolusi Hentikan kemudian dorong pasar ke penyelesaian.Pasar ditutup setelah penyelesaian.
Jendela pemeliharaan platform Tolak order untuk jendela singkat dengan kode error yang jelas. Otomatis saat jendela berakhir.

Yang terjadi saat restart

Restart mesin jarang tapi nyata. SatoriEx memutar ulang buku secara deterministik; pengguna melihat gangguan singkat pada penulisan, tidak pernah pada pembacaan.

  1. API menolak order baru dengan kode error sementara.
  2. Order yang menunggu dimuat dari penyimpanan persisten.
  3. Status buku diputar ulang ke nomor urut yang terakhir di-commit.
  4. Pencocokan dilanjutkan; klien yang ditolak harus mencoba ulang dengan kunci idempoten yang sama.

Invarian keadilan

Mesin tidak pernah membiarkan order berdagang di depan order yang lebih lama dengan harga yang sama. Tidak ada order, termasuk likuiditas awal platform, yang diberi prioritas โ€” order tidak memiliki tanda jalur cepat.

Gunakan kunci idempoten

Setiap panggilan POST /orders menerima header Idempotency-Key. Selama restart dan gangguan jaringan, inilah yang memungkinkan Anda mencoba ulang dengan aman tanpa menggandakan posisi.