12 November 2026 · eksekusi

Backtest Anda Terisi di Penutupan Resmi. Anda Tidak Pernah Masuk ke Lelang.

Backtest Anda Terisi di Penutupan Resmi. Anda Tidak Pernah Masuk ke Lelang.

Penutupan resmi dalam file ekuitas tampak seperti harga biasa. Timestamp 16:00:00 Eastern, satu angka, siap diisi. Sinyal harian menandainya. Rebalance menghantamnya. Agen riset akan memperlakukannya sebagai kuotasi yang sudah duduk di book, menunggu Anda.

Close adalah lelang, bukan kuotasi. Itu adalah harga uncrossing dari order on-close yang harus diterima sebelum cutoff. Jika backtest terisi di sana tanpa bergabung ke batch itu, ia mengambil print yang tidak akan Anda ikuti.

Mengisi 16:00 seolah-olah uncross adalah market order

Pintasan yang biasa: hitung sinyal pada atau tepat sebelum close, isi pada penutupan resmi, stempel 16:00. Pada Selasa yang sepi di AAPL, kebohongannya hanya beberapa sen. Pada hari-hari yang mendominasi buku rebalance harian, itu adalah seluruh perdagangannya.

Pada 16:00:00.000, closing cross sedang berjalan, atau baru saja selesai. Marketable order yang Anda kirim saat itu tidak masuk ke cross itu. Ia mendarat di apa pun yang tersisa: leftover displayed size, odd lot, extended hours di ARCA atau Nasdaq. Print itu bisa berjarak dua sen dari penutupan resmi, atau empat puluh basis poin, dan itu adalah pool likuiditas yang berbeda. Pada rekonstitusi Russell, akhir bulan, atau Jumat triple-witching, close sering kali merupakan porsi dua digit dari volume hari itu. Itu adalah likuiditasnya. Anda tidak berada di dalamnya.

3:50Cutoff on-close NYSE (ET)
3:55Cutoff closing-cross Nasdaq (ET)
~10%volume large-cap tipikal di close

Kami paper-trade ini secara tidak sengaja. Penyesuaian parameter mendarat pada 15:48. Backtest tetap mengisi setiap nama pada penutupan resmi. OMS mengirim market order biasa pada 16:00:03 karena tidak ada yang memasang MOC. Print after-hours, segelintir reject, dan shortfall 19 basis poin versus file pada hari ketika file mengatakan kami flat sampai close. Strateginya tidak rusak. Aturan fill-nya yang rusak.

Saya masih memikirkan 15:49 sebagai tempat fisik. Seseorang sedang mengubah bobot. Orang lain sedang mengawasi jam. Cutoff tidak peduli siapa di antara kalian yang benar.

MOC adalah order yang benar-benar meminta uncross itu, dan bahkan MOC bukan sebuah janji. Halt, jeda LULD, lelang yang dibatalkan, nama yang tidak pernah dibuka: Anda bisa flat pada 16:00 dengan on-close yang masih working lalu mati. LOC diizinkan miss sepenuhnya. Jika uncross adalah $40.12 dan limit Anda $40.00, Anda tidak memiliki apa pun. Banyak backtest tetap membukukan close.

Lebih buruk lagi, beberapa file vendor menyimpan close komposit yang tidak pernah tercetak di venue mana pun. Anda tidak bisa bergabung ke komposit. Jika strategi akan mengirim NYSE MOC, fill yang penting adalah uncross NYSE, dalam size yang akan diserap lelang.

Menyebut print jam reguler terakhir sebagai close

Beberapa pipeline menolak penutupan resmi secara prinsip dan mengambil print SIP terakhir sebelum 16:00, karena print itu setidaknya "terjadi." Pada mega-cap, last dan official sering terpaut satu atau dua sen dan Anda tidak akan menyadarinya. Pada mid-cap, print terakhir bisa 200 saham pada 15:59:51, ditandai oleh siapa pun yang mengangkat leftover display. Penutupan resmi dua detik kemudian adalah uncross satu juta saham pada harga yang berbeda.

Indeks, keranjang kreasi ETF, dan setiap rebalance MOC memperdagangkan uncross. Backtest Anda memperdagangkan leftover. Dan print terakhir tidak datang dengan size Anda terlampir. Jika print itu 400 saham dan clip Anda 5,000, Anda tidak mendapatkan harga itu. Anda mendapatkan timestamp yang kebetulan menjadi yang terakhir.

Saya pernah melihat file mid-cap di mana last-print versus penutupan resmi bergerak 28 sen pada Kamis rebalance. Backtest yang memakai last terlihat lebih "sadar mikrostruktur." Itu hanya pasar yang berbeda dan lebih tipis, dan tetap berasumsi kami bisa menjadi 200 saham itu.

Menggeser fill ke open besok agar tampak konservatif

Trik ketiga muncul di code review sebagai komentar: jangan asumsikan kita bisa trade close, jadi isi open berikutnya. Kedengarannya dewasa. Itu membangun strategi lain.

Sinyal close-to-close yang dieksekusi pada open berikutnya telah memakan overnight gap. Bagi banyak faktor ekuitas, gap itu adalah bagian besar dari pergerakan yang Anda kira Anda miliki. Mengisi open tidak membuat backtest menjadi hati-hati. Itu memindahkan P&L ke sesi yang tidak Anda rencanakan untuk diperdagangkan, dan menjatuhkan Anda ke lelang pembukaan yang juga tidak Anda modelkan.

Di atas kertas, kerusakannya mudah salah dibaca. P&L harian backtest masih selaras dengan sinyal. Buku paper menahan semalam gap indeks dan pagi slippage opening-cross. Orang kemudian berdebat tentang implementation shortfall padahal deskripsi jujurnya adalah kedua sistem tidak melakukan perdagangan yang sama.

Tetapi open juga adalah lelang. Jika Anda melewatkan cutoff kemarin, Anda tidak otomatis mendapatkan last 9:30 yang bersih. Anda mendapatkan mekanika MOO/LOO, imbalance, dan gap. Menyebut itu fill close yang konservatif hanya menyembunyikan cross kedua yang tidak dimodelkan di balik komentar yang terkesan bijak.

Fill yang Anda bukukanApa yang sebenarnya dibutuhkan venueSeperti apa kerusakannya
Penutupan resmi, tanpa tipe orderMOC atau LOC diterima sebelum cutoff venue ituPrint after-hours, reject, atau harga komposit yang tidak di-host siapa pun
Print SIP terakhir sebelum 16:00Perdagangan yang bisa Anda ikuti, dalam size AndaLeftover 200 saham yang diperlakukan sebagai fill clip
Open berikutnya sebagai close yang "lebih aman"Model opening-cross, plus overnight gapStrategi berbeda, tetap lelang, tetap terlewat
Jika akun paper tidak dapat mengirim MOC atau LOC, backtest tidak mendapatkan penutupan resmi. Ubah fill-nya. Jangan memperkirakan uncross dengan market order 16:00.

Pemisahan yang jujur itu kecil. Entah kontrak riset mengatakan kami berada di close, dalam hal ini order-nya on-close, di-timestamp sebelum 15:50 di NYSE atau 15:55 di Nasdaq, disesuaikan ukurannya terhadap volume close yang diharapkan, dan diizinkan kedaluwarsa tanpa terisi jika itu LOC. Atau kami tidak berada di close, dalam hal ini after-hours atau next-open adalah kebijakan bernama dengan lelangnya sendiri, dan kurva ekuitas berhenti memakai label 16:00.

Kami sekarang menggagalkan backtest yang membukukan penutupan resmi tanpa order on-close yang duduk di dalam cutoff untuk venue itu. Itu telah membunuh beberapa kurva sinyal harian yang cantik. Kurva-kurva itu tidak pernah bisa dieksekusi pada harga yang mereka klaim.

backtestingmikrostruktur pasarekuitaslelang penutupaneksekusi
← Semua artikel