Langsung ke konten
Semua strategi

Strategi

Deribit BTC Jual Put Mingguan dengan Jaminan Tunai OTM — Panen Premi Risiko Volatilitas, Disaring dengan IV>RV dan Tren

Hasil: Ditinggalkan

BtcDeribitWeeklyCashSecuredPutWriteVrpTrendGated

Deribit BTC Jual Put Mingguan dengan Jaminan Tunai OTM — Panen Premi Risiko Volatilitas, Disaring dengan IV>RV dan Tren

Hipotesis

Strategi PUT-WRITING sistematis satu kaki dengan agunan penuh (dijamin tunai) pada opsi mingguan Deribit BTC yang memanfaatkan premi risiko volatilitas kripto (VRP): volatilitas tersirat pada opsi BTC secara struktural melebihi volatilitas terealisasi setelahnya, sehingga penjual asuransi memperoleh keunggulan seiring waktu. Ini adalah strategi opsi FIRST dari pabrik strategi dan mengisi kesenjangan kuota terbesar (opsi 0.1% dibanding target >=15%) sekaligus mengurangi keterwakilan berlebih 80% BINANCE. Pada……Tampilkan lebih banyakTampilkan lebih sedikit

Strategi PUT-WRITING sistematis satu kaki dengan agunan penuh (dijamin tunai) pada opsi mingguan Deribit BTC yang memanfaatkan premi risiko volatilitas kripto (VRP): volatilitas tersirat pada opsi BTC secara struktural melebihi volatilitas terealisasi setelahnya, sehingga penjual asuransi memperoleh keunggulan seiring waktu. Ini adalah strategi opsi FIRST dari pabrik strategi dan mengisi kesenjangan kuota terbesar (opsi 0.1% dibanding target >=15%) sekaligus mengurangi keterwakilan berlebih 80% BINANCE. Pada setiap siklus, strategi memilih jatuh tempo mingguan Deribit BTC terdekat (5-9 hari lagi) dan menjual put OTM dengan delta ~20 ONE, dengan agunan tunai FULLY (tanpa leverage, tanpa risiko margin call — kerugian maksimum dibatasi oleh harga kesepakatan, setara dengan kesediaan membeli BTC dengan harga diskon). Posisi disaring oleh dua filter struktural: (1) filter VRP — hanya menjual ketika volatilitas tersirat ATM 7 hari (dari feed greeks/IV Deribit) melampaui volatilitas terealisasi 10 hari terakhir dengan selisih tertentu (IV/RV > ~1.15), sehingga kami hanya menjual asuransi ketika harganya tinggi; (2) filter rezim/tren — hanya menjual ketika harga spot BTC berada di atas SMA 50 harinya, untuk menghindari penjualan put saat tren turun terkonfirmasi / harga terus merosot (risiko ekor dominan dari strategi jual put). Satu instrumen per siklus menjaga backtest tetap pada jalur mesin yang bersih dan menghindari artefak optimisasi multi-kaki/feed kaki tambahan. Pengembang menggulir posisi setiap minggu di antara instrumen put BTC Deribit yang terdaftar (strategi memilih harga kesepakatan/jatuh tempo yang sesuai dari katalog pada setiap siklus).

Iterasi 3 mengubah nilai konfigurasi ONE; logika strategi identik byte demi byte dengan iterasi 2 (hanya docstring PERF yang diperbarui untuk mencatat diagnosis). Saya mengukur waktu habis yang sebenarnya alih-alih menebak lagi: proses sandbox yang diluncurkan 22:05:22 dihentikan pada 22:10:24 (302s), dan biayanya berasal dari pekerjaan per bar NOT — seluruh state per bar sudah O(1) setelah iterasi 2. Penyebabnya adalah jumlah katalog QUERIES. BacktestRunner menjalankan satu pemanggilan catalog.bars() untuk……Tampilkan lebih banyakTampilkan lebih sedikit

Iterasi 3 mengubah nilai konfigurasi ONE; logika strategi identik byte demi byte dengan iterasi 2 (hanya docstring PERF yang diperbarui untuk mencatat diagnosis). Saya mengukur waktu habis yang sebenarnya alih-alih menebak lagi: proses sandbox yang diluncurkan 22:05:22 dihentikan pada 22:10:24 (302s), dan biayanya berasal dari pekerjaan per bar NOT — seluruh state per bar sudah O(1) setelah iterasi 2. Penyebabnya adalah jumlah katalog QUERIES. BacktestRunner menjalankan satu pemanggilan catalog.bars() untuk setiap jenis bar, dan dengan 35,765 direktori bar di data/catalog, setiap pemanggilan memerlukan sekitar FIXED ~8.4s tanpa memandang muatan (diukur pada mesin ini: BTC-PERPETUAL 1-DAY, 365 bar -> 8.31s; BTC-10APR26-63000-P, 19 bar -> 8.27s; BTC-17APR26-68000-P, 24 bar -> 8.77s). Rangkaian mingguan 365 hari berkembang menjadi 52 leg (dikonfirmasi dalam log eksekusi: 'Deribit chain discovered contracts=52'), sehingga pemuatan data saja memerlukan 53 * 8.4s ~= 445s — tepat karena itu perubahan 1-HOUR -> 1-DAY pada iterasi 2 (24x bar lebih sedikit) tidak mengubah apa pun. Perbaikan: lookback_days 365 -> 150, menghasilkan ~21 leg mingguan, sehingga pemuatan memerlukan ~22 * 8.4s ~= 185s dan seluruh eksekusi sekitar ~230s, dengan ruang aman yang memadai di bawah batas 300s. Sebelum mengirimkan, saya juga menguji gerbang gabungan FULL pada data nyata selama rentang yang dipersingkat (sesuai pelajaran tentang gerbang gabungan): dalam 150 hari terakhir, gerbang VRP terbuka selama 97/150 hari, gerbang tren selama 70/150, dan BOTH selama 51 hari yang mencakup 11 dari 23 minggu kalender — jadi strategi akan menjual sekitar 8-11 put, jauh melampaui syarat gerbang Layer-3, yaitu >=1 trade. Untuk memulihkan sebagian sampel yang hilang akibat rangkaian yang lebih pendek, saya memperlebar entry_window_hours 96 -> 120 (tetap dalam rentang entry..expiry-24h strategi dasar), sehingga posisi tetap dijual pada minggu ketika gerbang terbuka di tengah siklus. Hal yang perlu disampaikan kepada analis: backtest nyata kini mencakup ~5 bulan / ~10 trade, bukan setahun — sampelnya tipis, tetapi batas sandbox memaksakannya mengingat biaya katalog ~8.4s per leg. Perhitungannya didokumentasikan dalam docstring (batas atasnya ~30 kueri), agar rentang dapat diperlebar lagi jika biaya kueri katalog kelak diperbaiki di sisi hulu.

verifying_stuck_3_timeouts

Implementasi

Strategi jual put mingguan OTM dengan jaminan tunai penuh pada opsi Deribit BTC (satu leg, ~6% OTM, ~7 DTE), di-roll setiap minggu dan ditutup 24h sebelum kedaluwarsa. Put hanya dijual ketika kedua gerbang struktural terbuka: gerbang VRP (volatilitas tersirat Deribit DVOL >= volatilitas terealisasi 10 hari terakhir 1.15x) dan gerbang tren (harga spot di atas SMA 50-harinya). Ukuran posisi dihitung berdasarkan jaminan tunai/ekuitas (0.85 dari ekuitas dibagi harga spot, dibulatkan ke bawah pada 0.1 kontrak), leverage sebesar 1.0, sehingga kerugian maksimum dibatasi oleh harga kesepakatan. Perpetual Deribit menjadi instrumen utama semata-mata sebagai penentu waktu roll mingguan; aset dasar tidak pernah diperdagangkan.

Hasil Verifikasi

Verifikasi gagal (Layer 4 — tinjauan QA) [class=not_measurable]: - [edge_concern] Metrik sandbox yang sempurna (win_rate 1.0, PF 0.0, max_drawdown 0.0, avg_loss 0.0, Sharpe 5.30, +91% avg_trade_return_pct) merupakan BENIGN-WINDOW ARTIFACT — seluruh risiko strategi jual put dengan jaminan tunai berada pada ekor kehancuran pasar, dan jendela ~5 bulan ini tidak mencakup kejadian tersebut, sehingga semua put menang. Semua strategi jual put tampak tanpa risiko sampai penurunan nilai terjadi. avg_trade_return_pct 91.4%……Tampilkan lebih banyakTampilkan lebih sedikit

Verifikasi gagal (Layer 4 — tinjauan QA) [class=not_measurable]: - [edge_concern] Metrik sandbox yang sempurna (win_rate 1.0, PF 0.0, max_drawdown 0.0, avg_loss 0.0, Sharpe 5.30, +91% avg_trade_return_pct) merupakan BENIGN-WINDOW ARTIFACT — seluruh risiko strategi jual put dengan jaminan tunai berada pada ekor kehancuran pasar, dan jendela ~5 bulan ini tidak mencakup kejadian tersebut, sehingga semua put menang. Semua strategi jual put tampak tanpa risiko sampai penurunan nilai terjadi. avg_trade_return_pct 91.4% dihitung relatif terhadap premi (bukan nosional harga kesepakatan, tidak sebanding dengan batas minimum spot/kontrak berjangka), dan total_commission 0.0 pada 16 perdagangan opsi Deribit menunjukkan bahwa biaya opsi mungkin tidak diterapkan — keduanya makin mempercantik hasil yang tidak informatif. - Tidak dapat diukur dengan konfigurasi ini. rolling_options.lookback_days ditetapkan pada 150 (perbaikan pengembang untuk timeout kueri katalog ~8.4s per leg), sehingga rantai yang dapat diperdagangkan dibatasi menjadi ~5 bulan dan hanya menghasilkan 16 penjualan mingguan. Batas tersebut tertanam dalam konfigurasi, jadi backtest penuh juga dibatasi dengan cara yang sama (~16 perdagangan, di bawah batas minimum opsi ~30, L26). 16 penjualan tanpa kejadian ekor tidak dapat mengevaluasi strategi jual put VRP yang keunggulan/risikonya ditentukan oleh penurunan akibat kehancuran pasar — jendelanya harus mencakup beberapa tahun agar dapat menangkap peristiwa ekor kiri yang nyata. Data DVOL + rantai Deribit tersedia; kendalanya adalah biaya kueri katalog per leg di hulu. Tunda sampai biaya tersebut diperbaiki agar rantai beberapa tahun (>= 2 tahun, ~50-100 penjualan yang lolos gate dalam beberapa kejadian penurunan) dapat dijalankan sesuai anggaran; jangan hanya memperpanjang lookback_days (karena akan memunculkan kembali timeout). - total_commission 0.0 pada 16 perdagangan opsi Deribit — Deribit mengenakan biaya opsi (minimum 0.03% aset dasar atau 12.5% premi, ditambah biaya penyelesaian). Jika engine tidak menerapkan komisi opsi, PnL panen premi akan terlalu tinggi. Kekhawatiran tentang penerapan biaya oleh engine untuk analis/insinyur backtest, bukan kesalahan kode strategi.

Riwayat Iterasi

Verifikasi gagal (Layer 3 — backtest sandbox): uji smoke melampaui batas waktu 300s. Ini hampir selalu berarti ada pekerjaan per bar yang meningkat seiring panjang riwayat — misalnya, memindai ulang seluruh seri funding/pendukung, atau membuat ulang daftar dan memanggil min()/sorted() di dalam calculate_signal()/on_bar() pada setiap bar. Hitung terlebih dahulu larik timestamp terurut ONCE di __init__ dan gunakan bisect, atau simpan hasil pencarian dalam cache dengan kunci timestamp, agar biaya per bar O(log n), bukan O(n).

Verifikasi gagal (Layer 4 — tinjauan QA): - STRUCTURALLY UNMEASURABLE TRADE COUNT (L26 — frekuensi kedaluwarsa opsi x penyaringan). Sandbox menghasilkan 12 trade selama data_days=12 dengan pola degenerat klasik yang tak dapat diukur: win_rate 1.0, Sharpe 31.2, profit_factor 0.0, max_drawdown 0.0, avg_trade_return_pct 91.6% (angka per trade yang mustahil untuk strategi jual put dengan jaminan tunai — perhitungan nilai nosional/imbal hasil opsi tidak dapat dipercaya). Ini bukan sinyal kinerja nyata. Menurut L26……Tampilkan lebih banyakTampilkan lebih sedikit

Verifikasi gagal (Layer 4 — tinjauan QA): - STRUCTURALLY UNMEASURABLE TRADE COUNT (L26 — frekuensi kedaluwarsa opsi x penyaringan). Sandbox menghasilkan 12 trade selama data_days=12 dengan pola degenerat klasik yang tak dapat diukur: win_rate 1.0, Sharpe 31.2, profit_factor 0.0, max_drawdown 0.0, avg_trade_return_pct 91.6% (angka per trade yang mustahil untuk strategi jual put dengan jaminan tunai — perhitungan nilai nosional/imbal hasil opsi tidak dapat dipercaya). Ini bukan sinyal kinerja nyata. Menurut L26 (periode/kedaluwarsa x lolos gerbang): lookback_days dipangkas 365->150 agar muat dalam batas 300s, dan gerbang gabungan VRP+tren hanya terbuka pada ~11 dari 23 minggu -> ~8-11 put. ~10 trade jauh di bawah batas minimum ~30 trade dan tidak dapat membedakan keunggulan VRP dari noise. - INFRASTRUCTURE HARD-CAP membuat sampel tak dapat diukur dengan parameterisasi ANY. Menurut docstring pengembang sendiri, setiap kueri catalog.bars() memerlukan biaya tetap ~8.4s dan run dibatasi pada ~30 kueri (~250s) dalam batas waktu 300s, sehingga backtest mencakup AT MOST ~30 leg mingguan (~7 bulan) -> ~15 trade setelah penyaringan. lookback_days=150 terpaksa diterapkan agar lolos dari batas waktu. Tidak ada penyesuaian ambang yang dapat mengatasi batas ~30 leg untuk kueri katalog. - PUT-WRITE TAIL-RISK MASKING. Sampel win_rate 1.0 dengan ~10 trade adalah hasil paling MOST menyesatkan untuk jual put: artinya periode tersebut tidak mencakup minggu dengan crash, tepat saat put dengan jaminan tunai mengalami kerugian ekor kiri yang besar. Hasil sandbox yang tampak menguntungkan (semua menang, drawdown nol, Sharpe 31) berasal dari peluruhan theta pada minggu yang tenang dan menyembunyikan satu-satunya risiko yang penting. - Kodenya CORRECT dan menerapkan hipotesis dengan tepat: posisi jual put (P -> SELL), ukuran posisi dengan jaminan tunai yang dibatasi harga kesepakatan, gerbang VRP (atm_iv >= rv*vrp_ratio), gerbang tren (spot > SMA), pencarian DVOL yang kausal (searchsorted right-1, tanpa melihat ke depan), leg ditutup 24h sebelum penyelesaian Eropa, perilaku lanjut tanpa gerbang yang terdokumentasi saat IV tidak tersedia (tanpa mengganti keunggulan secara diam-diam). Kebenaran opsi (#12) lolos. Dicatat agar pengembang tidak mengejar bug pemrograman yang sebenarnya tidak ada.

Stratmill adalah alat riset dan paper trading, bukan nasihat keuangan atau broker. Hasil backtest dan paper trading bersifat hipotetis. Trading mengandung risiko kerugian.