Berjaya Backtesting Strategi Dagangan Algoritma - Bahagian II

Penulis:Kebaikan, Dicipta: 2019-03-21 14:09:21, Dikemas kini:

Dalam artikel pertama mengenai backtesting yang berjaya, kami membincangkan bias statistik dan tingkah laku yang mempengaruhi prestasi backtest kami. Kami juga membincangkan pakej perisian untuk backtesting, termasuk Excel, MATLAB, Python, R dan C ++. Dalam artikel ini, kami akan mempertimbangkan bagaimana memasukkan kos transaksi, serta keputusan tertentu yang perlu dibuat semasa membuat enjin backtest, seperti jenis pesanan dan kekerapan data.

Kos Transaksi

Salah satu kesilapan pemula yang paling lazim apabila melaksanakan model perdagangan adalah mengabaikan (atau sangat meremehkan) kesan kos transaksi pada strategi. Walaupun sering diasumsikan bahawa kos transaksi hanya mencerminkan komisen broker, sebenarnya terdapat banyak cara lain yang kos boleh terkumpul pada model perdagangan.

Komisen/Yuran

Bentuk kos transaksi yang paling langsung yang ditanggung oleh strategi perdagangan algoritma adalah komisen dan yuran. Semua strategi memerlukan beberapa bentuk akses ke bursa, sama ada secara langsung atau melalui perantara pembrokeran (broker). Perkhidmatan ini menimbulkan kos tambahan dengan setiap perdagangan, yang dikenali sebagai komisen.

Broker umumnya menyediakan banyak perkhidmatan, walaupun algoritma kuantitatif hanya benar-benar menggunakan infrastruktur pertukaran. Oleh itu komisen broker sering kecil berdasarkan setiap perdagangan. Broker juga mengenakan yuran, yang merupakan kos yang dikeluarkan untuk membersihkan dan menyelesaikan perdagangan. Selain itu adalah cukai yang dikenakan oleh kerajaan serantau atau nasional. Sebagai contoh, di UK terdapat cukai setem untuk membayar transaksi ekuiti.

Pergeseran/Latensi

Slippage adalah perbezaan harga yang dicapai antara masa apabila sistem dagangan memutuskan untuk berdagang dan masa apabila transaksi sebenarnya dijalankan di bursa. Slippage adalah komponen kos transaksi yang besar dan boleh membuat perbezaan antara strategi yang sangat menguntungkan dan yang berprestasi buruk. Slippage adalah fungsi dari turun naik aset yang mendasari, latensi antara sistem dagangan dan bursa dan jenis strategi yang dijalankan.

Instrumen dengan turun naik yang lebih tinggi lebih cenderung untuk bergerak dan oleh itu harga antara isyarat dan pelaksanaan boleh berbeza dengan ketara. Latency ditakrifkan sebagai perbezaan masa antara penjanaan isyarat dan titik pelaksanaan. Strategi frekuensi yang lebih tinggi lebih sensitif terhadap isu-isu latensi dan peningkatan milidetik pada latensi ini boleh membuat semua perbezaan terhadap keuntungan. Jenis strategi juga penting. Sistem momentum mengalami lebih banyak slippage secara purata kerana mereka cuba membeli instrumen yang sudah bergerak ke arah ramalan. Sebaliknya berlaku untuk strategi pembalikan purata kerana strategi ini bergerak ke arah yang bertentangan dengan perdagangan.

Kesan Pasaran/Kelikuiditi

Kesan pasaran adalah kos yang ditanggung oleh peniaga kerana dinamik bekalan / permintaan bursa (dan aset) di mana mereka cuba berdagang. Perintah yang besar pada aset yang agak tidak cair mungkin akan menggerakkan pasaran dengan ketara kerana perdagangan perlu mengakses komponen yang besar daripada bekalan semasa. Untuk mengatasi ini, perdagangan blok besar dipecah menjadi beberapa yang lebih kecil yang diperdagangkan secara berkala, apabila kecairan baru tiba di bursa. Di hujung yang bertentangan, untuk instrumen yang sangat cair seperti kontrak niaga hadapan indeks S&P500 E-Mini, perdagangan jumlah rendah tidak mungkin menyesuaikan harga semasa dalam jumlah yang besar.

Aset yang lebih tidak cair dicirikan oleh spread yang lebih besar, yang merupakan perbezaan antara harga tawaran semasa dan harga permintaan pada buku pesanan had. Spread ini adalah kos transaksi tambahan yang berkaitan dengan mana-mana perdagangan. Spread adalah komponen yang sangat penting dalam jumlah kos transaksi - seperti yang dibuktikan oleh segelintir syarikat taruhan spread UK yang kempen pengiklanan mereka menyatakan ketatnya spread mereka untuk instrumen yang banyak didagangkan.

Model Kos Transaksi

Untuk berjaya memodelkan kos di atas dalam sistem backtesting, pelbagai tahap model urus niaga yang kompleks telah diperkenalkan. Mereka berkisar dari pemodelan rata yang mudah hingga pendekatan kuadrat bukan linear. Di sini kita akan menggariskan kelebihan dan kekurangan setiap model:

Model kos urus niaga rata/tetap

Kos urus niaga rata adalah bentuk pemodelan kos urus niaga yang paling mudah. Mereka mengandaikan kos tetap yang berkaitan dengan setiap perdagangan. Oleh itu, mereka mewakili konsep komisen dan yuran broker yang terbaik. Mereka tidak sangat tepat untuk pemodelan tingkah laku yang lebih kompleks seperti slippage atau kesan pasaran. Sebenarnya, mereka tidak mempertimbangkan turun naik aset atau kecairan sama sekali. Manfaat utama mereka adalah bahawa mereka mudah diimplementasikan. Walau bagaimanapun, mereka cenderung untuk menganggarkan kos urus niaga secara signifikan bergantung pada strategi yang digunakan. Oleh itu, mereka jarang digunakan dalam amalan.

Model Kos Transaksi Linear/Piecewise Linear/Quadratic

Model kos urus niaga yang lebih maju bermula dengan model linear, meneruskan dengan model linear mengikut bahagian dan menyimpulkan dengan model kuadrat. Mereka terletak pada spektrum yang paling sedikit hingga paling tepat, walaupun dengan usaha pelaksanaan yang paling sedikit hingga terbesar. Oleh kerana seluncur dan kesan pasaran secara semula jadi adalah fenomena bukan linear, fungsi kuadrat adalah yang paling tepat dalam memodelkan dinamik ini. Model kos urus niaga kuadrat jauh lebih sukar untuk dilaksanakan dan boleh mengambil masa yang lebih lama untuk dihitung daripada model rata atau linear yang lebih mudah, tetapi mereka sering digunakan dalam amalan.

Pedagang algoritma juga cuba menggunakan kos urus niaga sebenar untuk strategi mereka sebagai input kepada model urus niaga semasa mereka untuk menjadikannya lebih tepat. Ini adalah perniagaan yang rumit dan sering menghampiri bidang-bidang yang rumit untuk memodelkan turun naik, slippage dan kesan pasaran. Walau bagaimanapun, jika strategi dagangan adalah urus niaga jumlah besar dalam tempoh masa yang singkat, maka anggaran yang tepat dari kos urus niaga yang ditanggung boleh mempunyai kesan yang signifikan pada garis bawah strategi dan oleh itu bernilai usaha untuk melabur dalam meneliti model ini.

Isu Pelaksanaan Backtest Strategi

Walaupun kos transaksi adalah aspek yang sangat penting dari pelaksanaan backtesting yang berjaya, terdapat banyak isu lain yang boleh mempengaruhi prestasi strategi.

Jenis Perintah Perdagangan

Satu pilihan yang mesti dibuat oleh peniaga algoritma adalah bagaimana dan kapan untuk menggunakan pesanan pertukaran yang berbeza yang tersedia. Pilihan ini biasanya jatuh ke dalam ranah sistem pelaksanaan, tetapi kami akan mempertimbangkannya di sini kerana ia dapat sangat mempengaruhi prestasi backtest strategi. Terdapat dua jenis pesanan yang boleh dijalankan: pesanan pasaran dan pesanan had.

Perintah pasaran melaksanakan perdagangan dengan serta-merta, tanpa mengira harga yang tersedia. Oleh itu, perdagangan besar yang dilaksanakan sebagai pesanan pasaran sering akan mendapat campuran harga kerana setiap pesanan had berikutnya di sisi lawan dipenuhi. Perintah pasaran dianggap sebagai pesanan agresif kerana hampir pasti akan dipenuhi, walaupun dengan kos yang tidak diketahui.

Perintah had menyediakan mekanisme untuk strategi untuk menentukan harga terburuk di mana perdagangan akan dilaksanakan, dengan peringatan bahawa perdagangan mungkin tidak dipenuhi sebahagiannya atau sepenuhnya. Perintah had dianggap sebagai pesanan pasif kerana mereka sering tidak dipenuhi, tetapi apabila mereka adalah harga yang dijamin. Kumpulan pesanan had pertukaran individu dikenali sebagai buku pesanan had, yang pada dasarnya adalah antrian pesanan beli dan jual pada saiz dan harga tertentu.

Apabila melakukan backtesting, adalah penting untuk memodelkan kesan menggunakan pesanan pasaran atau had dengan betul.

OHLC Data Idiosyncrasies

Terdapat isu-isu tertentu yang berkaitan dengan strategi backtesting apabila menggunakan data harian dalam bentuk angka Open-High-Low-Close (OHLC), terutama untuk saham. Perhatikan bahawa ini adalah bentuk data yang diberikan oleh Yahoo Finance, yang merupakan sumber data yang sangat biasa untuk peniaga algoritma runcit!

Set data murah atau percuma, sementara mengalami bias kelangsungan hidup (yang telah kita bincangkan dalam Bahagian I), juga sering makanan harga komposit dari pelbagai bursa. Ini bermakna bahawa titik melampau (iaitu terbuka, dekat, tinggi dan rendah) data sangat terdedah kepada nilai outlying kerana pesanan kecil di bursa serantau.

Ini bermakna jika strategi dagangan anda menggunakan mana-mana titik OHLC secara khusus, prestasi backtest boleh berbeza dari prestasi langsung kerana pesanan mungkin diarahkan ke bursa yang berbeza bergantung pada broker anda dan akses ke likuiditi yang ada.

Dalam beberapa artikel seterusnya kita akan mempertimbangkan pengukuran prestasi backtest, serta contoh sebenar algoritma backtesting, dengan banyak kesan di atas termasuk.


Lebih lanjut