16 Agustus 2026 · Backtesting

Mengapa sebagian besar backtest berbohong, dan empat pos biaya yang membenahinya

Mengapa sebagian besar backtest berbohong, dan empat pos biaya yang membenahinya

Kita mulai dari angkanya, karena angka itulah seluruh argumennya. Satu transaksi taker bolak-balik di venue perp besar menelan sekitar 0.10% dari notional dalam bentuk komisi. Funding pada posisi long yang sedang ramai bisa mencapai 10-30% per tahun melawan Anda. Market order yang besar relatif terhadap kedalaman top-of-book membayar dampak berhukum akar kuadrat di atas spread. Dan backtest yang membaca revisi data kemarin versi hari ini akan mendapat edge senilai beberapa persen setahun yang sebenarnya tidak pernah ada.

0.10%biaya taker bolak-balik, per transaksi
0.15%edge minimum per transaksi yang kami syaratkan
4biaya yang dilewatkan sebagian besar backtest

Angka yang mengejutkan justru yang pertama. Bukan karena besar — tapi karena efeknya pada frekuensi transaksi. Semua orang mengangguk mendengar "masukkan fee", lalu menguji strategi yang bertransaksi empat puluh kali sehari. Pada 0.10% per putaran, empat puluh transaksi berarti 4% dari notional per hari hanya untuk biaya. Tidak ada sinyal di perp mid-cap yang sanggup melewati ambang itu. Strategi itu bahkan jauh dari layak, sementara backtest tanpa fee menyebutnya brilian.

Fee adalah filter, bukan potongan

Model mental yang dibawa kebanyakan orang adalah bahwa fee sekadar menipiskan kurva: bentuknya sama, hanya sedikit lebih rendah. Itu keliru. Fee adalah filter frekuensi. Ia menghapus habis varian frekuensi tinggi dari sebuah edge dan nyaris tidak menyentuh varian yang lambat. Ketika pipeline kami mulai menerapkan skedul maker/taker sungguhan per venue, strategi yang mati bukanlah ide-ide buruk — melainkan ide bagus yang bertransaksi terlalu sering. Solusinya biasanya timeframe yang lebih panjang, bukan sinyal yang lebih baik. Kini kami membuang apa pun yang rata-rata return per transaksinya di bawah 0.15% dari notional, karena setelah biaya dua arah tidak ada sisa apa pun untuk digulung.

Funding adalah pajak posisi yang punya ingatan

Perpetual futures membayar funding setiap satu atau delapan jam, dan itu bukan derau: ia secara struktural berkorelasi persis dengan transaksi yang diincar sistem momentum. Ketika semua orang long, funding bernilai positif, dan posisi long momentum Anda yang membayarnya. Backtest tanpa akrual funding secara sistematis membuat trend-following di perp tampak lebih cantik dari kenyataannya. Kami belajar ini dengan cara yang memalukan — satu keluarga utuh strategi funding-carry otomatis dibuang karena engine tidak mengkreditkan funding yang justru dirancang untuk mereka panen. Sinyalnya baik-baik saja. Akuntansinya yang hilang.

Dampak pasar tumbuh seakar kuadrat ukuran posisi

Fiksi sopan dari backtest berbasis bar adalah bahwa order Anda terisi di harga close. Untuk order kecil, itu kurang lebih benar. Untuk ukuran yang berarti, model yang diterima luas menyatakan dampak tumbuh seakar kuadrat dari ukuran order relatif terhadap volume, dan dampak itu tidak pernah kembali. Kami melipat estimasi dampak berhukum akar kuadrat ke setiap fill dan ke kurva ekuitas itu sendiri. Ia paling penting justru di tempat yang paling tidak nyaman: kapasitas. Sebuah strategi bisa benar-benar menguntungkan di $50k dan secara struktural merugi di $5M, dan hanya kurva yang sadar-dampak yang memperlihatkan batasnya.

Look-ahead bersembunyi di data, bukan di kode

Tidak ada yang menulis if tomorrow_close > today_close: buy(). Look-ahead menyelinap lewat saluran data: sentimen berita yang distempel waktu publikasi alih-alih waktu ingesti, funding rate yang di-join pada periode yang dicakupnya alih-alih saat ia diketahui, universe simbol "saat ini" yang diterapkan ke data historis (survivorship), rilis ekonomi hasil revisi yang menggantikan angka yang benar-benar muncul di tape. Aturan kami adalah point-in-time di mana-mana: setiap deret data tambahan distempel waktu berdasarkan kapan kami bisa mengetahuinya, dan sebuah backtest hanya boleh membaca apa yang ada pada nanodetik itu.

Ujian sebuah backtest bukanlah apakah kurvanya naik. Ujiannya adalah apakah kode yang sama, diberi sinyal yang sama secara live, menghasilkan transaksi yang sama — dan Anda hanya tahu dengan memeriksanya, setiap hari, selamanya.

Kalimat terakhir itu adalah proses nyata, bukan slogan. Setiap hari kami memutar ulang jendela waktu tiap strategi paper-trading melalui engine backtest dan membandingkan transaksinya satu per satu. Ketika paper dan replay tidak sepakat, salah satunya berbohong, dan biasanya biaya atau timestamp-lah pelakunya. Empat pos biaya di atas hanyalah yang pertama kali berbohong kepada kami.

backtestingbiayafundingdampak pasarkejujuran
← Semua artikel