Langsung ke konten
Riset / Edukasi / Jurnal trading

Analisis Teknikal · Profesional · Bagian 13 dari 16

Overfitting dan out-of-sample: backtest terbaik justru yang paling patut dicurigai

Dari banyak versi aturan, satu bersinar di masa lalu karena kebetulan. Apa itu overfitting, mengapa jumlah percobaan lebih penting dari juaranya, dan cara data sisihan dan walk-forward memilah edge dari keberuntungan.

InnoMP Research · Education Desk Terbit 25 Okt 2026 · Diperbarui 25 Okt 2026 10 menit baca
Ilustrasi sampul InnoMP Research — terbaik dari 45 percobaan
Singkatnya

Overfitting adalah menyetel aturan sampai cocok dengan noise sampel ujinya, sehingga catatannya tidak terbawa ke data baru. Penyebabnya percobaan: dari sepuluh konfigurasi tanpa edge nyata, yang terbaik diperkirakan menunjukkan Sharpe ratio in-sample sekitar 1,6, dan dengan data lima tahun, 45 percobaan bisa menghasilkan satu yang tampak ahli in-sample dan rata-rata nol di luarnya. Pertahanannya: catat setiap percobaan, sisihkan data yang tak pernah dilihat aturan, uji walk-forward, dan pilih plateau, bukan puncak.

Overfitting adalah menyetel aturan sampai cocok dengan noise sampel tempat aturan itu diuji, sehingga catatannya tidak terbawa ke data baru. Penyebabnya adalah percobaan, bukan satu tes tertentu — dan jumlah percobaan adalah bagian bukti yang hampir tidak pernah ditulis. Backtest terbaik dari sekian banyak adalah backtest yang angkanya paling sedikit berarti.

Bagian 11 dan 12 mengasumsikan satu catatan yang disimpan dengan jujur. Bagian ini membahas catatan yang tidak disimpan: versi-versi aturan yang dicoba lalu dibuang dalam perjalanan menuju versi yang ada di buku catatan. Versi-versi itu mengubah arti catatan yang tersisa, dan alat untuk menanganinya lebih tua daripada trading.

Cocok dengan sinyal, cocok dengan noise

Setiap kumpulan trade masa lalu berisi dua hal: apa pun yang berulang, dan apa pun yang terjadi sekali saja. Aturan dengan cukup banyak bagian yang bisa disetel dapat dibengkokkan agar cocok dengan keduanya.

Aturan yang cocok dengan sinyal, dan aturan yang cocok dengan noise Dua panel dengan tujuh titik tersebar yang sama, naik dari kiri ke kanan. Kiri: garis lurus melintasi sebaran itu, meleset sedikit dari setiap titik. Kanan: kurva berliku melewati setiap titik dengan tepat. Catatan: semua meleset tipis; mengenai setiap titik, dan tidak ada yang berikutnya. Cocok dengan sinyalsemua meleset tipisCocok dengan noisemenghafal tujuh titik InnoMP Research
Data yang sama. Garis lurus punya satu hal untuk dikatakan tentangnya dan mengatakannya juga tentang titik berikutnya. Kurva itu telah mempelajari di mana letak ketujuh titik ini, dan itu bukan informasi tentang titik kedelapan.

Dalam sebuah setup, bagian yang bisa disetel adalah parameternya: kelipatan ATR untuk stop, lookback, filter sesi, kedalaman pullback minimum, pengecualian hari tertentu yang ditambahkan setelah satu hari Jumat yang buruk. Masing-masing adalah sebuah kenop, dan setiap nilai yang dicoba pada data yang sama adalah satu peluang untuk mencocokkan sebuah kebetulan. Overfitting — curve fitting, dalam istilah lamanya — adalah apa yang telah terjadi pada setup ketika catatannya pada data penyetelan sangat bagus dan catatannya pada data lain biasa saja atau lebih buruk. Trader yang melakukannya jarang menyadari, karena dari dalam, setiap penyesuaian terasa seperti belajar.

Yang terbaik dari N bukanlah yang terbaik

Mekanismenya tidak rumit, dan sebuah makalah tahun 2014 di Notices of the American Mathematical Society oleh Bailey, Borwein, López de Prado, dan Zhu memberinya angka. Misalkan seorang peneliti mencoba N konfigurasi sebuah strategi, dan tidak satu pun punya edge nyata — semuanya punya Sharpe ratio sebenarnya nol. Yang terbaik dari N itu, diukur pada sampel, tidak akan menunjukkan nol. Ia akan menunjukkan perkiraan nilai maksimum dari N hasil kebetulan, dan angka itu naik seiring N.

Yang terbaik dari N percobaan, ketika tidak satu pun punya keahlian Lima batang vertikal untuk N sama dengan 2, 5, 10, 45, dan 100 percobaan, menunjukkan perkiraan Sharpe ratio in-sample dari percobaan terbaik ketika Sharpe ratio sebenarnya setiap percobaan nol: sekitar 0,5, 1,2, 1,6, 2,2, dan 2,5. Batangnya naik tajam di awal lalu melambat. terbaik dari N, semua tanpa keahlian0,51,21,62,22,5N = 251045100Sharpe ratio percobaan terbaik, in-sample InnoMP Research
Setiap konfigurasi tidak bernilai; yang terlihat paling bagus tidak demikian. Coba sepuluh dan pemenangnya diperkirakan menunjukkan Sharpe ratio tahunan sekitar 1,6 in-sample. Coba seratus dan angkanya 2,5. Angka itu adalah sifat dari berapa banyak yang dicoba, bukan sifat sang pemenang.

Sharpe ratio adalah versi dunia keuangan dari rasio yang sudah dipakai kelompok ini: rata-rata return dibagi sebaran return, disetahunkan — expectancy dibagi standar deviasinya, dalam satuan Bagian 11. Contoh dalam makalah itu adalah sepuluh konfigurasi, semuanya tanpa keahlian, yang terbaiknya diperkirakan menunjukkan Sharpe ratio in-sample 1,57. Trader diskresioner tidak menghitung Sharpe ratio, tetapi logikanya berlaku tanpa perubahan: yang terbaik dari sepuluh versi sebuah setup, yang disetel pada grafik tahun yang sama, punya expectancy yang menggelembung karena dipilih, dan error bar dari Bagian 11 — yang dihitung seolah itu satu-satunya versi — terlalu sempit sebesar jumlah yang bergantung pada sembilan versi yang dibuang.

Itulah seluruh masalahnya dalam satu kalimat. Catatan sang pemenang belum menjadi bukti tentang sang pemenang sampai jumlah yang kalah diketahui.

Minimum backtest length

Makalah itu mengubah aritmetika yang sama menjadi patokan praktis yang disebutnya minimum backtest length: jumlah tahun data yang dibutuhkan agar yang terbaik dari N percobaan tidak diperkirakan mencapai Sharpe ratio in-sample tertentu hanya karena kebetulan.

Berapa tahun data yang dibutuhkan sebelum percobaan terbaik berarti apa-apa Dua batang horizontal. Tujuh percobaan: data dua tahun. Empat puluh lima percobaan: lima tahun. Sebuah catatan menyebut angka-angka ini dari Bailey, Borwein, López de Prado, dan Zhu, 2014, pada perkiraan Sharpe ratio in-sample satu untuk percobaan terbaik yang tanpa keahlian. kebutuhan data per jumlah percobaan7 percobaan2 tahun45 percobaan5 tahunBailey, Borwein, López de Prado, Zhu (2014) InnoMP Research
Dengan data harian dua tahun, tujuh konfigurasi independen sudah cukup agar yang terbaik di antara yang tanpa keahlian diperkirakan menunjukkan Sharpe ratio in-sample 1. Dengan lima tahun, empat puluh lima. Patokan bagi trader adalah jumlah percobaan, dan patokan itu rendah.

Contoh dari makalah itu sendiri adalah dua yang ada di gambar: data lima tahun menopang tidak lebih dari sekitar empat puluh lima konfigurasi independen sebelum satu yang tanpa keahlian diperkirakan tampak seperti Sharpe ratio 1; data dua tahun menopang sekitar tujuh. Para penulis berhati-hati menyebut apa yang bukan arti angka itu. Angka itu mengasumsikan percobaannya independen, sehingga sifatnya konservatif — sepuluh nilai untuk kelipatan stop yang sama bukanlah sepuluh ide yang independen — dan ia syarat perlu, bukan syarat cukup: sebuah backtest bisa overfit pada sampel yang jauh lebih panjang dari batas minimum itu. Yang menjadi artinya adalah jawaban pertama atas pertanyaan yang jarang diajukan orang tentang sebuah catatan — berapa percobaan yang menghasilkannya — dan keluhan utama para penulis adalah bahwa angka itu hampir tidak pernah dilaporkan, baik dalam makalah akademis maupun oleh siapa pun yang menjual sebuah hasil, sehingga risiko overfitting mustahil dinilai dari hasilnya saja.

Bagi trader diskresioner, hitungannya kecil dan datanya pendek. Grafik empat jam setahun pada dua pair, dan setup yang kelipatan stop, filter sesi, dan kedalaman pullback-nya masing-masing dicoba pada tiga nilai, adalah dua puluh tujuh konfigurasi pada data satu tahun — sudah melewati garis makalah itu. Catatan sang pemenang mungkin tetap baik. Hanya saja, catatan itu belum menjadi bukti.

Sisihkan sebagian data

Obat tertua adalah menjauhkan sebagian data dari penyetelan.

In-sample dan out-of-sample Satu pita garis waktu. Bagian kiri yang lebih besar diarsir dan berlabel in-sample, setel di sini; bagian kanan yang lebih kecil diarsir berbeda dan berlabel out-of-sample, jalankan sekali. Garis putus-putus memisahkan keduanya. Sebuah catatan menyebut melihat untuk kedua kalinya menjadikannya in-sample. In-samplesetel di siniOut-of-samplejalankan sekalimelihat kedua kalinya menjadikannya in-sample InnoMP Research
Sisihkan rentang terakhir sebelum menyentuh satu parameter pun. Setel pada sisanya, bekukan aturannya, jalankan sekali pada rentang yang disisihkan, dan tulis apa yang terjadi. Jika aturan lalu disesuaikan dan dijalankan lagi, rentang yang disisihkan itu sudah dipakai untuk menyetel, dan kini ia in-sample.

Out-of-sample test adalah aturan yang dijalankan sekali, tanpa diubah, pada data yang tidak pernah dipakai untuk menyetelnya. Jika catatan out-of-sample-nya mirip catatan in-sample-nya — expectancy dengan orde yang sama, interval yang tumpang-tindih — aturan itu mempelajari sesuatu yang bertahan melewati data penyetelan. Jika catatannya runtuh, angka in-sample tadi adalah noise. Disiplinnya sepenuhnya ada pada kata sekali: data yang disisihkan habis terpakai begitu ia dilihat, dan penyesuaian apa pun yang dibuat setelah melihatnya menjadikan pengujian berikutnya in-sample menurut definisi. Makalah itu juga mencatat batas metode ini — data yang disisihkan tidak tahu berapa percobaan yang mendahuluinya, sehingga aturan yang lolos uji itu tetap saja yang terbaik dari N dalam arti yang lain — tetapi sebagai saringan pertama, cara ini menyingkirkan sebagian besar dari apa yang diuraikan bagian sebelumnya.

Forward test di tingkat Menengah adalah gagasan yang sama dengan data yang disediakan kalender alih-alih arsip: trade demo yang diambil secara real time tidak mungkin sudah dipakai untuk menyetel, karena trade itu belum terjadi.

Walk forward

Satu pembagian menghabiskan data sekali. Walk forward menghabiskannya berulang kali dan menghasilkan catatan out-of-sample yang lebih panjang dari sejarah data yang sama.

Walk-forward test: setel, uji, geser, ulangi Tiga baris pasangan batang yang melangkah ke kanan. Di setiap baris, jendela penyetelan yang panjang diikuti jendela uji yang lebih pendek. Setiap baris dimulai lebih lambat dari baris di atasnya sehingga jendela uji tidak tumpang-tindih. Baris keempat di bawah hanya menampilkan ketiga jendela uji yang disambung ujung ke ujung, berlabel disambung. setel · uji · gesersetelujidisambungsatu catatan out-of-sample, tak pernah disetel InnoMP Research
Setel pada satu jendela, uji pada rentang sesudahnya, geser keduanya ke depan, ulangi. Rentang-rentang uji tidak pernah tumpang-tindih dan tidak satu pun dipakai untuk menyetel. Disambung ujung ke ujung, semuanya menjadi satu catatan out-of-sample yang mencakup sebagian besar sejarah data — dan parameter yang dipilih di setiap jendela adalah catatan tersendiri.

Walk-forward test adalah out-of-sample test yang diulang sepanjang sejarah data: setel pada jendela pertama, uji pada periode sesudahnya, geser keduanya ke depan sepanjang periode uji, lalu sambungkan periode-periode uji itu. Catatan sambungan ini punya sifat yang penting — tidak ada bagiannya yang dipakai untuk menyetel — dan cukup panjang untuk punya error bar sendiri. Tes ini juga menghasilkan sesuatu yang tidak dihasilkan satu pembagian: urutan parameter yang dipilih di setiap jendela. Jika kelipatan stop yang hasil ujinya terbaik adalah 1,5 di satu jendela, 2,5 di jendela berikutnya, dan 1,2 di jendela ketiga, aturan itu tidak punya parameter yang stabil, dan menyetelnya ulang di setiap jendela itulah overfitting-nya, dilakukan sesuai jadwal.

Plateau, bukan puncak

Pertahanan terakhir menyangkut cara memilih parameter di dalam satu jendela, dan sama sekali tidak memerlukan data yang disisihkan.

Memilih parameter: plateau, bukan puncak Kurva hasil backtest terhadap kelipatan stop dari satu sampai tiga ATR. Kurvanya rendah di kedua tepi dan membentuk daerah tinggi yang lebar antara sekitar 1,4 dan 2,5, dengan satu lonjakan tajam di 1,8. Daerah lebar berlabel plateau, lonjakan berlabel puncak, dan sebuah catatan menyebut pilih di dalam plateau. hasil per kelipatan stop, 1–3 ATRpuncak: 1,8plateau: 1,4–2,51,02,03,0pilih di dalam plateau InnoMP Research
Sapu parameternya dan lihat bentuknya, bukan nilai maksimumnya. Daerah lebar tempat setiap nilai di sekitarnya berhasil adalah sifat pasar. Satu lonjakan adalah sifat sampel ini. Lonjakan itu akan menjadi angka terbaik di backtest dan yang pertama gagal.

Sapu sebuah parameter di sepanjang rentang wajarnya dan gambarkan hasilnya terhadap parameter itu. Aturan yang berhasil punya plateau: serangkaian nilai yang hasilnya mirip, karena ciri pasar yang ditangkap aturan itu tidak peka terhadap angka persisnya. Aturan yang cocok dengan noise punya puncak: satu nilai yang jauh lebih baik daripada nilai-nilai di sekitarnya, karena nilai itu kebetulan menangkap kebetulan-kebetulan sampel ini. Puncak selalu merupakan nilai maksimum, itulah sebabnya memilih nilai maksimum adalah kesalahannya. Pilih nilai di dalam plateau — di tengahnya, bukan titik terbaik di atasnya — dan aturan itu kehilangan sedikit di data penyetelan dan mempertahankan sebagian besarnya di tempat lain.

Poin penting Yang terbaik dari N percobaan diperkirakan tampak bagus karena kebetulan, dan seberapa bagus naik seiring N. Hitung percobaannya dan simpan hitungannya bersama catatan. Sisihkan sebagian data dan pakai sekali saja. Jalankan tes secara walk-forward dan baca urutan parameternya, bukan hanya catatan sambungannya. Di dalam satu jendela, pilih plateau, bukan puncak.

Log percobaan

Semua hal di atas bermuara pada satu tambahan untuk jurnal yang dibangun di kursus Psikologi Trading: log percobaan. Setiap konfigurasi yang dicoba, data tempat ia dicoba, hasilnya, dan alasan ia dibuang — termasuk yang hanya dicoba di kepala selama satu sore lalu ditinggalkan, karena inti makalah itu adalah bahwa percobaan semacam itu ikut dihitung. Log ini melakukan tiga hal. Ia memberi N, sehingga angka yang bertahan bisa dibaca terhadap jumlah yang kalah. Ia mencatat sapuan parameter, sehingga puncak bisa dibedakan dari plateau nanti, ketika sampelnya lebih panjang. Dan ia membuat penyesuaian terlihat sebagai penyesuaian, satu-satunya pertahanan terhadap perasaan, dari dalam, bahwa setiap penyesuaian adalah belajar.

Pengamatan terakhir makalah itu layak menjadi penutup. Ketika percobaan tidak dihitung, backtest yang bagus bukan sekadar tidak informatif; pada data yang punya memori — ketika periode yang dicocokkan cenderung diikuti oleh kebalikannya — para penulis menunjukkan bahwa perkiraan out-of-sample aturan yang overfit bernilai negatif. Peringatan lazim bahwa kinerja masa lalu tidak menunjukkan hasil di masa depan, tulis mereka, terlalu optimistis dalam keadaan itu. Catatan yang dipilih bukanlah sinyal yang lemah. Ia bisa menjadi sinyal yang menunjuk ke arah yang salah.

Posisi catatan sekarang

Kelompok ini selesai. Sebuah catatan kini membawa tiga hal yang belum dibawanya di akhir tingkat Menengah: error bar pada expectancy-nya, distribusi di sekitar drawdown-nya, dan jumlah percobaan di baliknya. Setup yang intervalnya melampaui biaya, yang ekor drawdown-nya sudah diperhitungkan dalam ukuran posisi, dan yang jumlah percobaannya kecil serta tertulis, punya edge dalam satu-satunya arti kata itu yang dipakai tingkat ini. Kelompok terakhir tingkat ini — Bagian 14 sampai 16 — mengambil setup yang sudah lolos dan mengubahnya menjadi sesuatu yang bisa dijalankan: sebuah tabel keputusan, aturan alert dan eksekusi, serta jadwal tinjauan dengan kriteria untuk menghentikannya.

Berikutnya: Dari aturan ke tabel keputusan — setiap keadaan pasar mendapat satu kolom, dan celah serta kontradiksi yang disembunyikan uraian kalimat pun terlihat.

Fakta utama
  • Di antara 10 konfigurasi yang Sharpe ratio sebenarnya nol, yang terbaik diperkirakan menunjukkan Sharpe ratio in-sample 1,57 (Bailey, Borwein, López de Prado, dan Zhu, 2014).
  • Dengan data 5 tahun, tidak lebih dari 45 konfigurasi independen boleh dicoba sebelum satu konfigurasi tanpa keahlian diperkirakan mencapai Sharpe ratio in-sample 1; dengan data 2 tahun, angkanya 7.
  • Jumlah percobaan di balik sebuah backtest hampir tidak pernah dilaporkan, sehingga risiko overfitting-nya mustahil dinilai dari hasilnya saja.
  • Kinerja out-of-sample aturan yang overfit diperkirakan sekitar nol jika deretnya tidak punya memori, dan negatif jika punya.
  • Out-of-sample test menyisihkan data yang tidak pernah dipakai untuk menyetel aturan; walk-forward test mengulang pembagian itu jendela demi jendela sepanjang sejarah data.

Pertanyaan yang sering diajukan

Apa itu overfitting dalam trading?

Mengubah-ubah parameter sebuah aturan — lookback, kelipatan, filter, sesi — sampai backtest-nya pada satu rentang data tampak sebagus mungkin, dengan akibat aturan itu mempelajari kebetulan-kebetulan rentang tersebut, bukan sesuatu yang berulang. Aturan yang overfit punya catatan luar biasa pada data tempat ia disetel, dan catatan biasa saja atau negatif pada semua data sesudahnya.

Berapa banyak percobaan backtest yang terlalu banyak?

Bergantung pada jumlah datanya. Bailey, Borwein, López de Prado, dan Zhu menunjukkan bahwa dengan data harian lima tahun, mencoba lebih dari sekitar 45 konfigurasi independen membuat besar kemungkinan satu konfigurasi yang sama sekali tanpa keahlian mencapai Sharpe ratio in-sample 1; dengan data dua tahun, sekitar tujuh percobaan sudah cukup. Angka ini peringatan, bukan izin: percobaan yang lebih sedikit pun tetap bisa overfit.

Apa itu out-of-sample test?

Menyisihkan sebagian data sebelum penyetelan apa pun — misalnya tahun terakhir — lalu menjalankan aturan yang sudah jadi di atasnya tepat satu kali, tanpa mengubah apa pun sesudahnya. Jika catatan out-of-sample mirip catatan in-sample, aturan itu mempelajari sesuatu yang bertahan. Jika runtuh, catatan in-sample tadi cocok dengan noise. Melihat data yang disisihkan untuk kedua kalinya setelah aturan disesuaikan menjadikan data itu in-sample.

Apa itu walk-forward test?

Out-of-sample test yang diulang sepanjang sejarah data: setel pada satu jendela, uji pada periode sesudahnya, geser keduanya ke depan, lalu sambungkan periode-periode yang diuji menjadi satu catatan yang tidak pernah dipakai untuk penyetelan. Tes ini memperlihatkan apakah parameter aturan stabil dari waktu ke waktu atau perlu disetel ulang di setiap jendela — yang dengan sendirinya merupakan tanda cocok dengan noise.

Apa bedanya dengan masalah ukuran sampel?

Ukuran sampel menyangkut satu catatan: seberapa jauh expectancy-nya bisa meleset dari yang sebenarnya. Overfitting menyangkut banyak catatan: jika sepuluh dibuat dan yang terbaik disimpan, expectancy yang terbaik itu menggelembung karena pemilihan, dan error bar-nya, yang dihitung seolah ia satu-satunya percobaan, terlalu sempit. Jumlah percobaan adalah bagian dari bukti, karena itulah log semua yang dicoba harus disimpan bersama catatan.

Sumber

  1. Bailey, Borwein, López de Prado, Zhu — Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance, Notices of the AMS 61(5), Mei 2014 — perkiraan Sharpe ratio maksimum dari N percobaan (1,57 pada N = 10), Minimum Backtest Length (45 percobaan untuk 5 tahun, 7 untuk 2), percobaan jarang dilaporkan, OOS negatif bila ada memoriams.org
InnoMP Research · Education Desk

Trading education from first principles — position sizing, risk, market structure and the habits that keep accounts alive. Written for someone who has never opened a chart, with a diagram at every step.

Terbit 25 Okt 2026 · Diperbarui 25 Okt 2026

Penafian: Informasi di situs web ini disediakan hanya untuk tujuan informasi umum. Informasi tersebut bukan nasihat investasi, penawaran, atau ajakan untuk membeli maupun menjual instrumen finansial, dan tidak disusun berdasarkan keadaan atau tujuan pribadi Anda. Perusahaan tidak bertanggung jawab atas kerugian yang timbul dari aktivitas trading. Bacalah dokumen hukum dan dapatkan nasihat profesional independen sebelum trading.

Catatan terkait