Anda baru saja menjalankan ulang strategi perpetual BTC dan Sharpe bersihnya turun sepertiga. Sinyalnya identik. Eksekusinya identik. Anda hanya mengubah satu hal: jadwal biaya kini menggunakan volume akun selama 30 hari terakhir, dan akun memulai pengujian di bawah tingkat yang sudah Anda capai dalam produksi.
Sebelum menulis ulang sinyal, pisahkan 2 pertanyaan: berapa biaya yang akan dibayar strategi ini dengan biaya tetap, dan berapa tingkat biaya yang sebenarnya akan diperoleh akun ini pada setiap titik waktu? Keduanya adalah eksperimen yang berbeda. Mencampurnya bisa membuat strategi tampak lebih baik karena volumenya cukup untuk mendapat diskon, lalu menganggap diskon itu seolah-olah gratis.
Mulailah dari jadwal biaya, bukan satu tarif
Sebagian besar halaman biaya bursa mencantumkan tabel: tarif maker dan taker untuk tiap tingkat volume, terkadang dengan aturan terpisah untuk spot dan derivatif. Backtest Anda membutuhkan jadwal efektif dan aturan penetapan tingkat. Apakah volume dihitung selama 30 hari? Berdasarkan bulan kalender? Apakah bursa menggabungkan volume spot dan futures? Apakah diskon saldo token bisa ditambahkan ke tingkat volume?
Catat aturan tersebut sebagai input bertanggal. Sebagai contoh sederhana, anggap sebuah bursa menetapkan tarif untuk hari berikutnya berdasarkan volume futures yang dieksekusi selama 30 hari sebelumnya:
| Volume 30 hari terakhir | Biaya maker | Biaya taker |
|---|---|---|
| Di bawah $1 juta | 0.020% | 0.050% |
| $1 juta hingga $10 juta | 0.016% | 0.040% |
| Di atas $10 juta | 0.012% | 0.035% |
Angka-angka ini hanya ilustrasi; jadwal dan aturan kelayakan bursa dapat berubah. Hal terpenting adalah waktunya: eksekusi kemarin dapat memengaruhi biaya besok, tetapi eksekusi hari ini tidak dapat secara surut membuat Anda mendapat diskon hari ini.
Akun backtest Anda membutuhkan riwayat volume
Misalkan strategi Anda menghasilkan perputaran $80,000 per hari, semuanya sebagai taker. Pada tingkat awal, transaksi pulang-pergi senilai $100,000 biayanya sekitar $50: notional yang diperdagangkan sebesar $100,000 untuk masuk dan keluar, dikalikan 0.050%. Pada tingkat menengah, biayanya $40. Selisih $10 itu tampak kecil sampai Anda melakukan transaksi pulang-pergi tersebut 800 kali. Totalnya menjadi $8,000 selama periode pengujian, dan tingkat biaya mungkin berubah karena transaksi yang sama menghasilkan volume tersebut.
Dampak berantai ini nyata, tetapi menimbulkan jebakan pemodelan. Jika Anda memulai strategi pada tingkat menengah karena strategi itu mencapai tingkat tersebut di akhir backtest, berarti aktivitas akun di masa depan telah bocor ke masa lalu. Mulailah dengan volume sebelumnya yang sudah ditetapkan, perbarui jendela berjalan setelah setiap eksekusi yang memenuhi syarat, dan terapkan setiap perubahan tingkat hanya saat aturan bursa menyatakannya berlaku.
Pisahkan 3 besaran ini: notional strategi yang diperdagangkan, volume akun yang memenuhi syarat untuk perhitungan tingkat, dan biaya yang benar-benar dikenakan pada setiap eksekusi. Ketiganya bisa berbeda jika bursa mengecualikan produk tertentu, hanya menghitung satu sisi transaksi tertentu, atau memberikan diskon berdasarkan saldo yang belum Anda modelkan.
Jalankan pengujian tarif tetap bersama pengujian yang memperhitungkan akun
Anda membutuhkan 2 hasil. Pertama, jalankan ulang seluruh strategi dengan satu tarif taker tetap yang konservatif. Ini menunjukkan seberapa sensitif gagasan tersebut terhadap biaya eksekusi tanpa membiarkan perputaran strateginya sendiri menggeser patokan. Kedua, jalankan jadwal yang memperhitungkan akun dengan saldo awal dan riwayat volume yang terdokumentasi. Hasil ini memperkirakan lintasan yang mungkin ditempuh akun tertentu ini berdasarkan aturan yang dinyatakan.
Lalu bandingkan total biaya, perputaran, P&L bersih, dan drawdown. Jika hanya pengujian yang memperhitungkan akun yang membaik, tanyakan berapa banyak dampaknya berasal dari perubahan tingkat yang masuk akal dan berapa banyak yang bergantung pada riwayat awal, volume lintas produk, atau diskon yang mungkin tidak memenuhi syarat untuk akun Anda. Jika keunggulan hilang pada kedua pengujian, kemungkinan besar tingkat biaya bukan masalah utamanya.
Jangan pula memberikan tarif terbaik kepada eksekusi maker jika model eksekusi Anda diam-diam menganggap setiap order pasif pasti tersentuh. Jadwal biaya Anda bisa akurat, sementara asumsi eksekusinya tetap khayalan. Audit keduanya secara terpisah.
Buat hasilnya dapat direproduksi
Simpan versi jadwal, jangka waktu tinjauan tingkat, waktu reset, produk yang memenuhi syarat, dan volume awal bersama backtest. Sertakan buku catatan harian sederhana: volume berjalan saat pembukaan, eksekusi yang ditambahkan, tingkat yang berlaku, dan biaya yang dikenakan. Saat hasil berubah setelah bursa merevisi tarif, Anda akan tahu apakah strateginya yang berubah, lintasan akun yang berubah, atau asumsi yang berubah.
Anda sedang berusaha menjawab pertanyaan yang spesifik dan berguna: berdasarkan jadwal biaya dan riwayat akun yang benar-benar bisa Anda jelaskan, berapa biaya yang dibayar strategi ini? Jika Anda tidak bisa merekonstruksi tingkat pada hari tertentu, Anda belum tahu makna hasil bersih backtest Anda.
← Semua artikel


