8 November 2026 · penyelidikan

Backtest Anda Boleh Terlalu Boleh Diulang

Backtest Anda Boleh Terlalu Boleh Diulang

Backtest yang boleh diulang dengan sempurna boleh jadi kurang boleh dipercayai berbanding backtest yang berubah sedikit. Kebolehulangan membuktikan bahawa anda boleh mendapat jawapan yang sama dua kali; ia tidak memberitahu sama ada jawapan itu bergantung pada satu petikan data yang sewenang-wenangnya, keanehan pustaka, atau tetapan lalai yang tersembunyi.

Kedengarannya seperti hujah menentang kebolehulangan, tetapi bukan begitu. Bekukan pelaksanaan supaya anda boleh menerangkannya. Kemudian ubah secara sengaja andaian yang sepatutnya tidak menentukan hasil. Langkah pertama menjadikan hasil boleh diaudit; langkah kedua memberitahu sama ada hasil itu membawa makna.

Apakah yang sebenarnya dibuktikan oleh backtest yang boleh diulang?

Jika kod, data, konfigurasi dan benih rawak yang sama menghasilkan dagangan serta metrik yang sama, anda telah mengawal satu punca kekeliruan yang penting. “Penambahbaikan” oleh ejen boleh dibandingkan dengan pelaksanaan induknya. Pembaikan pepijat boleh dibezakan daripada perubahan jadual yuran. Rakan sekerja boleh menyemak lejar yang sama dan menemui isian yang sama.

Namun, hasil itu bergantung pada segala-galanya yang anda bekukan. Pertimbangkan strategi kripto yang fail sejarahnya mengandungi bar 1 minit. Anda menyimpan hash fail, menetapkan versi kod, lalu mendapat Sharpe 1.4 setiap kali pelaksanaan diulang. Jika vendor kemudian membetulkan beberapa candle, kebolehulangan yang kemas itu masih hanya menggambarkan fail lama. Ia tidak memberitahu sama ada isyarat itu kekal dalam sejarah yang telah dibetulkan, atau sama ada candle tersebut tersedia dalam bentuk itu pada masa berkenaan.

Hash itu berguna: ia menjadikan kebergantungan tersebut jelas. Namun, hash itu bukan bukti bahawa kebergantungan itu tidak memudaratkan.

Kekalkan pelaksanaan; cabar dapatan

Saya suka memisahkan dua soalan. Bolehkah kita membina semula pelaksanaan tepat ini? Dan adakah kesimpulan penyelidikan itu kekal apabila perubahan yang munasabah dibuat? Soalan pertama memerlukan rekod yang tidak berubah; soalan kedua memerlukan perubahan terkawal, satu demi satu.

Perkara yang perlu direkodkanPerkara yang perlu diubah selepas ituPerkara yang boleh didedahkan
Versi data mentah dan checksumSemakan vendor atau sumber keduaKebergantungan pada nilai yang dibetulkan atau khusus vendor
Komit kod dan versi pakejPelaksanaan yang setara dari segi angkaKepekaan terhadap susunan, pembundaran atau pustaka
Yuran, funding dan andaian isianJulat kos yang boleh dipertahankanSama ada kelebihan tipis memerlukan pelaksanaan yang luar biasa menguntungkan
Alam semesta pasaran dan keahlian berdasarkan titik masaPeraturan pasaran layak yang alternatifKebergantungan pada keputusan memasukkan atau mengecualikan pasaran

Sebagai contoh, katakan strategi niaga hadapan menunjukkan pulangan lebihan tahunan 8% dalam main semula asas. Jalankan semula dengan kos taker 25% lebih tinggi, funding dialihkan ke penyelesaian seterusnya yang diperhatikan, dan dua penyumbang terbesar dikeluarkan satu demi satu. Itu bukan tiga cara untuk menambah baik model. Itu ialah ujian: setiap satunya bertanya sama ada butiran yang munasabah sedang menyokong angka utama.

Pastikan setiap ujian berasingan. Jika anda mengubah data, jadual yuran dan masa pelaksanaan serentak, hasil yang lebih buruk tidak banyak membantu mengenal pasti puncanya. Jika sesuatu ujian tidak munasabah, labelkannya sebagai senario tekanan dan bukannya membentangkannya sebagai hasil yang berkemungkinan.

Jangan anggap kesamaan bait demi bait sebagai kebenaran angka

Sesetengah pengiraan sensitif terhadap susunan. Penambahan titik apung tidak bersifat asosiatif, jadi menjumlahkan banyak nilai P&L kecil dalam susunan berbeza boleh mengubah beberapa digit terakhir. Pengurangan selari, perkakasan dan versi pustaka semuanya boleh mempengaruhi output tepat. Biasanya kesannya tidak berbahaya; kadangkala perubahan angka yang kecil membalikkan ambang, mengubah posisi dan menyebabkan baki simulasi mengikuti laluan yang berbeza.

Sebab itulah saya akan mengekalkan artifak tepat serta toleransi untuk perbandingan. Rekodkan lejar dagangan, bukan Sharpe akhir sahaja. Bandingkan keputusan dan aliran tunai dahulu, kemudian metrik dalam lingkungan toleransi yang dinyatakan. Jika perbezaan satu sen mengubah sama ada pesanan dihantar, periksa sempadan itu secara khusus.

Rekod pelaksanaan yang berguna merangkumi identiti data dan kod, konfigurasi, benih rawak, persekitaran pelaksanaan, serta output perantaraan yang mencukupi untuk menjejak metrik kembali kepada isian dan aliran tunai. Skor akhir sahaja bukan artifak penyelidikan yang boleh diulang.

Bila perubahan sekadar hingar, dan bila ia menjadi dapatan

Tidak setiap angka yang berubah ialah krisis. Sedikit peralihan metrik akibat susunan pengurangan yang berbeza mungkin tidak mengubah dagangan. Dagangan yang berubah berhampiran ambang mungkin wajar disemak. Strategi yang kehilangan sebahagian besar hasilnya apabila vendor menyemak semula sebahagian kecil sejarah telah mendedahkan sesuatu tentang kerapuhannya sendiri, walaupun pelaksanaan asalnya kekal boleh diulang dengan sempurna.

Pengkritik semakan keteguhan betul dalam satu hal: anda mudah terus mengubah andaian sehingga strategi pilihan kelihatan teguh, atau menolak hasil yang kukuh kerana senario yang sengaja dibuat ekstrem mematahkannya. Tetapkan lebih awal variasi yang munasabah, laporkan keseluruhan set, dan bezakan pilihan biasa daripada senario tekanan. Kemudian kekalkan garis dasar supaya penyelidik lain boleh mengulang tepat apa yang anda lihat.

Kebolehulangan memberikan titik permulaan yang boleh diharap. Selepas itu, soalan yang berguna ialah: bahagian mana dalam jawapan itu kekal apabila keadaan di sekeliling pelaksanaan tersebut berubah dengan cara yang munasabah untuk dijangka?

kebolehulanganbacktestingkejuruteraan datapenyelidikan kuantitatif
← Semua catatan