7 September 2026 · opsi

Baris yang menjadi dasar backtest opsi Anda: satu call BTC Deribit, diurai per field

Baris yang menjadi dasar backtest opsi Anda: satu call BTC Deribit, diurai per field

Bulan lalu, seseorang dari tim riset bertanya mengapa agen opsi kami terus menolak ide long-gamma yang tampak sangat masuk akal. Sinyalnya bagus. Ramalan volatilitasnya juga bagus. Masalahnya ada pada dua field di feed data pasar dan satu angka yang sama sekali tidak ada di feed.

Jadi, inilah objek sebenarnya yang kami perdebatkan. Respons ticker Deribit untuk BTC-25SEP26-110000-C, diambil pukul 11:20 UTC pada hari Senin saat sisa masa kontrak delapan belas hari. Saya menghapus field yang sudah usang dan mempertahankan semua yang penting.

{
  "instrument_name": "BTC-25SEP26-110000-C",
  "index_price": 96412.18,
  "underlying_price": 96980.44,
  "underlying_index": "SYN.BTC-25SEP26",
  "estimated_delivery_price": 96412.18,
  "mark_price": 0.0041,
  "mark_iv": 42.14,
  "best_bid_price": 0.0038,  "best_bid_amount": 4.9,
  "best_ask_price": 0.0045,  "best_ask_amount": 12.1,
  "bid_iv": 40.42,           "ask_iv": 43.94,
  "last_price": 0.0043,
  "interest_rate": 0.0,
  "open_interest": 812.7,
  "greeks": {
    "delta": 0.0962, "gamma": 0.0000189,
    "vega": 36.77,   "theta": -42.91,  "rho": 4.61
  },
  "stats": { "volume": 61.2, "high": 0.0051, "low": 0.0036 }
}

instrument_name: empat fakta, satu string

BTC-25SEP26-110000-C. Underlying BTC, kedaluwarsa 25 September 2026, strike 110,000, call. Yang tidak disebutkan oleh string ini, dan selalu keliru dipahami setidaknya sekali oleh setiap backtest opsi baru, adalah spesifikasi kontrak lainnya: satu kontrak mewakili 1 BTC underlying, premi dikutip dan dibayar dalam BTC, dan kedaluwarsa pukul 08:00 UTC, bukan pukul 16:00 waktu lokal di mana pun.

Dikutip dalam BTC adalah bagian yang paling rawan di sini. Mark 0.0041 berarti 0.0041 BTC, atau kira-kira $395 berdasarkan indeks. Jika Anda menyimpan kolom itu sebagai harga lalu menggabungkannya dengan P&L strategi dalam USD, tanpa sadar Anda telah membuat posisi yang nilai dolarnya bergerak mengikuti harga spot meski opsi tidak berubah. Saya pernah melihat backtest di mana leg long-call menghasilkan uang pada hari BTC turun, semata-mata karena kolom premi dianggap dalam dolar, padahal peneliti sebenarnya mengambil posisi short atas premi berdenominasi koin dalam pencatatan berbasis dolar. Perlu dua hari untuk menemukannya.

index_price vs underlying_price: selisih $568, dan hanya satu yang benar

Keduanya berbeda sebesar $568.26 dan itu bukan kesalahan. index_price adalah indeks BTC Deribit — acuan spot, gabungan beberapa bursa utama, dan patokan akhir untuk penyelesaian kontrak. underlying_price adalah harga forward sintetis untuk kedaluwarsa spesifik tersebut, SYN.BTC-25SEP26, yang diturunkan dari pasar futures untuk tanggal yang sama. Carry selama delapan belas hari dengan tingkat tahunan kira-kira 12% menghasilkan selisih $568 itu.

Semua greek dalam payload, begitu juga mark IV, dihitung berdasarkan forward. Jika Anda menghitung ulang implied volatility sendiri menggunakan spot karena hanya seri itulah yang sempat Anda muat, Anda akan mendapatkan angka berbeda untuk setiap strike, dan kesalahannya sistematis arahnya: call tampak lebih murah dari kenyataannya dalam satuan vol, sedangkan put tampak lebih mahal. Untuk kontrak 18 hari dengan basis 0.6%, Anda akan salah menetapkan mark IV sekitar satu setengah poin pada strike ini. Itu lebih besar daripada sebagian besar keunggulan vol yang menjadi dasar strategi orang.

interest_rate: 0.0 artinya Deribit memberi tahu bahwa diskonto dihitung melalui forward, bukan melalui suku bunga. Jangan mencari kurva bebas risiko untuk dimasukkan; itu akan membuat Anda menghitungnya dua kali.

mark_price dan mark_iv: harga tanpa pihak lawan

0.0041 BTC. Tidak ada yang membayar harga itu. Deribit menghitung mark dari permukaan vol hasil fitting, berpatokan pada order book tetapi dihaluskan di berbagai strike dan kedaluwarsa agar margin dan likuidasi tidak melonjak saat satu kuotasi dengan spread lebar berubah. Mark dipakai untuk margin dan P&L yang belum terealisasi, serta muncul di setiap endpoint posisi.

Itulah yang menjadikannya harga fill paling menggoda dalam riset opsi kripto, sekaligus yang paling keliru. Backtest yang membeli pada mark dan menjual pada mark bertransaksi melawan spline penghalus. Hasilnya akan menunjukkan Sharpe. Sharpe itu hanya menggambarkan pemulus permukaan dan tidak memberi tahu apakah transaksi benar-benar bisa dilakukan.

Aturan yang akhirnya kami masukkan ke kode: mark dipakai untuk margin, risiko, dan atribusi mid-to-mid. Mark tidak pernah menjadi harga fill. Jika backtest membutuhkan harga fill tetapi tidak ada snapshot order book pada timestamp tersebut, prosesnya ditandai sebagai tidak memiliki harga, bukan diisi pada mark. Kami lebih memilih kehilangan baris itu.

best_bid 0.0038 / best_ask 0.0045: spread dalam tiga satuan

Lebar spread-nya tujuh tick dalam BTC. Itu setara $67.50 untuk opsi seharga $395, atau 17% dari premi. Dalam satuan vol, lebarnya 3.5 poin: bid 40.4 melawan ask 43.9. Itulah angka yang akan disebut trader opsi jika Anda bertanya seberapa lebar spread-nya.

Ukuran kuotasi sama pentingnya dengan harganya: 4.9 kontrak di bid, 12.1 di ask. Ukuran pada opsi Deribit dinyatakan dalam kontrak, jadi 4.9 BTC underlying atau sekitar $472k nilai nosional — tetapi hanya 0.47 BTC delta pada strike ini. Jika strategi Anda membutuhkan gamma yang berarti, Anda perlu puluhan kontrak, sementara order book yang terlihat di harga terbaik hanya menyediakan sebagian kecilnya. Level kedua biasanya berjarak dua atau tiga tick lagi. Backtest opsi yang memodelkan ukuran transaksi perlu menelusuri order book atau mengasumsikan harga RFQ/blok, dan kedua asumsi itu menghasilkan jawaban yang sangat berbeda.

last_price: 0.0043 adalah transaksi yang terjadi pada suatu waktu dalam 24 jam terakhir, mungkin sembilan belas jam lalu saat harga spot sangat berbeda. Sejak awal memang sudah usang pada instrumen yang diperdagangkan sebanyak 61 kontrak sehari. Jangan gunakan data itu untuk membangun seri imbal hasil.

greeks: lima angka, empat konvensi satuan

Blok ini menyebabkan lebih banyak kerusakan yang tak terlihat daripada gabungan bagian payload lainnya, karena setiap nilainya benar secara dimensi tetapi tidak satu pun memakai satuan yang mungkin Anda tebak.

FieldNilaiSatuanKesalahan umum
delta0.0962BTC underlying per kontrakDianggap sebagai delta dolar
gamma0.0000189Perubahan Δdelta untuk setiap $1 pergerakan underlyingDianggap per pergerakan 1%
vega36.77USD per 1 poin volDianggap per vol 100%, atau dalam BTC
theta-42.91USD per hari kalenderDianggap per hari perdagangan
rho4.61USD per perubahan suku bunga 1%Diabaikan, dan itu benar

Delta dinyatakan dalam koin, vega dan theta dalam dolar, gamma per perubahan dolar pada harga spot. Mencampur delta berdenominasi koin ke dalam agregat risiko berdenominasi dolar bisa membuat order book yang tampak netral ternyata memiliki posisi long sebesar 40 BTC. Theta yang dihitung per hari kalender paling terasa pada strategi akhir pekan: posisi dari penutupan Jumat hingga pembukaan Senin mengalami depresiasi selama tiga hari, sekitar $129 per kontrak di sini, meski tidak ada sesi perdagangan. Jika backtest Anda melangkah per bar dan menerapkan theta untuk setiap langkah, akhir pekan akan hilang dari perhitungan dan setiap strategi short-premium diam-diam akan tampak lebih buruk daripada kenyataannya.

open_interest 812.7, volume 61.2: kondisi chain sebenarnya

Open interest delapan ratus kontrak pada strike yang kemarin diperdagangkan sebanyak enam puluh satu kontrak. Itu strike yang benar-benar aktif — 110,000 adalah angka bulat untuk masa tiga minggu, tepat di tempat arus transaksi terkonsentrasi. Geser dua strike lebih jauh ke 120,000 dan open interest turun sepuluh kali lipat; pilih strike nonbulat pada kedaluwarsa nonbulanan dan Anda akan menemukan instrumen dengan bid, ask yang selisihnya empat puluh persen, dan tanpa transaksi selama seminggu.

Backtest yang mencakup seluruh chain dan menelusuri setiap instrumen yang terdaftar akan dengan mudah mengisi posisi Anda pada semuanya. Kami akhirnya menerapkan syarat gabungan: spread kuotasi di bawah 20% dari mark, setidaknya 1 kontrak di kedua sisi, dan volume nonnol dalam 24 jam sebelumnya. Pada hari biasa, kira-kira sepertiga chain BTC yang terdaftar lolos. Dua pertiga sisanya adalah tempat alpha palsu bersembunyi.

Field yang tidak ada di payload

Tidak ada bagian dalam objek ini yang memberi tahu biaya transaksi. Deribit mengenakan biaya 0.0003 BTC per kontrak opsi, baik maker maupun taker — 0.03% dari underlying, bukan dari premi — dengan batas 12.5% dari harga opsi. Untuk kontrak ini, biayanya $28.92 per sisi sebelum batas diterapkan, sebab 12.5% dari 0.0041 adalah 0.000513 dan biaya tetapnya lebih kecil.

Biaya dihitung dari nilai nosional sementara premi ditentukan oleh vol, sehingga biaya sebagai persentase dari jumlah yang Anda bayarkan membengkak saat opsi makin jauh out of the money.

$67.50spread kuotasi (17% dari mark)
$28.92biaya per kontrak per sisi
31%biaya pulang-pergi sebagai % dari premi
3.5 poinlebar bid/ask dalam vol

Beli pada ask 0.0045 ($434), jual pada bid 0.0038 ($366), lalu bayar biaya dua kali: total $125.80 untuk satu putaran kontrak yang ditandai pada $395. Pandangan Anda harus menghasilkan nilai sebesar 31% dari premi sebelum posisi mencapai titik impas. Itulah alasan ide long-gamma ditolak, dan tidak ada kaitannya dengan sinyal.

Lebih menarik lagi jika kita menghitung biaya delta, karena biaya bertambah seiring jumlah kontrak, sementara jumlah kontrak berbanding terbalik dengan delta. Untuk perhitungan ini, mark IV dipertahankan tetap di 42.1% pada semua strike (chain sungguhan memiliki skew, dan di kripto wing call biasanya diperdagangkan di atas ATM, sehingga tabel ini bersifat optimistis):

InstrumenMark (BTC)DeltaKontrak per delta 1 BTCBiaya per sisiBiaya per BTC delta
97000-C (ATM)0.03730.5181.93$28.92$55.80
110000-C0.00410.09610.4$28.92$301
120000-C0.00040.01379.4$4.82 (dikenai batas)$383
Perpetual BTC—1.01.0$48.21$48.21

Batas 12.5% itu sangat berpengaruh pada baris terbawah; tanpanya, wing paling jauh akan berbiaya $2,300 per BTC delta dan strategi tiket lotre mustahil secara hitungan, bukan sekadar buruk. Bahkan dengan batas itu, membeli eksposur melalui strike 120,000 biayanya sekitar delapan kali biaya perpetual. Opsi bukan cara murah untuk mengambil posisi atas arah pasar, dan backtest apa pun yang menyatakan sebaliknya mengabaikan tabel ini.

08:00 UTC, 25 September

Hal terakhir yang tidak diberi tahu ticker adalah bagaimana posisi berakhir. Deribit menyelesaikan opsi berdasarkan rata-rata indeks selama 30 menit menjelang pukul 08:00 UTC pada hari kedaluwarsa, dan mengenakan biaya penyerahan 0.00015 BTC untuk kontrak in the money, yang juga dibatasi sebesar 12.5% dari nilai penyelesaian.

Ada dua implikasi bagi backtest. Pertama, periode perataan itu nyata dan bisa menjadi sumber kesalahan: opsi yang bernilai $300 in the money pada pukul 07:59 bisa kedaluwarsa tanpa nilai jika setengah jam terakhir bergerak buruk. Backtest yang menyelesaikan posisi berdasarkan harga pada pukul 08:00 akan berbeda beberapa basis poin dari akun simulasi pada sebagian besar kedaluwarsa, dan jauh berbeda pada beberapa di antaranya. Kedua, biaya penyerahan tetap berlaku meski Anda tidak menginginkan penyelesaian, jadi strategi yang menahan posisi sampai kedaluwarsa membayar tiga biaya per siklus, sedangkan strategi yang menutup posisi pada pukul 07:30 membayar dua biaya ditambah spread. Mana yang lebih murah bergantung pada strike, dan titik peralihannya ada di sekitar premi 0.0012 BTC. Kami menghitungnya per posisi, bukan menetapkan satu aturan umum.

Awalnya saya ingin menulis tentang ramalan vol. Namun, saya malah menghabiskan seminggu mengurus satuan dan batas biaya. Perbandingan glamor dengan kenyataan dalam riset opsi memang kira-kira seperti itu.

Dua puluh field. Dua harga yang berbeda karena memang dirancang demikian, satu harga yang tidak pernah diperdagangkan, greeks dalam empat sistem satuan, dan model biaya yang sepenuhnya berada di luar payload, di halaman dokumentasi. Jika Anda sedang membangun backtest opsi, gunakan hari pertama untuk menulis satu fungsi yang mengubah salah satu objek ini menjadi posisi yang sudah memperhitungkan semua biaya dan memakai satuan yang benar — spread, biaya, batas, penyerahan, koin versus dolar. Setiap strategi yang Anda tulis setelahnya akan mewarisi asumsi fungsi tersebut.

opsi kriptoderibitvolatilitas tersiratbiayabacktesting
← Semua artikel