Negatif yang Jujur: Puluhan Ribu Backtest, Lima Koin Utama, Tanpa Edge yang Robust
Bagian dari seri "Backtests Without Illusions".
Hasil yang tidak kami inginkan
Seri ini telah menghabiskan beberapa artikel untuk membangun instrumen guna menangkap sebuah kebohongan: look-ahead bias yang memproduksi Sharpe 15 dari kebocoran satu-bar, Deflated Sharpe Ratio yang memberi harga pada pemenang sebuah pencarian, Probability of Backtest Overfitting yang memberi harga pada pencarian itu sendiri. Setiap bagian itu, dalam artian tertentu, adalah latihan. Yang ini adalah pertunjukannya: kami mengarahkan seluruh aparatus itu ke keluarga strategi nyata yang benar-benar ingin kami perdagangkan, dan kami membiarkannya memberikan vonis yang memang dirancang untuk diberikannya — bahkan ketika vonis itu adalah tidak.
Inilah akhir yang jujur, disampaikan di muka. Kami menjalankan puluhan ribu backtest di lima koin utama, dalam konfigurasi dual- dan triple-timeframe, mencari edge yang robust. Kami tidak menemukannya. Bukan "kami menemukan edge kecil dan mengecilkan ukuran posisi." Kami menemukan tidak ada apa pun yang selamat dari kontak dengan mesinnya — tidak ada konfigurasi yang sekaligus profitabel lintas instrumen dan dapat dipertahankan di bawah koreksi multiple-testing. Itu bukan kegagalan eksperimen. Itu adalah eksperimen yang berhasil.
Bagian yang menggoda — bagian yang akan membuat tim dengan instrumentasi lebih buruk mengalokasikan modal — adalah bahwa pembacaan naif tampak benar-benar bagus:
| Tahap | Yang kami lihat | Apa sebenarnya itu |
|---|---|---|
| Pencarian satu simbol (ETHUSDT, dual-TF) | +16.35% uji out-of-sample, +2.62% pada holdout yang belum tersentuh | pemenang yang menggoda |
| Deflated Sharpe, ~37,000 trial | DSR = 0.00 | terbaik-dari-noise |
| Lintas-instrumen, 5 koin utama, dual-TF | DSR 0.24 / PBO 0.264 | gagal |
| Lintas-instrumen, 5 koin utama, triple-TF | DSR 0.14 / PBO 0.327 | gagal |
Baca baris teratas itu sebagaimana kami pertama kali membacanya: sebuah strategi moving-average-crossover, disetel pada ETHUSDT melintasi grid dual-timeframe, mencetak +16.35% pada data yang tidak pernah dilihatnya selama pencarian, dan mempertahankan +2.62% yang positif pada jendela kedua yang sepenuhnya kami tembok. Jika Anda berhenti di situ — dan sebagian besar backtest yang dipublikasikan berhenti di situ — Anda mengirimkannya. Sisa artikel ini adalah mesin yang memberi tahu kami untuk tidak melakukannya, dan mengapa ia benar.
Babak 1 — Sang pemenang yang menggoda

Keluarga strategi ini sengaja dibuat biasa saja: sebuah crossover Hull moving-average, dievaluasi pada bar yang sudah tertutup, dengan model eksekusi yang jujur (memutuskan pada close bar i, fill pada open i+1 — disiplin satu-bar yang tidak akan dikompromikan oleh seri ini). "Dual-timeframe" berarti sinyal digerbangi oleh tren dari timeframe yang lebih lambat; "triple" menambahkan yang ketiga, yang lebih lambat lagi. Setiap timeframe menambahkan parameter bebas, dan parameter bebas persis adalah apa yang diubah oleh pencarian menjadi performa semu.
Studi satu simbol dijalankan pada ETHUSDT. Protokolnya sudah termasuk jenis yang baik: pemisahan walk-forward rolling (jendela warmup, beberapa fold in-sample, jendela test out-of-sample), ditambah jendela holdout akhir yang dilarang disentuh oleh pencarian sampai paling akhir. Pencarian Sobol/QMC menjelajahi ruang parameter; yang bertahan adalah konfigurasi dengan skor walk-forward terbaik, dan itu dibawa sekali — persis sekali — ke holdout.
Yang bertahan itu tampak seperti sebuah edge:
- +16.35% pada jendela test out-of-sample — data yang hanya digunakan untuk menilai konfigurasi, tidak pernah untuk menyesuaikan (fit) konfigurasi.
- +2.62% pada holdout yang belum tersentuh — tembok kedua, dilewati.
Ini adalah momen yang menentukan apakah sebuah proses riset jujur atau teatrikal. Profit out-of-sample itu nyata dalam artian sempit bahwa angka-angkanya tidak dipalsukan dan tidak ada kebocoran look-ahead — kami sudah memeriksanya. Tetapi "angka nyata, tanpa kebocoran" adalah standar yang jauh lebih rendah daripada "edge nyata." Di antara keduanya terletak hal yang menjadi inti seluruh seri ini: seleksi. Kami tidak mengevaluasi satu strategi dan menemukan bahwa ia menghasilkan 16%. Kami mengevaluasi sejumlah besar strategi dan melaporkan 16% milik yang terbaik. Jendela out-of-sample bersih dari look-ahead, tetapi tidak bersih dari seleksi — karena kami memilih pemenangnya sebagian berdasarkan bagaimana ia tampil di sana. Satu-satunya instrumen yang bisa membedakan kedua cerita itu adalah yang tahu berapa kali kami melihat.
Babak 2 — Deflasinya: ~37,000 trial, DSR = 0.00

Hitung berapa kali kami melihat. Di seluruh fold, kombinasi timeframe, dan grid parameter, pencarian dual-timeframe mengevaluasi kira-kira 37,000 konfigurasi berbeda. Setiap satu darinya adalah satu tarikan dari ruang strategi, dan pencarian mempertahankan maksimumnya. Artikel Deflated Sharpe Ratio memuat derivasi lengkapnya, tetapi satu fakta yang Anda perlukan di sini adalah False Strategy Theorem (Bailey & López de Prado): Sharpe maksimum yang diharapkan dari N strategi dengan edge sejati nol tumbuh seiring N. Pada N ≈ 30,000, yang terbaik dari noise murni duduk sekitar empat standar deviasi di atas nol semata-mata karena seleksi. Empat sigma terlihat seperti sebuah penemuan. Itu adalah bayangan dari pencarian.
Jadi pertanyaan yang benar bukanlah "apakah Sharpe si pemenang positif?" — tentu saja, Anda memilih yang maksimum. Pertanyaan yang benar adalah "apakah Sharpe si pemenang melampaui apa yang akan dicetak oleh pelempar-koin paling beruntung dari 37,000?" Itu persis yang dihitung oleh DSR: ia menggeser benchmark dari nol naik ke plafon noise yang tersirat oleh jumlah trial, dan melaporkan probabilitas bahwa Sharpe sejati melampaui itu.
Jejak out-of-sample si pemenang ETHUSDT setara dengan Sharpe harian sekitar 0.19. Dengan sendirinya, SR harian 0.19 pada jendela panjang adalah angka yang cukup terhormat. Dideflasi terhadap ~37,000 trial, ia menguap:
Nol. Bukan "marginal," bukan "0.4, awasi terus." DSR mengatakan: mengingat betapa kerasnya kami mencari, Sharpe harian 0.19 tidak dapat dibedakan dari tarikan terbaik dari noise murni. +16.35% out-of-sample dan +2.62% holdout itu konsisten, sejauh ketelitian yang bisa diresolusi oleh uji ini, dengan sebuah strategi yang sama sekali tidak memiliki edge dan hanya memenangkan lotere dengan 37,000 tiket.
Ada kehalusan yang perlu ditandai, karena kami tidak ingin membesar-besarkan deflasi ini: titik-titik tetangga pada grid parameter adalah nyaris-duplikat, sehingga jumlah trial mentah menghitung berlebihan (over-count) atas seberapa banyak yang benar-benar independen. Gate kami menggunakan jumlah trial efektif — trial yang dikelompokkan berdasarkan korelasi return via ONC (López de Prado & Lewis) sebelum mendeflasi — persis supaya kami tidak menolak sebuah edge nyata karena alasan pembukuan semata. Bahkan dengan koreksi itu dilipat masuk, pemenang ETHUSDT tetap tidak selamat. Ketika sebuah hasil terbaca DSR 0.00, nuansa effective-N tidak akan menyelamatkannya; ia berada jauh di dalam noise.
Itu bisa saja menjadi akhir cerita. Satu simbol, satu pencarian, terdeflasi menjadi nol. Tetapi DSR yang gagal pada satu simbol menyisakan celah yang selalu akan dicoba diselundupi oleh seorang pengoptimasi yang gigih: mungkin ETHUSDT memang simbol yang sulit, dan konfigurasinya nyata di tempat lain. Untuk menutup celah itu Anda harus mengubah sumbu ujinya.
Babak 3 — Uji yang menentukan: robustness ada di lintas instrumen

Pencarian satu simbol memiliki kelemahan struktural bahkan ketika ia sempurna dalam segala hal lain: satu-satunya sumbu out-of-sample-nya adalah waktu. Ia bisa memberi tahu Anda bahwa konfigurasi tersebut bertahan pada jendela ETHUSDT yang lebih belakangan — tetapi ia tidak bisa memberi tahu Anda apakah konfigurasi itu mempelajari sesuatu tentang pasar atau sesuatu tentang ETHUSDT secara spesifik. Overfitting pada satu instrumen tidak terlihat oleh uji yang tidak pernah meninggalkan instrumen itu.
Jadi kami mengubah objektifnya. Alih-alih "terbaik pada ETHUSDT out-of-sample," perburuan lintas-instrumen ini meminta generalis: konfigurasi yang bagus sekaligus di banyak simbol. Protokolnya:
- Lima koin utama yang likuid: ETHUSDT, BTCUSDT, SOLUSDT, BNBUSDT, XRPUSDT — masing-masing kira-kira 1.18 juta bar 1 menit, satu jendela kalender bersama, satu set pemisahan bersama (warmup → K fold in-sample → test → holdout yang belum tersentuh).
- Objektif yang robust: nilai setiap konfigurasi pada hasil walk-forward setiap simbol, lalu ranking berdasarkan median lintas simbol. Median adalah intinya — sebuah konfigurasi yang spektakuler pada satu koin dan buruk pada empat lainnya tidak bisa membeli jalan masuk dengan satu outlier saja. Untuk terpilih, ia harus setidaknya menengah pada sebagian besar dari mereka.
- Matriks return portfolio untuk gate: return harian per-trial adalah portfolio berbobot sama di lima simbol (1/S dari modal masing-masing), menghasilkan matriks performa T×N yang dikonsumsi oleh gate DSR dan PBO-CSCV.
- Holdout disentuh sekali saja, oleh juara robust dari masing-masing mode saja.
Ini adalah uji yang secara ketat lebih sulit dibanding uji satu simbol, dan sengaja demikian. Sebuah konfigurasi bisa memenangkan pencarian ETHUSDT dengan mengeksploitasi idiosinkrasi satu koin; ia tidak bisa memenangkan pencarian median-lintas-lima dengan cara itu. Jika sebuah edge yang robust memang ada dalam keluarga strategi ini, inilah setup yang akan menemukannya. Jika tidak ada, inilah setup yang akan mengatakannya tanpa ragu.
Babak 4 — Vonis: kedua timeframe gagal gate
Kami menjalankan perburuan lintas-instrumen dalam kedua konfigurasi dan menge-gate setiap juara robust. Gate-nya adalah dua yang standar: DSR ≥ 0.95 (terdeflasi terhadap jumlah trial efektif) dan PBO ≤ 0.2 (dari CSCV atas matriks performa). Inilah seluruh vonisnya, secara jujur:
| Mode | DSR (effective-N) | PBO (CSCV) | Gate: DSR ≥ 0.95 | Gate: PBO ≤ 0.2 | Vonis |
|---|---|---|---|---|---|
| Dual-timeframe | 0.24 | 0.264 | gagal | gagal | tidak ada edge robust |
| Triple-timeframe | 0.14 | 0.327 | gagal | gagal | tidak ada edge robust |
Keduanya gagal, kedua gate, kedua mode. Bacalah setiap angka dengan kalibrasi yang telah ditetapkan artikel-artikel sebelumnya, karena kedua gate ini mengatakan hal yang berbeda dan mereka sepakat:
-
DSR 0.24 (dual), 0.14 (triple). DSR adalah probabilitas bahwa Sharpe sejati melampaui plafon noise yang tersirat oleh pencarian. Kami membutuhkan 0.95. Kami mendapat 0.24 dan 0.14 — hampir satu-berbanding-empat dan satu-berbanding-tujuh peluang bahwa edge-nya bahkan positif setelah memperhitungkan berapa banyak konfigurasi yang dicoba. Menambahkan timeframe ketiga membuatnya lebih buruk, bukan lebih baik: lebih banyak parameter, lebih banyak cara untuk mem-fit sampel, lebih sedikit yang tergeneralisasi. Inversi itu sendiri adalah sidik jari overfitting.
-
PBO 0.264 (dual), 0.327 (triple). Ingat kembali satu fakta yang paling sering salah dibaca orang tentang PBO (pembahasan lengkap di sini): null-nya adalah 0.5, bukan 1. PBO adalah probabilitas bahwa pemenang in-sample mendarat di separuh bawah out of sample. Seleksi yang dapat dipercaya duduk mendekati 0; lemparan koin murni duduk di 0.5. 0.264 dan 0.327 kami berada di bawah 0.5 — seleksinya bukan secara harfiah lemparan koin, ada bisikan samar dari sinyal — tetapi keduanya jauh di atas 0.2 yang kami butuhkan untuk menyebut seleksinya dapat diandalkan. Dan sekali lagi triple (0.327) lebih dekat ke garis lemparan-koin dibanding dual (0.264): lebih banyak kompleksitas, lebih sedikit generalisasi.
Kedua instrumen ini ortogonal — DSR bersifat parametrik dan memberi harga pada pemenang, PBO bersifat non-parametrik dan memberi harga pada prosedur — dan mereka konvergen pada jawaban yang sama dari arah yang berlawanan. Tidak ada pembacaan tabel ini di mana salah satu strategi melewati batas. +16.35% yang memulai seluruh perburuan ini tidak memiliki sepupu lintas-instrumen yang robust. Itu adalah properti dari satu koin dan satu pencarian.
Babak 5 — Ikuti sang juara, simbol demi simbol
Gate agregat memberi tahu Anda bahwa sebuah strategi gagal; rincian per-simbol memberi tahu Anda bagaimana, dan bagaimana-nya adalah bagian paling instruktif dari seluruh studi ini. Ambil juara triple-timeframe — konfigurasi yang benar-benar dinobatkan oleh objektif median-lintas-lima — dan lihat apa yang dilakukannya pada jendela test out-of-sample setiap simbol:
| Simbol | Juara triple, OOS test |
|---|---|
| ETHUSDT | −0.39% |
| BTCUSDT | −0.38% |
| SOLUSDT | +14.74% |
| BNBUSDT | −8.58% |
| XRPUSDT | −4.13% |
Di situlah seluruh ilusinya, terpampang telanjang dalam lima baris. Sang juara profitabel pada tepat satu dari lima simbol — SOLUSDT, pada angka mencolok +14.74% — dan negatif pada empat lainnya. Ia bukan seorang generalis yang kebetulan lemah. Ia adalah spesialis SOL yang mengenakan pakaian portfolio. Satu angka positif besar itu yang melakukan semua pekerjaan; objektif median menurunkan peringkatnya di bawah pemenang mentah ETHUSDT justru karena median menolak untuk ditipu oleh satu outlier tunggal, tetapi bahkan juara yang terpilih-median itu ternyata bersandar hampir sepenuhnya pada satu koin begitu Anda membongkarnya.
Holdout — jendela yang tidak boleh dioptimasi oleh siapa pun — menceritakan kisah yang sama dari sudut pandang paling bersih yang mungkin ada: di seluruh lima koin utama, return holdout sang juara positif hanya pada 1 dari 5 simbol. Jika ini adalah edge nyata dalam keluarga strategi ini, ia akan muncul, setidaknya samar-samar, pada lebih dari satu instrumen dengan data yang belum tersentuh. Ia muncul pada satu. Itu adalah tanda tangan dari sebuah konfigurasi yang mempelajari satu simbol, bukan sebuah pasar.
Inilah mengapa sumbu lintas-instrumen adalah uji yang menentukan dan bukan sekadar hal-baik-untuk-dimiliki. DSR satu-simbol sudah mendeflasi ETHUSDT menjadi nol. Tetapi dibutuhkan desain median-lintas-lima untuk mendiagnosis kegagalan itu — untuk menunjukkan bahwa edge semu itu tidak pernah terdistribusi lintas instrumen sejak awal, bahwa ia adalah properti dari koin apa pun yang kebetulan di-overfit oleh pencarian pada putaran itu. Pada ETHUSDT ia milik ETHUSDT; pada perburuan median ia berpindah ke milik SOLUSDT. Edge-nya berpindah. Edge yang nyata tidak berpindah-pindah seperti itu.
Mengapa hasil negatif adalah hasil yang benar

Penting untuk eksplisit tentang apa yang kami klaim dan tidak klaim, karena "kami tidak menemukan edge" mudah salah dibaca sebagai entah kerendahan hati yang palsu atau pengakuan ketidakmampuan. Ia bukan keduanya.
Kami tidak mengklaim crossover HMA tidak akan pernah bisa berhasil, atau bahwa kelima koin ini tidak dapat diprediksi, atau bahwa tidak ada strategi dual/triple-timeframe yang ada. Kami mengklaim sesuatu yang lebih sempit dan jauh lebih kuat: dalam keluarga strategi ini, atas data ini, pada intensitas pencarian ini, tidak ada konfigurasi yang performa semunya selamat dari koreksi atas jumlah hal yang kami coba. Segala sesuatu yang terlihat seperti edge berada di dalam pita kepercayaan dari yang terbaik-dari-noise. Itu adalah pernyataan yang presisi, dapat difalsifikasi, dan dapat dipertahankan — dan itulah yang benar untuk dipublikasikan.
Godaan yang dikalahkan oleh mesin ini sangatlah besar, dan ia punya nama di setiap bidang lain: masalah laci-arsip (file-drawer problem). Hasil negatif dikubur; hasil positif ditulis. Dalam trading insentifnya bahkan lebih tajam, karena hasil positif yang gagal Anda deflasi bukan sekadar paper yang buruk — itu adalah modal yang digelontorkan melawan noise, uang sungguhan membayar biaya sungguhan untuk memperdagangkan tiket lotere yang Anda kira sebuah sinyal. Artikel look-ahead menunjukkan sebuah kebocoran yang memproduksi Sharpe 15; artikel DSR menunjukkan sebuah pencarian yang memproduksi Sharpe 1.63 dari noise murni tanpa kebocoran sama sekali. Artikel ini adalah seperti apa rupanya ketika instrumen-instrumen itu diarahkan ke ide favorit Anda sendiri dan diminta untuk jujur. Aparatusnya — DSR, PBO/CSCV, pengelompokan effective-N, seleksi lintas-instrumen — tidak ada untuk memberkati strategi Anda. Ia ada untuk mencegah Anda mengirimkan yang terbaik dari noise sebagai alpha, dan satu-satunya bukti bahwa ia bekerja adalah bahwa kadang-kadang ia berkata tidak.
Tim tanpa aparatus ini akan mengirimkan +16.35% itu. Mereka akan memiliki walk-forward yang terlihat bersih, holdout yang positif, tidak ada kebocoran look-ahead yang terdeteksi, dan sebuah cerita yang masuk akal. Mereka akan salah, dan mereka tidak akan mengetahuinya sampai P&L live-nya menyimpang — kesenjangan backtest-live yang tidak pernah harus dijelaskan oleh hasil yang negatif-tapi-jujur, karena ia tidak pernah live. Nilai dari sebuah tidak yang ketat diukur dalam drawdown yang tidak pernah Anda alami.
Provenance
Setiap angka dalam artikel ini bisa dilacak ke kode, bukan narasi. Perburuan edge lintas-instrumen — pemuatan lima-simbol, pemisahan bersama, objektif median-lintas-simbol, matriks portfolio berbobot sama yang diumpankan ke gate — hidup di scripts/edge_hunt_multitf.py (commit acd84e8) di repositori backtester. Gate statistik yang dipanggilnya — probabilistic dan deflated Sharpe, minimum track-record length, effective-N via pengelompokan ONC, dan PBO melalui CSCV, semuanya diimplementasikan dari nol di atas NumPy/SciPy terhadap sumber primer alih-alih pustaka black-box — ada di scripts/overfit_gates.py (commit 7b966e1), yang dilengkapi self-test yang menanam edge yang diketahui di dalam noise murni dan mengonfirmasi bahwa gate meloloskannya dan menolak noise-nya. Studi satu-simbol ETHUSDT yang menghasilkan +16.35% yang menggoda itu berasal dari harness bench_search_multitf sebelumnya yang diimpor read-only oleh perburuan ini. Tidak ada satu pun angka di sini yang dihitung manual; gate-nya adalah jalur kode yang sama baik jawabannya ya maupun tidak.
Poin-poin penting
- Kami menjalankan puluhan ribu backtest di lima koin utama, dual- dan triple-timeframe, dan tidak menemukan edge yang robust — dan itulah hasil yang memang dirancang untuk diproduksi oleh mesin ini. Sebuah hasil negatif, yang ditetapkan secara ketat, adalah sebuah temuan, bukan sebuah kegagalan.
- Angka out-of-sample yang terlihat bersih bukanlah sebuah edge. Pemenang ETHUSDT mencetak +16.35% out-of-sample dan +2.62% pada holdout yang belum tersentuh, tanpa kebocoran look-ahead — dan terdeflasi menjadi DSR 0.00 begitu Anda menghitung ~37,000 trial di baliknya. Out-of-sample melewati look-ahead; hanya deflasi yang melewati seleksi.
- False Strategy Theorem adalah alasannya. Pada ~30,000 trial, yang terbaik dari noise murni duduk sekitar empat sigma di atas nol semata karena seleksi. Sharpe harian 0.19 adalah persis apa yang dibayarkan lotere itu. Anda harus membandingkan pemenang Anda dengan plafon noise, tidak pernah dengan nol.
- Robustness ada di lintas instrumen, bukan hanya lintas waktu. Menyeleksi berdasarkan median lintas lima simbol mengubah ilusi satu-koin menjadi sesuatu yang dapat didiagnosis: dual DSR 0.24 / PBO 0.264, triple DSR 0.14 / PBO 0.327 — keduanya gagal kedua gate, dan triple (lebih banyak parameter) lebih buruk daripada dual pada setiap metrik.
- Bongkar sang juara sebelum Anda mempercayainya. Juara "portfolio" triple-timeframe profitabel pada 1 dari 5 simbol (SOL +14.74%; ETH −0.39%, BTC −0.38%, BNB −8.58%, XRP −4.13%) dan positif pada holdout hanya untuk 1 dari 5. Sebuah edge yang hidup pada satu instrumen dan berpindah ketika Anda mencari ulang bukanlah sebuah edge — itu adalah overfit yang mengenakan pakaian portfolio.
- Publikasikan yang negatif. Aparatus anti-overfit — DSR, PBO/CSCV, effective-N, seleksi lintas-instrumen — layak dimiliki justru karena kadang-kadang ia memberi tahu Anda tidak, dan disiplinnya adalah mendengarkan ketika ia melakukannya.
Strategi yang paling kami inginkan untuk berhasil ternyata tidak berhasil. Instrumen-instrumen yang kami bangun untuk menangkap itu memberi tahu kami, dengan empat cara independen, sebelum satu dolar pun berisiko. Itulah keseluruhan inti dari seri ini, dan inilah artikel di mana intinya terbayar: mesin ini membuktikan kegunaannya pada hari ia menghentikan Anda — bukan pada hari ia menyanjung Anda.
Penulis
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.