BJF TRADING GROUP · SHARPTRADER OPTIMIZER
Sebagian besar backtest arbitrase latensi yang dipublikasikan terlihat spektakuler di atas kertas dan runtuh begitu dijalankan secara live. Alasannya bukan logika strategi yang buruk — melainkan karena backtester ritel standar diam-diam mengasumsikan eksekusi tanpa latensi. Panduan ini menguraikan secara tepat bagaimana waktu eksekusi pada tingkat milidetik mengubah perhitungannya, dan apa yang harus dimodelkan backtest Anda agar menghasilkan hasil yang benar-benar bisa Anda tradingkan.
Profitabilitas arbitrase latensi hidup di dalam jendela 50–200 milidetik. Itulah lamanya perbedaan harga antara feed cepat dan broker lambat biasanya tetap terbuka sebelum kuotasi broker lambat diperbarui. Jika waktu eksekusi pulang-pergi aktual Anda — dari deteksi sinyal hingga konfirmasi fill — menghabiskan sebagian besar jendela itu, hampir tidak ada margin yang tersisa. Backtester ritel standar mengasumsikan order terisi seketika pada harga yang ditampilkan, sehingga seluruh masalah ini hilang dari simulasi. Hasilnya: backtest yang terlihat seperti mesin pencetak uang dan penerapan live yang rugi pada setiap trade setelah spread.
Artikel ini mengukur kesenjangan tersebut, menguraikan ke mana milidetik sebenarnya pergi, dan menjelaskan cara memodelkan waktu eksekusi di dalam backtest agar angka yang Anda hasilkan cocok dengan angka yang akan Anda lihat di akun live.
Tonton: bagaimana waktu eksekusi mengubah backtest arbitrase latensi — strategi yang sama pada latensi eksekusi 0 ms, 50 ms, dan 150 ms, dijelaskan tick demi tick.
Dalam sistem arbitrase latensi, strategi membandingkan dua feed harga — feed cepat (biasanya agregator tier-1 atau feed LP) dan feed lambat (broker yang Anda tradingkan). Ketika feed cepat mendahului feed lambat lebih dari spread ditambah ambang yang dikonfigurasi, strategi mengirim order di sisi lambat, dengan harapan harga lambat akan konvergen.
Peluang hanya ada selama kedua harga tidak selaras. Begitu mesin kuotasi broker mengejar — biasanya dalam 50 hingga 200 milidetik — edge menghilang. Order Anda harus sudah berada di pasar sebelum itu terjadi.
“Waktu eksekusi” dalam konteks ini bukan satu angka. Ini adalah tumpukan latensi, masing-masing menyumbang beberapa milidetik:
Untuk strategi yang berjalan pada VPS standar di pusat data berbeda dari broker, round-trip realistis jarang di bawah 80–100ms. Untuk strategi yang berjalan co-located dengan broker melalui cross-connect, ini bisa turun ke 1–5ms. Perbedaan satu orde magnitudo itu adalah seluruh permainan.
Bayangkan sinyal yang bersih: feed cepat melonjak 1.5 pip. Broker lambat belum memperbarui. Rata-rata, Anda memiliki sekitar 80 hingga 150 milidetik sebelum mesin kuotasi broker lambat mencerminkan harga baru. Di dalam jendela itu, dua hal terjadi secara bersamaan:
Jika round-trip Anda memakan 50ms, Anda tiba ketika perbedaan masih ~70% utuh dan Anda menangkap sebagian besarnya. Jika round-trip Anda memakan 150ms, Anda tiba ketika perbedaan sudah runtuh menjadi ~10% — dan setelah spread + slippage Anda kemungkinan rugi.
Hubungan antara latensi round-trip dan PnL arbitrase tidak linear. Di bawah jendela eksekusi, profitabilitas tinggi dan stabil. Di atasnya, profitabilitas runtuh menjadi nol atau negatif. Sebagian besar trader ritel berada di sisi tebing yang salah dan tidak mengetahuinya karena backtest mereka menyembunyikannya.
Berikut adalah sinyal arb latensi teoretis yang sama dengan edge 1.5 pip, disimulasikan pada empat latensi eksekusi round-trip yang berbeda. Angka di bawah ini tipikal dari apa yang akan Anda lihat pada EUR/USD selama sesi London dengan likuiditas normal dan spread 0.6–0.9 pip.
| Eksekusi round-trip | Edge yang ditangkap | Slippage saat entry | PnL bersih per trade | Kesimpulan |
|---|---|---|---|---|
| ~5ms (co-located) | ~95% dari sinyal | 0.0–0.2 pip | +0.6 hingga +1.0 pip | Menguntungkan |
| ~50ms (VPS dekat) | ~70% dari sinyal | 0.2–0.5 pip | +0.2 hingga +0.6 pip | Menguntungkan, lebih tipis |
| ~120ms (jarak menengah) | ~30% dari sinyal | 0.5–1.0 pip | −0.3 hingga +0.1 pip | Marginal / merugi |
| ~200ms (jarak jauh) | ~10% dari sinyal | 1.0–1.8 pip | −1.0 hingga −0.5 pip | Rugi setiap trade |
Perhatikan polanya: dari 5ms ke 50ms, profitabilitas turun secara moderat. Dari 50ms ke 120ms, jatuh dari tebing. Di atas 150ms, strategi menjadi lempar koin dengan ekspektasi negatif setelah biaya. Tebing ini tidak terlihat oleh backtester yang mengasumsikan fill instan.
Backtester ritel standar dibuat untuk sistem trend-following dan berbasis indikator — strategi dengan periode holding menit hingga hari, dan beberapa detik slippage eksekusi hanyalah kesalahan pembulatan. Arsitekturnya mencerminkan hal itu:
Untuk strategi yang menahan posisi selama berjam-jam, ini baik-baik saja — biaya dari penyederhanaan ini jauh di bawah 1% dari PnL. Untuk strategi arbitrase latensi yang menghasilkan 1–3 pip per trade dan hidup atau mati di dalam jendela 100ms, setiap penyederhanaan itu fatal:
Perbedaan harga 100ms tidak terlihat di dalam bar M1 — bar menunjukkan OHLC, bukan aliran tick intrabar. Backtester replay bar bahkan tidak bisa mendeteksi sinyal arb latensi dengan benar.
Jika order terisi pada harga yang ditampilkan saat dikirim, seluruh jendela eksekusi 50–200ms runtuh menjadi nol. Backtest menangkap 100% dari setiap sinyal, setiap saat. Realitas menangkap 30%–95% tergantung infrastruktur.
Peluang arbitrase nyata berkumpul di sekitar berita, rollover, dan jendela likuiditas tipis — tepat saat spread melebar 3–5x. Backtest spread tetap menghitung profit yang tidak akan ada dalam kondisi nyata.
Arbitrase latensi menutup posisi secepat membukanya. Backtester standar entah mengabaikan slippage sisi close sepenuhnya atau menerapkan spread tetap yang sama, menggandakan optimisme yang tidak realistis.
Untuk menghasilkan backtest yang bertahan saat bersentuhan dengan broker live, simulator harus memodelkan setiap leg round-trip secara eksplisit. Berikut rincian yang dibutuhkan backtest arb latensi yang serius:
| Komponen | Kisaran tipikal | Apa yang diwakili |
|---|---|---|
| 1. Latensi signal-to-send | 0.5–20 ms | Waktu dari menerima tick pemicu hingga mengeluarkan order. Bergantung pada bahasa, jalur kode, dan CPU. C++ terkompilasi <1ms; skrip tingkat tinggi 5–20ms. |
| 2. Round-trip jaringan (keluar) | 1–80 ms | Waktu kabel dari host trading Anda ke broker. Co-located = 1–3ms; metro yang sama = 5–15ms; lintas wilayah = 30–80ms. |
| 3. Latensi matching broker | 3–100 ms | Waktu yang dihabiskan di dalam manajemen order dan mesin matching broker. Broker ECN tier-1: 3–15ms. Broker ritel standar: 30–100ms. Broker STP dengan penanganan manual: 100ms+. |
| 4. Round-trip konfirmasi (kembali) | 1–80 ms | Mencerminkan leg jaringan outbound. Sampai Anda menerima konfirmasi fill, Anda tidak tahu harga fill Anda — relevan untuk manajemen risiko dan timing sisi close. |
Untuk penerapan arb latensi ritel tipikal dari VPS generik melalui broker ritel standar, keempat komponen bertambah menjadi sekitar 80–180ms — tepat di zona bahaya tempat penangkapan sinyal turun di bawah 50%. Untuk penerapan co-located melalui broker ECN cepat, komponen yang sama bertambah menjadi 5–20ms — jauh di bawah tebing.
Setiap backtest strategi arbitrase latensi yang jujur harus memungkinkan trader mengonfigurasi latensi ini dan melihat dampaknya. SharpTrader Optimizer memodelkan latensi eksekusi sebagai satu parameter yang dapat dikonfigurasi (dalam milidetik) yang diterapkan pada setiap order pada waktu simulasi, di atas data tick historis nyata.
Tiga hal harus ada. Masing-masing diperlukan; tidak ada yang cukup sendirian.
Backtester ritel standar mengisi data “tick” dengan menginterpolasi antara nilai OHLC bar. Tick sintetis yang mereka hasilkan menyentuh high dan low bar pada titik acak dalam bar, bergerak mulus antara open dan close. Pasar nyata tidak bergerak seperti itu — pasar melompat. Sinyal arb latensi 1.5 pip yang Anda coba tangkap adalah lompatan yang data tick hasil interpolasi haluskan hingga tidak ada.
Backtest serius memutar ulang tick bid/ask aktual yang direkam dari mesin matching broker (atau feed referensi bersih seperti data institusional bersumber London). Setiap tick memiliki timestamp, bid, dan ask. Strategi melihatnya dalam urutan yang sama, dengan timing yang sama, seperti yang akan dilihat penerapan live.
Trader mengonfigurasi waktu eksekusi round-trip T (dalam milidetik) yang mereka harapkan terlihat live. Ketika strategi mengeluarkan order, simulator memajukan jam sebesar bagian request-leg — biasanya T/2, karena hanya waktu antara sinyal dan matching di sisi broker yang memengaruhi harga fill (response leg hanya memberi tahu strategi apa yang sudah terjadi). Jika T = 80ms, simulator melihat aliran tick 40ms setelah sinyal dan menggunakan bid/ask tick itu — bukan tick yang memicu sinyal — sebagai harga fill.
Perubahan tunggal ini — memajukan jam antara sinyal dan fill — mereproduksi tebing pada latensi realistis. Ini juga membuat backtest deterministik: strategi yang sama pada T = 50ms vs T = 150ms pada aliran tick yang sama menghasilkan hasil yang berbeda secara terukur, dan trader dapat melihat tepat di mana strategi berhenti bekerja.
Slippage yang terealisasi pada setiap fill adalah apa pun yang dihasilkan tick walk — ini adalah output simulasi, bukan angka yang harus ditebak trader. Beberapa fill mendarat menguntungkan (slippage positif), beberapa lebih buruk (negatif), dan besarnya mengikuti volatilitas tick aktual selama milidetik tersebut. Inilah distribusi realistis yang hilang dari setiap backtester ritel standar.
Arbitrase latensi menutup secepat membuka. Exit terjadi 200–800ms setelah entry, ke harga yang sedang konvergen. Jika simulator menerapkan spread tetap yang sama pada entry dan exit, ia melewatkan dua hal: (1) slippage entry dari jendela latensi, dan (2) slippage exit dari harga yang bergerak kembali selama round-trip sisi close. Model nyata memungkinkan Anda mengonfigurasi waktu eksekusi secara independen pada open dan close — mencerminkan perilaku broker nyata ketika exit sering melewati jalur routing yang lebih lambat — dan menyelesaikan slippage pada setiap leg secara otomatis dari aliran tick.
Berikut adalah hasil representatif dari strategi arbitrase latensi SharpTrader yang dibacktest selama 30 hari data tick EUR/USD, dengan parameter yang sama tetapi tiga konfigurasi latensi eksekusi yang berbeda. Angka-angka ini tipikal dari yang kami lihat dalam backtest BJF Feed (London / Tokyo / NY).
| Metrik | 0ms (fiktif) | 50ms (VPS dekat) | 150ms (jarak jauh) |
|---|---|---|---|
| Sinyal dipicu | 2,847 | 2,847 | 2,847 |
| Sinyal terisi pada edge | 2,847 (100%) | 1,983 (70%) | 854 (30%) |
| Rata-rata pip ditangkap | 1.42 | 0.98 | 0.21 |
| Slippage terealisasi pada entry (output tick-walk) | 0.0 pip | 0.3 pip | 0.9 pip |
| PnL bersih per trade | +0.82 pip | +0.48 pip | −0.31 pip |
| Return bulanan (1 lot) | +233% | +137% | −88% |
Kolom 0ms adalah “fantasi backtest” yang dihasilkan alat standar. Kolom 50ms adalah gambaran sebenarnya dari strategi arb latensi yang diterapkan dengan baik. Kolom 150ms adalah apa yang tanpa sengaja dijalankan sebagian besar trader ritel ketika mereka menjalankan strategi di VPS generik dan trading melalui broker standar tanpa menyadari di mana round-trip mereka berada di tebing.
Strategi yang sama bisa sangat menguntungkan, marginal menguntungkan, atau pasti rugi — hanya bergantung pada satu angka yang tidak dimodelkan backtester standar.
Latensi eksekusi adalah variabel yang paling kurang dimodelkan dalam backtest arbitrase latensi ritel, tetapi bukan satu-satunya. Backtest yang dapat dipercaya menggabungkan tiga hal, dan masing-masing memperkuat yang lain:
Mengungkap tebing. Memberi tahu infrastruktur apa yang sebenarnya dibutuhkan strategi agar menguntungkan, dan pada titik mana edge Anda menghilang.
Menangkap fakta bahwa peluang arb berkumpul tepat ketika spread melebar. Backtest spread tetap menghitung profit yang secara fisik tidak bisa ada pada momen-momen itu.
Menangkap strategi yang terlihat bagus in-sample karena optimizer menemukan set parameter yang cocok dengan noise periode in-sample. Tanpa walk-forward, backtest Anda hanyalah resume melihat ke belakang.
Trade arbitrase latensi memiliki dua peristiwa slippage — open dan close. Sebagian besar backtest memodelkan satu (atau nol) dan menggandakan optimisme.
Ketika keempatnya ada, backtest berhenti menjadi alat pemasaran dan menjadi alat peramalan. Angka yang dihasilkannya berhenti menyimpang 50–200% dari hasil live dan mulai berada dalam 10–20% — cukup dekat sehingga keputusan ukuran risiko, alokasi modal, dan pemilihan broker benar-benar dapat dibuat berdasarkan backtest.
Aturan praktis industri: perkirakan drawdown live 1.5x hingga 2x drawdown backtest. Untuk strategi arbitrase latensi yang berjalan pada backtester standar, rasio itu lebih dekat ke 5x hingga 10x — karena backtest belum memodelkan latensi eksekusi, spread variabel, atau slippage dua leg. Setelah itu masuk, aturan 1.5–2x berlaku; sebelum itu masuk, backtest sama sekali tidak memiliki nilai prediktif.
Jalankan optimasi di setidaknya tiga konfigurasi latensi: 10ms (best-case co-located), 50ms (VPS dekat), dan 150ms (VPS generik, broker jauh). Jika strategi hanya menguntungkan pada 10ms, Anda memiliki masalah penerapan — Anda membutuhkan rencana co-location sebelum bisa memperdagangkannya. Jika menguntungkan pada 50ms tetapi tidak 150ms, pilihan VPS dan pemilihan broker menjadi seluruh permainan.
Tiga lapisan: (1) ping endpoint order entry broker Anda dari host trading Anda — ini memberi round-trip jaringan mentah; (2) kirim order uji kecil selama periode tenang dan beri timestamp emisi sinyal vs konfirmasi fill — selisihnya mencakup latensi matching broker; (3) ulangi di beberapa sesi — latensi bervariasi sesuai beban broker, waktu, dan rute. Angka realistis untuk penerapan Anda adalah median dari banyak pengukuran, bukan ping terbaik.
Ya — dengan jendela yang lebih sempit. Jendela trading berita bisa selebar 10–50ms. Masalah kesenjangan waktu eksekusi identik, hanya dipadatkan ke jendela yang lebih kecil. Infrastruktur backtest yang sama (tick nyata, latensi eksekusi yang dapat dikonfigurasi, spread variabel) diperlukan, dan toleransi latensinya bahkan lebih tidak memaafkan.
Kedua fenomena memiliki penyebab yang sama: penyedia likuiditas menjadi tidak yakin tentang harga dan menarik kuotasi. Ketika feed cepat melonjak, LP yang memasok broker lambat sementara melebar kuotasinya untuk melindungi diri dari being picked off. Jadi momen ketika perbedaan terbuka juga merupakan momen ketika spread untuk menangkapnya melebar. Backtest spread tetap tidak melihat ini dan melebih-lebihkan edge bersih sebesar 30–50%.
Untuk arb latensi gaya institusional terhadap broker ECN tier-1, ya — medan permainan telah bergeser ke round-trip sub-5ms dan itu membutuhkan cross-connect atau proximity hosting. Untuk arb latensi gaya ritel terhadap broker ritel yang lebih lambat, tidak — round-trip 30–80ms masih bisa menghasilkan edge, karena jendela broker lambat lebih lebar. Pertanyaan yang tepat bukan “apakah co-location diperlukan” tetapi “apakah round-trip saya muat di dalam jendela broker yang saya tradingkan.” Itulah tepatnya pertanyaan yang dijawab backtesting sadar latensi eksekusi.
Untuk strategi trend-following yang menahan posisi berjam-jam atau berhari-hari, beberapa ratus milidetik latensi eksekusi adalah kesalahan pembulatan. Untuk arbitrase latensi, milidetik yang sama adalah seluruh sinyal. Infrastruktur backtesting forex biasa dirancang untuk kasus pertama dan diam-diam akan menghasilkan hasil yang tidak berguna untuk kasus kedua. Itulah mengapa alat backtesting arbitrase khusus ada sebagai kategori terpisah.
Itu mengubah strategi optimal, bukan analisisnya. Broker yang menjalankan plugin anti-arbitrase (eksekusi tertunda, last-look, requote saat profit, hold-then-fill) secara efektif memperkenalkan latensi eksekusi buatan di atas latensi alami. Backtest dengan latensi eksekusi yang dapat dikonfigurasi memungkinkan Anda mensimulasikan perilaku anti-arb broker dan memutuskan apakah strategi masih layak terhadap broker tersebut — atau apakah Anda perlu pindah venue.
Untuk strategi arbitrase latensi dengan 5–8 parameter, grid tipikal adalah 30,000–100,000 kombinasi — termasuk 3–5 pengaturan waktu eksekusi sebagai salah satu dimensi yang disapu. Tujuannya adalah menemukan cluster profitabilitas — rentang di mana strategi menguntungkan pada banyak nilai parameter, bukan satu lonjakan “beruntung”. Puncak tunggal adalah curve-fitting; cluster adalah robustness. Sebagai baseline realistis pada workstation ritel tipikal, grid 30,000 kombinasi terhadap 1 minggu data tick XAUUSD pada CPU 4-core selesai dalam sekitar 12 jam; grid yang sama memakan sekitar 3 jam pada 16 core. SharpTrader Optimizer menangani 100,000+ kombinasi per run pada perangkat keras multi-core.
Ini adalah observasi empiris di seluruh trading algoritmik institusional: bahkan backtest yang dimodelkan dengan baik meremehkan drawdown live sekitar 50–100%, karena beberapa friksi dunia nyata (penolakan broker, gap akhir pekan, perubahan rezim) tidak dapat dimodelkan dengan bersih. Aturan ini mengasumsikan backtest sudah mencakup latensi eksekusi realistis, spread variabel, dan slippage di kedua leg. Jika itu hilang, pengalinya jauh lebih tinggi — 5x hingga 10x khusus untuk arb latensi.
Secara konsep identik. Jendela waktu eksekusi dalam arbitrase kripto lintas bursa biasanya 200ms–2s (lebih lambat daripada forex karena bursa lebih berjauhan dan orderbook lebih dalam tetapi lebih lambat diperbarui). Tiga bahan yang sama — tick replay, latensi eksekusi yang dapat dikonfigurasi, spread variabel — menghasilkan backtest yang jujur. Tooling crypto arbitrage BJF menggunakan arsitektur yang sama yang diadaptasi untuk API bursa dan kedalaman orderbook.
SharpTrader Optimizer adalah satu-satunya backtester yang dapat diakses ritel yang memodelkan waktu eksekusi yang dapat dikonfigurasi, replay tick nyata, spread variabel per tick, dan slippage beresolusi tick di kedua leg — empat variabel yang menentukan apakah strategi arbitrase latensi itu nyata atau fiktif. Optimasi grid multi-core di 100,000+ kombinasi parameter selesai dalam hitungan jam, bukan hari.