Apa sebenarnya backtesting itu
Sesuatu backtest mengambil satu set peraturan tetap — contohnya, syarat masuk, syarat keluar, dan saiz kedudukan — dan memainkannya semula pada set data sejarah seperti harga Bitcoin (BTC) lampau. Ia merekodkan dagangan apa yang akan dihasilkan oleh peraturan tersebut dan menghasilkan statistik seperti jumlah pulangan, kadar kemenangan (win rate), pengeluaran maksimum (drawdown), dan bilangan dagangan.
Idea terasnya mudah: jika sesuatu peraturan tidak mempunyai struktur yang berguna, ia sepatutnya tidak berkelakuan lebih baik daripada rawak pada data lampau. Backtesting ialah cara untuk memeriksa tingkah laku sejarah sesuatu peraturan secara boleh diukur dan boleh diulang, dan bukannya bergantung pada ingatan atau gerak hati tentang 'apa yang biasanya berlaku.'
Apa yang secara sah boleh ditunjukkan oleh sesuatu backtest
Sesuatu backtest paling boleh dipercayai sebagai alat deskriptif dan diagnostik, bukannya alat ramalan. Ia boleh mendedahkan berapa kerap sesuatu peraturan akan berdagang, berapa besar pengeluaran sejarah terburuknya, sejauh mana hasilnya sensitif terhadap kos, dan sama ada logiknya berjalan tanpa ralat pun.
Ia juga berguna untuk penyingkiran. Sesuatu peraturan yang berprestasi buruk sepanjang sejarah yang panjang dan pelbagai — atau yang hanya berkesan dalam satu tempoh yang sempit — jelas tidak menunjukkan keteguhan. Menyingkirkan idea selalunya merupakan penggunaan backtesting yang lebih jujur berbanding cuba mengesahkan bahawa idea kegemaran 'berkesan.'
Overfitting: perangkap utama
Overfitting berlaku apabila sesuatu strategi ditala begitu rapat dengan keanehan satu set data sejarah sehingga ia menangkap hingar (noise) dan bukannya sebarang corak yang tahan lama. Jika anda menguji ratusan gabungan parameter dan mengekalkan yang mempunyai pulangan lampau terbaik, kemungkinan besar anda telah memilih nasib, bukan kemahiran — beberapa gabungan memang sentiasa akan kelihatan bagus secara kebetulan.
Tanda-tanda amaran sudah biasa: banyak parameter yang boleh ditala, hasil yang runtuh apabila sesuatu tetapan dianjak sedikit, prestasi hebat yang tertumpu pada beberapa dagangan, dan peraturan yang berulang kali dilaraskan sehingga keluk ekuiti kelihatan menarik. Strategi yang overfit cenderung berprestasi jauh lebih buruk di luar sampel — pada data yang tidak digunakan untuk menalanya — dan lebih buruk lagi dalam dagangan langsung.
Bias lain yang menggelembungkan hasil backtest
Overfitting bukanlah satu-satunya masalah. Bias pandang ke hadapan (look-ahead bias) menggunakan maklumat yang tidak akan tersedia pada saat dagangan dibuat. Bias kemandirian (survivorship bias) hanya menguji aset yang masih wujud, mengabaikan yang telah gagal. Bias mengintai data (data-snooping bias) terkumpul apabila ramai orang menguji banyak idea pada sejarah yang sama dan hanya yang menang dilaporkan.
Geseran praktikal juga mudah ditinggalkan. Kos dagangan, yuran, gelinciran (slippage), spread, pembiayaan, dan kesukaran memenuhi pesanan besar dalam pasaran yang nipis boleh menukar peraturan yang menguntungkan di atas kertas menjadi peraturan yang merugikan. Sesuatu backtest yang mengandaikan pemenuhan sempurna pada harga ideal sedang mengukur pasaran yang tidak wujud.
Mengapa backtest yang bagus bukan suatu ramalan
Malah backtest yang disusun dengan teliti dan dikawal biasnya sekalipun menggambarkan masa lampau di bawah satu set keadaan tertentu. Pasaran berubah: kecairan, kemeruapan, peserta, dan peraturan semuanya beralih dari semasa ke semasa, dan sesuatu peraturan yang sesuai untuk satu rejim mungkin gagal dalam rejim lain. Prestasi lampau tidak membawa sebarang jaminan tentang masa hadapan, dan backtest kerap dilebih-lebihkan.
Inilah sebabnya kaedah dagangan ramalan secara umum — corak carta, Gelombang Elliott, aras Fibonacci, dan penunjuk teknikal seperti RSI atau MACD — dipertikaikan dan subjektif. Melakukan backtest terhadapnya boleh menjadikannya kelihatan tepat, tetapi tidak boleh menjadikannya meramalkan harga secara boleh dipercayai. Dagangan berisiko tinggi, dan penyelidikan secara konsisten menunjukkan bahawa kebanyakan pedagang runcit kehilangan wang dari semasa ke semasa.
Membaca data pasaran dengan konteks
Oleh sebab backtest boleh mengampu sesuatu strategi, sesetengah orang lebih suka turut melihat konteks data pasaran yang lebih luas dan bukannya harga semata-mata. BIKENZO ialah terminal data dan analitik Bitcoin yang memaparkan maklumat seperti kecairan berbanding harga BTC; konteks itu boleh membantu anda mentafsir sama ada sesuatu pergerakan sejarah berlaku dalam pasaran yang dalam dan cair atau yang nipis.
Ini ialah konteks, bukan isyarat atau ramalan. BIKENZO tidak memberitahu anda apa yang akan berlaku, tidak menjana dagangan, dan bukan tempat untuk berdagang — ia adalah kanta untuk memahami data di sebalik harga. Sebarang keputusan, dan sebarang risiko, kekal sepenuhnya milik anda sendiri.