5.1 Makna dan perangkap backtesting

Penulis:Kebaikan, Dicipta: 2019-06-25 13:38:05, Dikemas kini: 2023-11-09 20:44:21

img

Ringkasan

Backtesting adalah tempat yang paling berbeza antara perdagangan kuantitatif dan perdagangan tradisional. Menurut data pasaran sebenar yang telah berlaku dalam sejarah, isyarat strategi simulasi mencetuskan dan sepadan dengan urus niaga dengan cepat, dan laporan prestasi dan data lain diperoleh untuk jangka masa tertentu.

Makna backtesting

Dalam bab-bab sebelumnya, kita belajar asas-asas bahasa pengaturcaraan arus perdana, dan mengajar anda bagaimana menggunakan asas pengaturcaraan ini untuk menulis beberapa strategi perdagangan yang mudah. Kita boleh mengatakan bahawa jalan telah berjalan lebih daripada separuh. Walau bagaimanapun, setelah strategi ditulis, yang masih jauh dari persekitaran pasaran sebenar. Ia juga memerlukan backtesting berterusan debugging backtesting debugging dan sebagainya, sehingga strategi dapat melaksanakan sepenuhnya kandungan model dan berjalan lancar.

Dari perspektif logika perdagangan kuantitatif, Strategi perdagangan sebenarnya berdasarkan satu siri pengetahuan dan andaian pasaran. Ujian belakang dapat menentukan sama ada andaian ini stabil atau tidak. Dalam masa ketidakstabilan sejarah, ia boleh membawa apa jenis kerugian? serta untuk mencegah pengambilan keputusan kerugian ini.

img

Di samping itu, dari perspektif operasi perdagangan kuantitatif, pengujian belakang dapat membantu mengesan bug dalam logik strategi, seperti fungsi masa depan, harga tergelincir, pemasangan pelbagai darjah, dan sebagainya.

  • Semak ketepatan isyarat perdagangan.

  • Memastikan bahawa logika perdagangan dan idea anda adalah layak.

  • Menemui kecacatan dalam sistem perdagangan dan memperbaiki strategi asal.

Jadi, maksud backtesting adalah melakukan proses perdagangan yang benar mungkin, mengesahkan kesahihan data sejarah, mengelakkan kesilapan mahal untuk strategi yang salah, membantu kita menapis, meningkatkan dan mengoptimumkan strategi perdagangan.

Patung Ujian Kembali

  • Perangkap Sinyal perdagangan tidak stabil

Strategi dagangan adalah berdasarkan data sejarah statik semasa backtesting, tetapi data perdagangan sebenar adalah dinamik. Sebagai contoh: Jika harga tertinggi lebih besar daripada harga penutupan semalam, buka kedudukan panjang. Syarat kedudukan terbuka ini di pasaran sebenar, jika garis K belum selesai, maka harga tertinggi adalah dinamik, isyarat perdagangan mungkin akan berkedip ke depan dan ke belakang. Semasa backtesting, enjin backtesting adalah berdasarkan data sejarah statik yang boleh disimulasikan dan disintesis.

  • perangkap fungsi Masa Depan

Fungsi masa depan menggunakan harga masa depan, yang bermaksud bahawa keadaan semasa boleh diubahsuai pada masa akan datang, dan fungsi masa depan yang sama juga boleh menyebabkan isyarat perdagangan tidak stabil, seperti penunjuk zigzag

Seperti yang ditunjukkan di bawah: Fungsi penunjuk zigzag menunjukkan titik perubahan puncak dan lereng. Ia boleh menyesuaikan nilainya sendiri mengikut harga masa nyata terkini, tetapi jika harga semasa berubah, hasil fungsi giliran zigzag juga akan berubah. Jika anda menggunakan penunjuk ini dengan fungsi masa depan tersebut, isyarat pesanan semasa boleh disiapkan dan diletakkan, tetapi isyarat ini mungkin tidak dapat diukur kemudian.

img

  • perangkap mencuri harga

tingkah laku yang dipanggil mencuri harga merujuk kepada penggunaan harga masa lalu untuk berdagang. Sebagai contoh: Jika harga tertinggi lebih besar daripada harga tetap tertentu untuk membuka kedudukan dengan menggunakan harga pembukaan. Syarat kedudukan pembukaan ini adalah mencuri harga, kerana di pasaran sebenar, apabila harga tertinggi lebih besar daripada harga tertentu, harga mungkin lebih tinggi daripada harga pembukaan jarak tertentu, dan kemudian menggunakan harga pembukaan untuk membuka kedudukan adalah mustahil. Walau bagaimanapun, dalam persekitaran backtesting, anda boleh secara hipotetis membuka kedudukan pada harga pembukaan.

Terdapat juga kes lain di mana jika jurang harga melompat di atas harga tetap yang ditetapkan oleh strategi, dalam persekitaran backtesting, isyarat perdagangan akan berlaku dan boleh dilaksanakan; tetapi di pasaran sebenar, ia jelas tidak boleh dilaksanakan.

  • Perangkap Harga perdagangan mustahil

Harga dagangan mustahil boleh dibahagikan kepada beberapa kes:

Jenis pertama: Di pasaran sebenar, beberapa bursa mempunyai had harian kenaikan harga maksimum dan penurunan sekatan.

Kedua: mekanisme pencocokan pesanan pertukaran, yang adalah keutamaan harga dan keutamaan masa. Beberapa jenis kedalaman pesanan pasaran sering mempunyai sejumlah besar pesanan yang menunggu pelaksanaan. Di pasaran sebenar, anda perlu menunggu pesanan yang sebelum anda meletakkan untuk pelaksanaan, kadang-kadang pesanan anda tidak akan dilaksanakan. Tetapi dalam persekitaran backtesting, pesanan yang menunggu akan dilaksanakan pada mana-mana harga tanpa menunggu.

Ketiga: Untuk strategi arbitraj, keuntungan backtesting biasanya sangat tinggi, kerana setiap kali operasi backtesting telah diasumsikan telah merebut semua harga spread. Dalam keadaan sebenar, kebanyakan harga tidak mungkin dilaksanakan, atau kadang-kadang hanya satu arah atau satu sasaran perdagangan tindakan perdagangan dilaksanakan, secara umum, ia hampir pasti arah atau sasaran perdagangan yang kondusif akan dilaksanakan terlebih dahulu, maka anda harus segera cuba melaksanakan arah yang bertentangan atau pelbagai pesanan strategi arbitraj. walaupun dengan tempoh kelewatan yang singkat, penyebaran peluang perdagangan ini mungkin telah menelan lebih daripada 1 atau 2 mata harga, sementara keseluruhan strategi arbitraj spread hanya mendapat sedikit mata keuntungan. situasi seperti ini sangat sukar untuk backtest dalam persekitaran simulasi. keuntungan sebenar jauh dari hasil backtesting.

Keempat: Kejadian Black swan. Seperti yang ditunjukkan lingkaran merah dalam gambar berikut, franc Switzerland dalam acara black swan pertukaran asing, walaupun di permukaan terdapat harga pembukaan, harga tertinggi, harga terendah dan harga penutupan. sebenarnya, situasi pasaran yang melampau datang dengan garis k yang sebahagian besarnya adalah vakum, banyak pesanan stop-loss menyebabkan kejadian stampede, kecairan hampir sifar, untuk perintah untuk melaksanakan sangat sukar, tetapi dalam persekitaran backtesting, adalah mungkin untuk menghentikan kerugian.

img

  • perangkap over-fitting

Setiap kali saya melihat gambar berikut, kedua-dua hati dan fikiran saya terhibur. gambar ini menunjukkan kepada kita makna yang benar, model yang tidak masuk akal, cukup kompleks, disesuaikan dengan sempurna dengan data apa pun.

img

Untuk perdagangan kuantitatif, backtesting adalah berdasarkan data sejarah, tetapi sampel data sejarah adalah terhad.

Proses pemodelan strategi kuantitatif pada dasarnya adalah proses mencari data bukan rawak tempatan dari sebilangan besar data yang seolah-olah rawak.

Jadi jangan menipu diri anda. Jika anda mendapati data prestasi yang buruk di luar sampel, jangan merasa kasihan atau tidak mahu mengakui bahawa model tidak berfungsi, dan terus mengoptimumkannya sehingga data sampel di luar juga dilakukan sebaik di dalam. ia akhirnya akan merosakkan wang sebenar anda.

  • perangkap survivor bias

Wall Street mempunyai jenaka popular: Anggaplah terdapat 1,000 monyet di pasaran yang mengambil bahagian dalam pelaburan. Pada tahun pertama, 500 monyet hilang ke pasaran. Setengah tahun kedua, terdapat 250 monyet yang tersisa. Pada akhir tahun ketiga, terdapat 125 monyet yang tersisa.

img

Pada tahun kesembilan, monyet terakhir tinggal. kemudian anda melihatnya, semakin anda melihatnya, semakin anda rasa wajahnya dikenali. akhirnya, anda melihat sampul majalah kewangan dan berteriak "Hei, itu Warren Buffett?

walaupun ini hanya jenaka, anda masih boleh memetakan ia kepada situasi dunia sebenar. contohnya, jika ada 1000 pengurus dana, selepas 10 tahun, kira-kira 10 pengurus dana akan melebihi pasaran selama 10 tahun berturut-turut. ini mungkin disebabkan oleh nasib dan keputusan rawak, kemahiran pengurus dana ini tidak ada kaitan dengannya.

Seperti laporan backtest di bawah, kebanyakan pelabur akan memilih angka di sebelah kiri. yang mempunyai prestasi yang sangat kukuh tanpa retracement yang ketara.

img

tetapi sila tunggu, seperti yang ditunjukkan di sebelah kanan, yang merupakan keadaan sebenar. lengkung di sebelah kiri hanya yang terbaik di antara banyak backtests ini. iaitu, terdapat banyak prestasi yang jauh lebih buruk daripada keadaan kiri.

  • Perangkap kos kesan

Dalam persekitaran perdagangan sebenar, harga sentiasa turun naik. Apabila anda optimis tentang peluang perdagangan, harga mungkin telah berubah pada saat meletakkan pesanan. jadi masalah slippage, sama ada dalam perdagangan subjektif atau dalam perdagangan kuantitatif, tidak dapat dielakkan.

Tetapi backtesting berdasarkan data statik, sukar untuk mensimulasikan persekitaran perdagangan sebenar. Sebagai contoh: harga pesanan adalah 1050 untuk membeli, tetapi harga dagangan sebenar mungkin 1051. Terdapat banyak situasi untuk fenomena ini, seperti: vakum kecairan dalam pergerakan harga yang melampau, kelewatan rangkaian, kelewatan sistem perkakasan dan perisian, kelewatan tindak balas pelayan, dll.

Ujian balik tanpa tergelincir

img

Seperti yang ditunjukkan di atas, adalah laporan backtest tanpa slippage, kurva keuntungan kelihatan baik, tetapi terdapat perbezaan antara backtest dan perdagangan sebenar di pasaran sebenar. oleh itu, untuk mengurangkan kesilapan ini semasa backtest, kami menambah dua titik slippage, untuk meningkatkan atau mengurangkan harga beli dan jual.

Ujian belakang dengan gelinciran

img

Seperti yang ditunjukkan di atas, strategi yang sama, jika ditambah dengan 2 mata seluncur, hasil backtesting dengan dan tanpa seluncur sangat berbeza, yang bermaksud bahawa strategi ini perlu ditingkatkan atau ditinggalkan.

Ringkasnya

Beberapa orang mungkin bertanya, memandangkan terdapat begitu banyak masalah dalam perdagangan kuantitatif, bagaimana saya boleh membuktikan bahawa strategi saya ok? jawapannya mudah, kita mesti pertama simulasi perdagangan oleh strategi ini beberapa masa sebelum menggunakan wang sebenar, jika harga perdagangan dan situasi simulasi perdagangan hampir sama dengan logik strategi, maka ia sekurang-kurangnya membuktikan logik strategi tidak mempunyai masalah.

Walau apa pun, untuk pemaju sistem perdagangan yang berpengalaman, backtesting adalah perkara yang mesti dilakukan. Kerana ia dapat memberitahu anda sama ada idea strategi dapat disahkan dalam data sejarah. Tetapi banyak kali backtesting tidak bermakna masa depan akan menguntungkan. Kerana terdapat terlalu banyak lubang dalam backtesting, selepas anda membayar harga, anda akan memahaminya. Dan semua pelajaran ini ditumpuk dalam wang sebenar.

Latihan selepas sekolah

  1. Apa itu overfitting dan bagaimana untuk mengelakkannya?

  2. Apakah contoh Survivor bias dalam kehidupan sebenar?


Berkaitan

Lebih lanjut