Isi artikel

Bukti dan cakupan

Makalah ini melaporkan total return +1,985%, 19.6% IRR, Sharpe 1.33 dan penurunan maksimum 25% untuk Mei 2007–April 2024, termasuk komisi dan slippage yang dinyatakan. Ini adalah hasil yang dilaporkan oleh penulis; tidak ada backtest independen yang dijalankan di sini. [1]

Data dan pasarRiset utama menggunakan data menit SPY. ETF dan struktur sesi lainnya memerlukan kalibrasi dan validasi terpisah.
Kerangka waktu risetRentang harga intraday diperkirakan dari 14 sesi sebelumnya; keputusan diambil pada titik pemeriksaan setengah jam yang ditentukan.
Jarak di atas ambang entri long berubah menjadi positif dan kemudian negatif pada titik pemeriksaan keputusan, yang menggambarkan masuk dan keluar yang terjadwal.Buka ilustrasi ukuran penuh
Data sintetis. Sumbu vertikal adalah harga penutupan minus max(upper band, VWAP), dalam dolar, bukan harga SPY. Penanda menunjukkan titik pemeriksaan keputusan; nilai positif di antara titik pemeriksaan itu sendiri tidak menciptakan pesanan.

Alur kerja praktis

Alur kerja untuk SPY Noise Bands dan Momentum VWAP: Rancangan Riset
Langkah lengkap dijelaskan di bawah. Pada setiap tahap, data yang tidak lengkap atau syarat yang gagal harus disertai alasan penolakan yang dicatat.
  1. Siapkan sejarahSejajarkan 14 sesi sebelumnya berdasarkan waktu jam dan hitung volatilitas harian.
  2. Buat pitaSebagai acuan untuk pembukaan dan penutupan sebelumnya dengan perlakuan aksi korporasi yang konsisten.
  3. Pembaruan VWAPGunakan hanya volume sesi saat ini yang telah diterima.
  4. Evaluasi sesuai jadwalSetelah bar checkpoint ditutup, tetapkan target long, short, atau tanpa posisi.
  5. Laksanakan dan likuidasiHitung biaya semua perubahan posisi dan tutup seluruh posisi sebelum batas waktu sesi.
  6. Kontribusi terpisahBandingkan band, VWAP, dan ukuran posisi pada data evaluasi yang belum pernah digunakan.

Selubung waktu spesifik, bukan pita persentase konstan.

Volatilitas pembukaan dan volatilitas siang hari memiliki distribusi yang berbeda. Konsep noise-band mengukur pergerakan absolut normal dari pembukaan sesi secara terpisah pada setiap waktu intraday. Pengamatan di akhir pagi dibandingkan dengan pengamatan di akhir pagi dari sesi sebelumnya, bukan dengan urutan bergulir dari menit-menit yang berdekatan.

Untuk waktu jam k, definisikan sigma(d, k) = mean(abs(P(d−j, k)/Open(d−j)−1), j=1…14). Menggunakan hanya sesi sebelumnya yang telah selesai membuat garis dasar menjadi kausal. Batas atas adalah U(d, k)=max(Open(d), PreviousClose(d))×(1+sigma(d, k)); Nilai yang lebih rendah adalah L(d, k)=min(Open(d), PreviousClose(d))×(1−sigma(d, k)). Anchor yang peka terhadap celah memperlebar rentang band di sepanjang celah semalaman.

Sigma ini adalah pergeseran absolut rata-rata, bukan deviasi standar dari pengembalian per menit. Menggantinya dengan indikator volatilitas bergulir konvensional akan mengubah sinyal. Gap pembukaan yang besar juga memiliki efek yang berbeda dari pergerakan besar setelah pembukaan karena jangkar dan pergeseran intraday memainkan peran yang berbeda.

Hipotesis strateginya adalah persistensi setelah pergerakan harga melampaui fluktuasi intraday yang biasa. Strategi ini dapat gagal ketika lonjakan harga akibat berita berbalik arah, ketika 14 sesi sebelumnya meremehkan volatilitas saat ini, atau ketika harga berulang kali melewati batas. Tidak satu pun dari hasil tersebut dapat dikesampingkan oleh breakout dengan volume tinggi.

Penyelarasan data menentukan apa yang dapat diketahui.

Studi ini menggunakan data menit IQFeed. Hasil yang dilaporkan mencakup komisi $0.0035 dan slippage per saham $0.001. [1] Itu adalah asumsi eksplisit dan bukan jaminan bahwa setiap pesanan historis dapat dieksekusi dengan biaya tersebut.

Susun matriks historis berdasarkan sesi bursa dan waktu jam. Hari libur, transisi waktu musim panas, dan sesi yang dipersingkat perlu ditangani dengan mempertimbangkan kalender. Observasi 10:00 yang hilang tidak sama dengan pengembalian nol. Nyatakan apakah sesi historis yang tidak lengkap dikecualikan atau apakah keputusan saat ini dinonaktifkan.

Gunakan konvensi aksi korporasi yang konsisten untuk harga pembukaan, penutupan sebelumnya, dan harga historis. Mencampur penutupan sebelumnya yang disesuaikan dengan pembukaan saat ini yang tidak disesuaikan dapat menciptakan kesenjangan. Simpan rangkaian eksekusi mentah secara terpisah dari rangkaian yang telah diubah yang digunakan untuk memperkirakan pengembalian.

Sesi VWAP hanya boleh menggunakan transaksi yang diterima atau bar yang telah selesai. Perkiraan berbasis bar dapat menggunakan harga tipikal, (H+L+C)/3, yang diberi bobot berdasarkan volume bar; ini berbeda dari tolok ukur tingkat transaksi. Perbedaan tersebut harus diukur jika data resolusi lebih tinggi tersedia, terutama untuk bar dengan rentang yang lebar.

Ubah konsep tersebut menjadi aturan posisi target yang eksplisit.

Implementasi yang diusulkan di bawah ini hanya melakukan evaluasi pada titik pemeriksaan setengah jam yang telah ditentukan. Pada titik pemeriksaan, targetnya adalah posisi long di atas max(U, VWAP), short di bawah min(L, VWAP), dan tanpa posisi dalam kondisi lainnya. Implementasi ini mengirimkan target yang dihasilkan setelah bar tersedia. Ini adalah varian penelitian eksplisit; penghentian perlindungan berkelanjutan dan pembaruan eksposur terjadwal tidak boleh diperlakukan secara diam-diam sebagai setara.

Di antara titik pemeriksaan, penyeberangan batas sementara tidak menghasilkan keputusan baru dalam varian ini. Jika penghentian perlindungan berkelanjutan diinginkan, tentukan sebagai aturan berbasis peristiwa terpisah dan uji perputaran tambahannya. Strategi dengan jadwal masuk setengah jam dan keluar tingkat tick memiliki ketergantungan jalur yang berbeda dari strategi yang hanya mengubah semua eksposur setiap setengah jam.

Targetnya adalah posisi yang diinginkan, bukan instruksi untuk menambah posisi baru berulang kali. Bergerak dari +q saham ke −q membutuhkan penjualan 2q saham. Bergerak dari +q ke nol membutuhkan q saham. Biaya harus mengikuti perubahan posisi aktual, termasuk kedua sisi pembalikan.

Pada batas waktu likuidasi, menutup semua posisi lebih diprioritaskan daripada sinyal entri baru. Dalam sistem produksi, batalkan order entri yang belum terisi sebelum meminta exit akhir, lalu rekonsiliasi fill yang diterima selama pembatalan.

before_session(d):
    bands = build_from_completed_sessions(d, lookback=14)
    daily_vol = sample_std(previous_14_daily_returns)
    if data_incomplete or not isfinite(daily_vol) or daily_vol <= 0:
        disable_session(); return
    multiplier = min(4, 0.02 / daily_vol)
    shares = floor(previous_equity * multiplier / session_open)
on_completed_bar(k):
    if is_liquidation_deadline(k):
        cancel_pending_entries(); submit_flat(); return
    if session_disabled: return
    update_session_vwap()
    if is_decision_time(k):
        target = 1 if close > max(upper[k], vwap) else (
                 -1 if close < min(lower[k], vwap) else 0)
        submit_target_after_available_at(target * shares)

Ukuran posisi berbasis volatilitas mengubah eksposur

Salah satu aturan ukuran posisi adalah multiplier = min(4, 0.02/s), dengan s sebagai simpangan baku sampel dari 14 return harian terdahulu yang telah selesai. Jumlah saham adalah floor(previous account equity × multiplier / session open). Target 2% dan batas leverage merupakan bagian konfigurasi ini, bukan rekomendasi risiko universal.

Ketika s bernilai nol, hilang, atau tidak terbatas, menonaktifkan sesi lebih aman daripada membiarkan pembagian menciptakan ukuran yang tidak terbatas. Batas volatilitas minimum akan menjadi aturan yang dideklarasikan berbeda. Seri penentuan ukuran harus ditetapkan sebelum sesi, bukan dihitung ulang dengan pengembalian penutupan hari ini.

Versi dengan leverage dan tanpa leverage harus ditampilkan secara terpisah. Dalam makalah ini, versi dengan eksposur sebesar satu kali modal melaporkan total return +380%, 9.7% IRR, Sharpe 1.24 dan 12% maximum drawdown. [1] Perbedaan kinerja tidak semuanya dapat dikaitkan dengan sinyal masuk yang lebih baik ketika kebijakan eksposur juga telah berubah.

Pembatasan ukuran posisi memerlukan batasan operasional tambahan. Periksa daya beli, nilai nominal bruto, margin broker, dan partisipasi dalam interval eksekusi. Aturan eksposur berdasarkan periode tenang baru-baru ini dapat menciptakan posisi besar tepat sebelum lonjakan volatilitas, sehingga uji stres gap dan penundaan keluar diperlukan.

Aritmatika sintetis dan kelanjutan yang gagal

Misalkan harga penutupan sebelumnya adalah 500, harga pembukaan hari ini adalah 505 dan sigma pada titik pemeriksaan adalah 0.003. Maka U=505×1.003=506.515 dan L=500×0.997=498.50. Asimetri disebabkan oleh gap pembukaan. Pita simetris di sekitar 505 tidak akan menghasilkan perhitungan yang sama.

Pada 10:00, misalkan VWAP adalah 506.20 dan penutupan yang selesai adalah 506.80. Aturan yang diusulkan menargetkan posisi beli karena 506.80 melebihi max(506.515,506.20). Jika pesanan terisi pada 506.86 dan keluar pada 509.00, keuntungan harga adalah $2.14 per saham sebelum biaya. Pengisian pesanan sengaja dilakukan lebih lambat dan berbeda dari penutupan sinyal.

Dalam skenario gagal, harga penutupan 10:30 adalah 506.30, batas atas yang diperbarui adalah 506.60 dan VWAP adalah 506.50. Target menjadi tanpa posisi. Pengisian harga keluar di 506.24 kehilangan $0.62 per saham dari harga masuk 506.86. Perlintasan sebelumnya kembali di bawah batas tidak secara retroaktif memberikan harga keluar yang lebih baik untuk implementasi keputusan terjadwal.

Uji kesetaraan dan waktu secara eksplisit: dengan pembanding ketat, close tepat pada ambang berarti tanpa posisi; data yang diterima terlambat tidak membolehkan harga eksekusi lebih awal; dan riwayat tidak lengkap tidak dapat menghasilkan estimasi band lengkap. Kasus kecil ini sering menjelaskan perbedaan besar antarimplementasi publik.

Bukti yang dipublikasikan dan perbandingan yang dapat direproduksi

Rasio hit harian makalah ini adalah 43%, sedangkan tabel perdagangannya melaporkan 37% di seluruh 7,668 perdagangan. [1] Penyebut ini menjawab pertanyaan yang berbeda. Pisahkan IRR, total pengembalian, tingkat kemenangan per perdagangan, dan frekuensi hari menguntungkan dalam kolom terpisah.

Artikel kode publik penulis berguna untuk memeriksa VWAP, pergeseran eksposur dan mekanismenya, tetapi contoh lengkapnya juga mencakup komponen mean-reversion gap semalam. [2] Ekuitas gabungannya tidak dapat secara otomatis dikaitkan hanya dengan komponen momentum intraday saja.

README repositori publik terpisah melaporkan Sharpe out-of-sample 0.39, pengembalian tahunan 4.8% dan penurunan maksimum 18.5% untuk Mei 2024–Maret 2026, dibandingkan dengan Sharpe in-sample-nya 1.34. Hanya README yang diperiksa di sini; data berlisensi dan eksekusi lengkapnya tidak direproduksi secara independen. [3]

Perbandingan yang berguna memisahkan hanya pita noise, pita noise ditambah VWAP, dan sinyal yang sama dengan ukuran posisi berbasis volatilitas. Pertahankan eksekusi, penyesuaian data, dan tanggal evaluasi tetap sama. Kemudian laporkan apakah VWAP mengubah kualitas entri, waktu keluar, waktu di pasar, atau sekadar perputaran posisi.

Bandingkan susunan pita harian dan stempel waktu posisi target sebelum pengembalian. Lanjutkan dengan biaya pada asumsi yang dinyatakan dan biaya dalam skenario stres, penundaan satu bar, pengamatan ke belakang terdekat, dan periode pasar independen. Tujuannya adalah untuk menentukan asumsi mana yang mendukung hasilnya, bukan untuk mencari sampai judul berita yang diinginkan muncul kembali.

Kesalahan umum

Mengganti statistik kebisingan tanpa mengubah nama varian.

Rata-rata pergerakan absolut dari pembukaan sesi sampai waktu tertentu bukanlah simpangan baku bergulir. Menggantinya mengubah skala ambang dan interpretasi ekonomi.

Memberikan sinyal terjadwal untuk eksekusi berkelanjutan.

Pengujian mundur (backtest) dapat secara keliru meningkatkan peluang keluar dengan menggunakan setiap persilangan intrabar sambil mengklaim keputusan setengah jam. Tentukan frekuensi kejadian masuk dan keluar.

Mengaitkan contoh kode gabungan ke satu komponen.

Contoh yang mengandung gap mean reversion dan momentum memerlukan atribusi terpisah sebelum dapat memvalidasi salah satu komponennya.

Daftar periksa sebelum menggunakan metode ini

Centang setiap butir setelah memverifikasinya pada data Anda. Kemajuan disimpan di browser ini; bukan sertifikasi bahwa strategi menghasilkan laba.

0/8 butir

Pertanyaan umum

Apakah VWAP sama dengan pita derau atas atau bawah?

Tidak. VWAP adalah referensi harga sesi berjalan yang dihitung berdasarkan volume; pita-pita tersebut memperkirakan pergeseran tipikal dari sesi sebelumnya pada waktu yang sesuai.

Apakah Sharpe yang dilaporkan membuktikan profitabilitas saat ini?

Tidak. Ini menjelaskan model sampel dan biaya tertentu. Bukti periode selanjutnya, replikasi pelaksanaan, dan ketidakpastian harus dievaluasi secara terpisah.

Sumber riset

Setiap sumber mendukung definisi atau bukti yang dijelaskan di sampingnya. Pseudocode, contoh sintetis, dan parameter usulan perlu divalidasi secara terpisah.

  1. Beat the Market: An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)Zarattini, Aziz, Barbon — bản 03/02/2025. Seluruh PDF telah dibaca, termasuk versi tertanggal 3 Februari 2025. Tabel 3 dan 4 muncul pada halaman fisik dan cetak 15 dan 16. Tidak ada replikasi baru yang dijalankan. Diperiksa: .
  2. Designing a Profitable Intraday Strategy Using Python and AlpacaConcretum Group. Artikel penulis dan kode publik telah dibaca. Contoh lengkapnya mencakup komponen gap harga semalam tambahan dan bukan merupakan replikasi momentum murni secara otomatis. Diperiksa: .
  3. Out-of-Sample Evaluation of an Intraday Momentum Strategy for SPYSheimy Paz Serpa. Hanya README repositori yang diperiksa; input berlisensi lengkap dan eksekusi di luar sampel yang dilaporkan tidak direproduksi secara independen. Diperiksa: .

Metode terkait

Catatan risiko

Konten ini mendukung pembelajaran dan perancangan riset, bukan nasihat keuangan. Backtest adalah simulasi historis, tidak menjamin kinerja mendatang, dan tidak menempatkan order sungguhan. Metode dalam pustaka ini tidak otomatis tersedia sebagai fitur aplikasi. Lihat metodologi dan pusat pembelajaran.

Validasi aturan sebelum mempertaruhkan modal nyata

Periksa dukungan aplikasi, data, dan setiap transaksi simulasi; detektor tingkat lanjut mungkin perlu implementasi tersendiri.

Unduh Backtest di App Store