Alex — Anda mengirim dua kurva ekuitas dan sebuah keluhan. Strategi breakout harga tertinggi 20 hari tampak rapi dalam backtest. Akun paper trading, yang menjalankan kode sama pada saham yang sama, hanya mengambil sekitar setengah jumlah entry, lalu terkena stop pada hari-hari yang sama sekali tidak bermasalah dalam backtest. Anda bertanya apakah gateway paper trading kami menjatuhkan order. Tidak. Bar harian Anda melebur dua sesi menjadi satu dan melabeli hasilnya sebagai satu hari.
Saya mengambil saham mid-cap yang Anda lingkari dari tanggal 22 Oktober. Harga tertinggi harian dari vendor adalah $41.86. Pada jam reguler, harga tidak pernah menembus $41.12. Harga $41.86 itu berasal dari transaksi 800 saham pada pukul 7:41 PM waktu Eastern, di tengah spread 22 sen. Sinyal Anda menandai harga tertinggi baru dalam 20 hari dan mengantrekan order beli untuk pembukaan berikutnya. Sesi paper trading, yang kami jalankan pukul 9:30 hingga 16:00 waktu Eastern kecuali Anda mengubah pengaturannya, tidak pernah melihat breakout itu. Tidak ada yang bisa dibeli.
Harga tertinggi yang mana pada baris itu?
Untuk saham AS, data harian adalah kemudahan yang disediakan vendor. Anda bisa menerima setidaknya tiga bar berbeda untuk tanggal kalender yang sama, dan sebagian besar ekspor CSV tidak memberi tahu bar mana yang Anda dapatkan.
| Bar | Waktu | Asal harga tertinggi/terendah | Arti transaksi pada harga tertinggi itu |
|---|---|---|---|
| Jam reguler | 9:30-16:00 ET, ditambah dua lelang | Order book kontinu dan pencocokan saat pembukaan/penutupan | Bertransaksi pada sesi reguler, sering kali dalam lelang |
| Diperpanjang | Sekitar 4:00-9:30 dan 16:00-20:00, bergantung pada broker | Transaksi tipis sebelum pasar buka dan setelah pasar tutup | Sesi yang mungkin tidak diizinkan untuk akun tunai Anda |
| Gabungan | Apa pun yang dirangkai oleh vendor | Campuran hal-hal di atas, kadang termasuk lot ganjil dan transaksi TRF | Transaksi yang mungkin hanya melibatkan 80 saham pada kuotasi dengan spread lebar |
Kripto mengajari Anda untuk menganggap tengah malam UTC sebagai awal hari perdagangan. Saham tidak terikat pada aturan itu. Mesin pencocokan yang benar-benar bisa Anda akses melalui akun tunai long-only beroperasi selama enam setengah jam pencocokan kontinu dan dua lelang. Selebihnya melibatkan pelaku pasar yang berbeda, spread yang berbeda, dan sering kali harga terakhir yang berbeda.
Saya masih menyimpan direktori berisi CSV Yahoo dari 2015, saat saya yakin punya strategi Donchian yang bagus untuk saham bioteknologi kecil. Harga tertingginya berasal dari transaksi setelah jam bursa yang dipicu peristiwa biner. Saya sebenarnya membacktest kepanikan orang lain atas 200 saham dan menyebutnya kanal harga. Anda melakukan hal serupa dengan cara yang lebih terhormat dan memakai feed berbayar.
Jika agen riset Anda meminta OHLCV harian kepada vendor tanpa menanyakan sesinya, anggap datanya gabungan. Agen memilih setelan bawaan yang praktis. Kepraktisan itulah yang membuat transaksi pukul 7:41 PM masuk ke dalam breakout.
Mengapa paper trading tampak bermasalah dalam dua arah
Begitu sesi dalam file tidak cocok dengan sesi pada akun, dampaknya bukan sekadar jumlah transaksi yang kurang. Ada tiga jenis penyimpangan, dan Anda mengalami ketiganya.
- Breakout terjadi pada harga tertinggi di luar jam reguler. Backtest masuk pada pembukaan reguler berikutnya. Paper trading tidak pernah mendapat sinyal. Itulah delapan entry yang hilang.
- Stop dipasang di bawah harga terendah kemarin, dengan harga terendah kemarin diambil dari bar gabungan. Backtest sudah keluar saat terjadi lonjakan harga setelah jam bursa. Paper trading, yang hanya mencatat jam reguler, tetap menahan posisi hingga hari yang ditunjukkan backtest sebagai hari tanpa posisi.
- Stop sebaliknya: paper trading mencatat harga terakhir termasuk sebelum pasar buka, transaksi pukul 5:10 AM mengeluarkan Anda, sementara backtest jam reguler masih mempertahankan posisi karena transaksi itu tidak ada di barnya.
Kasus stop lebih menyakitkan daripada breakout yang terlewat. Entry yang terlewat terlihat sebagai jumlah transaksi yang lebih sedikit. Stop yang terpicu di pasar dengan tujuh orang di dalamnya terlihat sebagai nilai transaksi yang berbeda pada posisi yang memang Anda ambil. Itulah sebabnya Anda menyalahkan gateway.
Pada bar 1-menit, bug yang sama lebih sulit terlihat. Filter berdasarkan sesi di America/New_York. Jika file tidak memiliki tag sesi, filter itu hanya hiasan.
Tetapkan sesi sebelum mengubah lookback
Saya menjalankan ulang harga tertinggi 20 hari Anda dengan bar harian jam reguler, nama saham yang sama, dan tanggal yang sama. Enam breakout tersisa. Itulah yang ada di akun paper trading. Delapan sisanya berasal dari transaksi yang harus Anda ambil pada pukul 7:41 PM sebanyak 800 saham. Jangan habiskan seminggu untuk menyesuaikan parameter slippage paper trading akibat ketidakcocokan sesi.
Untuk setiap seri saham, cantumkan tiga boolean dalam kontrak riset: includes_premarket, includes_afterhours, includes_odd_lots. Lalu pilih sesi yang memenuhi syarat untuk strategi dan pastikan model fill berjalan dalam sesi itu. Jika Anda memang ingin bertransaksi di luar jam reguler, nyatakan dengan jelas dan sesuaikan ukuran posisi dengan kondisi pukul 7:41 PM: spread lebih lebar, pembatalan lebih lambat, dan order book yang tampak seperti kuotasi padahal sebenarnya hanya satu lot.
Jika vendor tidak bisa memberi tahu sesi yang digunakan untuk baris harian, anggap datanya gabungan sampai mereka bisa menjelaskannya. Tanyakan secara tertulis. Grafik web tidak akan menjawabnya. Dan jika nanti Anda memutuskan strategi harus bertransaksi saat penutupan, itu topik lain: harga penutupan resmi ditentukan melalui lelang yang harus Anda ikuti.
Jalankan lagi dengan sesi yang sudah ditetapkan. Setelah itu, kita bisa membahas enam breakout yang tersisa.
← Semua artikel


