Cara Menilai Kualitas Eksekusi untuk API Broker
Jawaban langsung
Kualitas eksekusi untuk API Broker paling baik dinilai dengan melihat bagaimana pesanan bergerak dari pengiriman hingga hasil: seberapa cepat sistem merespons, seberapa konsisten sistem menjaga maksud pesanan, dan biaya serta kesalahan apa yang muncul dalam pengisian nyata. Karena Anda tidak dapat berasumsi kondisi pasar identik, penilaian harus berfokus pada perilaku yang dapat diukur (waktu, konfirmasi, kualitas pengisian, dan tingkat kesalahan) serta pada batasan bukti (apa yang dapat dan tidak dapat dibuktikan oleh data).
Mekanisme atau definisi
Kualitas eksekusi API Broker adalah tingkat di mana API dan jalur eksekusi yang terhubung menerjemahkan permintaan pesanan menjadi hasil eksekusi yang dimaksudkan. Dalam praktiknya, Anda dapat memecahnya menjadi mekanisme yang stabil dan kondisi yang bervariasi:
- Mekanisme stabil yang dapat Anda uji: waktu permintaan/respons, pengurutan pesan, penanganan percobaan ulang, idempotensi (apakah mengirim ulang permintaan yang sama menyebabkan duplikat), dan kebenaran transisi status yang dilaporkan.
- Kondisi bervariasi yang harus Anda pisahkan: likuiditas dan volatilitas pasar, perubahan spread, ketersediaan data, dan kebijakan eksekusi sisi penyedia yang tidak sepenuhnya terlihat oleh klien.
Cara yang membantu untuk menyusun evaluasi adalah dengan mendefinisikan “linimasa” untuk setiap pesanan: (1) klien mengirimkan, (2) API mengonfirmasi penerimaan, (3) eksekusi terjadi atau ditolak, dan (4) pengisian/laporan akhir dikembalikan. Kuncinya adalah mengukur interval dan membandingkannya dalam kondisi pengujian yang terkendali dan berulang.
Bukti atau contoh
Gunakan kombinasi pengukuran waktu, pengukuran hasil/biaya, dan pengujian negatif.
- Latensi dan konsistensi waktu
- Ukur latensi ujung-ke-ujung: pengiriman-ke-konfirmasi dan pengiriman-ke-hasil akhir.
- Ukur juga variabilitas (misalnya, deviasi standar di seluruh proses) daripada hanya rata-rata.
- Asumsi untuk contoh: perlakukan jam klien sebagai referensi yang Anda kendalikan; jika Anda tidak dapat memastikan jam tersinkronisasi, dokumentasikan keterbatasan itu dan fokus pada tren waktu relatif.
- Kualitas pengisian dan biaya eksekusi
- Hitung metrik biaya eksekusi menggunakan harga dan stempel waktu yang benar-benar Anda terima (misalnya, selisih harga versus harga referensi yang Anda tetapkan sebelum pengujian).
- Asumsi: pilih definisi harga referensi (seperti harga bid/ask pertama yang diamati pada langkah tertentu) dan pertahankan konstan di seluruh proses.
- Bandingkan hasil di seluruh jendela waktu dengan kondisi pasar yang serupa, karena jenis pesanan yang sama dapat berperilaku berbeda saat likuiditas berubah.
- Integritas pesanan dan mode kegagalan Setidaknya satu mode kegagalan material harus diuji. Contoh umum meliputi:
- Eksekusi duplikat yang disebabkan oleh percobaan ulang ketika klien tidak menggunakan kunci idempotensi atau ketika API memperlakukan permintaan berulang sebagai pesanan baru.
- Pembaruan status yang tidak berurutan yang menyebabkan aplikasi percaya pesanan telah diisi padahal hanya diisi sebagian atau masih tertunda.
- Penolakan/waktu habis di mana sistem mengembalikan kesalahan, tetapi hasil sisi pasar yang sebenarnya tidak jelas bagi klien.
Pendekatan pengujian yang praktis adalah menjalankan skenario terkendali (pesanan tunggal, urutan cepat dari beberapa pesanan, dan gangguan jaringan yang dipaksakan) sambil memverifikasi bahwa mesin status pesanan lokal Anda cocok dengan status yang dilaporkan API.
Keterbatasan dan risiko
- Hubungan historis tidak menetapkan hasil masa depan: bahkan jika pola waktu atau biaya berlaku untuk sampel masa lalu, volatilitas dan likuiditas yang berbeda dapat memutuskannya.
- Bukti bisa tidak lengkap: Anda mungkin tidak melihat semua detail perutean internal atau tingkat venue, jadi Anda harus memperlakukan bidang yang terlihat API sebagai pengamatan parsial.
- Varians hasil diharapkan: kondisi pasar, biaya transaksi, dan kebijakan perutean dapat berubah tanpa pemberitahuan, jadi kualitas eksekusi yang “baik” bersifat relatif terhadap konteks yang Anda uji.
Verifikasi atau pertanyaan lanjutan
Untuk memverifikasi penilaian Anda, tanyakan apakah pihak ketiga dapat mereproduksi kesimpulan Anda dari definisi pengukuran dan log Anda. Dokumentasikan: bidang linimasa yang digunakan, definisi harga referensi untuk perhitungan selisih harga apa pun, skenario pengujian yang tepat, dan bagaimana Anda mengklasifikasikan hasil (dikonfirmasi, ditolak, diisi, diisi sebagian). Pertanyaan lanjutan yang berguna adalah: metrik mana yang paling baik mendeteksi mode kegagalan yang paling relevan dengan sistem Anda—duplikat, status basi, atau waktu yang tidak konsisten?