28 Oktober 2026 · opsi

Sinyalnya Benar. Backtest Opsi Kami Membeli Kontrak dengan Tanggal Kedaluwarsa yang Salah.

Sinyalnya Benar. Backtest Opsi Kami Membeli Kontrak dengan Tanggal Kedaluwarsa yang Salah.

Pukul 10:07 pada hari Selasa, agen riset kami menandai peluang bullish jangka pendek pada ETF indeks. Sinyal aset dasarnya sederhana: harga kembali menembus rata-rata 20 bar, volatilitas terealisasi mereda, dan sesi berikutnya dijadwalkan memuat rilis data makro. Transaksi yang diusulkan adalah call spread dengan waktu hingga kedaluwarsa sekitar 2 minggu.

Backtest menyukainya. Strategi paper tidak menempatkan order. Saat kami membandingkan order, cap waktu sinyal cocok dan harga aset dasarnya berselisih hanya beberapa sen. Kontraknya berbeda: backtest membeli kontrak dengan tanggal kedaluwarsa hari Jumat yang tampak terbaik dalam rantai historis; proses paper memilih tanggal kedaluwarsa berikutnya yang tercatat, 1 minggu kemudian.

Selisih itu berasal dari penggabungan kalender. Kami memperlakukan “hari hingga kedaluwarsa” sebagai atribut suatu tanggal, lalu memilih kontrak dengan tanggal kedaluwarsa yang paling dekat dengan target. Dalam data historis, kalender kedaluwarsa memuat pencatatan mingguan yang baru ditambahkan setelah tanggal yang sedang kami uji. Backtest menggunakan kontrak dari masa depan dengan cara yang tampak seperti kemudahan yang tidak berbahaya.

Awalnya kami menduga ada masalah zona waktu. Tanggal kedaluwarsa opsi memang sering memicu masalah seperti itu: sesi pasar berakhir di New York, cap waktu bursa mungkin disimpan dalam UTC, dan tanggal tengah malam bisa bergeser jika pipeline mengonversinya dengan ceroboh. Kami memeriksanya. Cap waktunya benar. Kontrak itu memang belum ada dalam semesta historis pada hari Selasa tersebut.

Pelajaran pertama: rantai opsi historis memerlukan semesta pencatatan point-in-time. Tanggal kedaluwarsa kontrak memberi tahu kapan kontrak berakhir. Tanggal itu tidak memberi tahu kapan kontrak dicatat, kapan kontrak mulai bisa diperdagangkan, atau apakah sistem Anda bisa memilihnya saat itu.

Kami membangun ulang langkah pemilihan berdasarkan informasi yang tersedia pada cap waktu keputusan. Untuk setiap kontrak kandidat, kami mensyaratkan cap waktu pencatatan yang tidak lebih lambat dari waktu keputusan, kuotasi valid yang tidak lebih lama dari ambang kesegaran kami, dan sesi pasar saat strategi dapat mengirim order. Kami juga mencatat kumpulan kandidat sebelum memberi peringkat. Bagian terakhir itu penting karena backtest lama hanya menyimpan kandidat pemenang; kami tidak bisa tahu apakah backtest membandingkan 5 kontrak yang memenuhi syarat atau diam-diam memilih dari kalender yang belum ada saat itu.

10:07waktu keputusan sinyal
1 mingguketidakcocokan tanggal kedaluwarsa
0pencatatan historis yang memenuhi syarat untuk kontrak terpilih

Berikutnya kami memeriksa kuotasi yang digunakan untuk menetapkan harga spread. Backtest mengambil kuotasi terbaru untuk setiap kaki secara terpisah. Ask call berasal dari pukul 10:06:58; bid call yang dijual berasal dari pukul 10:04:11. Keduanya secara teknis masih baru menurut kebijakan data yang longgar, tetapi pasar sudah bergerak di antara kedua waktu itu. Midpoint spread yang dibangun dari kaki-kaki dengan cap waktu berbeda dapat menggambarkan pasar yang tidak pernah ada.

Kami mengubah aturan kuotasi: cap waktu kedua kaki harus berselisih paling lama 2 detik, dan pasar crossed atau berukuran nol harus ditolak. Jumlah observasi historis yang dapat digunakan pun berkurang. Namun, harga yang tersisa lebih dapat dipercaya. Jika tidak ada kuotasi tersinkron, kandidat kami tandai tidak tersedia alih-alih mengisi kekosongan dengan harga lama.

Lalu tibalah aturan pemeringkatan. Agen memilih tanggal kedaluwarsa dengan biaya spread kuotasi terendah. Kedengarannya masuk akal sampai spread itu hanya memiliki 1 kontrak dan kuotasinya sudah usang. Kami memperjelas tujuannya: maksimalkan imbal hasil yang diharapkan per unit risiko yang ditentukan di antara kontrak yang lolos pemeriksaan ukuran kuotasi minimum, kesegaran, dan pencatatan. Dalam contoh ini, tanggal kedaluwarsa terdekat yang memenuhi syarat memiliki lebar kuotasi $0.42 di antara kedua kaki, sedangkan tanggal kedaluwarsa berikutnya memiliki lebar $0.31. Pilihan yang tampak lebih murah itu juga hanya menampilkan 1 kontrak pada kaki yang dijual.

KandidatTanggal kedaluwarsa tersedia saat itu?Usia kuotasiUkuran kaki yang dijual yang ditampilkanKeputusan
Jumat mingguanTidakTidak berlakuTidak berlakuKeluarkan
Jumat berikutnyaYa1.4 detik18 kontrakMemenuhi syarat
Jumat ketigaYa9.8 detik1 kontrakKeluarkan karena kuotasi usang dan tipis

Kami memutar ulang kejadian itu dengan aturan tersebut. Kini backtest memilih tanggal kedaluwarsa yang sama dengan paper dan mencatat alasan kontrak lainnya ditolak. Harga masuk spread yang dihasilkan lebih buruk $0.11 daripada harga eksekusi historis semula. Itu bukan berarti strateginya tidak bernilai; artinya, angka kinerja lama mencakup pemilihan transaksi yang tidak bisa direproduksi oleh proses live.

Ada satu gangguan kecil: format simbol bursa membuat masalah tanggal kedaluwarsa tampak seperti masalah kualitas data. Kami menemukan kode mingguan dari satu vendor yang berbeda satu karakter dari kode bulanan. Saya tetap menyimpan simbol mentah di samping kunci kontrak yang dinormalisasi dalam log audit. Memang kurang rapi, tetapi cara ini mencegah kami terlalu cepat memercayai penggabungan data yang tampak rapi.

Jika Anda sedang membangun backtest opsi, simpan seluruh kumpulan kandidat untuk setiap keputusan, beserta status pencatatan, cap waktu kuotasi, ukuran, dan alasan penolakan setiap kontrak. Lalu jadikan pemilihan kontrak fungsi deterministik dari snapshot tersebut. Pemilihan tanggal kedaluwarsa adalah bagian dari strategi. Jika backtest bisa melihat kontrak yang tidak bisa dipilih paper, perbandingan sinyal sudah berubah sebelum dimulai.

backtesting opsipemilihan tanggal kedaluwarsadata point-in-timepemodelan eksekusi
← Semua artikel