Isi artikel
- Bukti dan cakupan
- Ilustrasi
- Proses
- Garis yang dipasang menggambarkan jendela yang diamati.
- Fit hanya pengamatan sebelum bar deteksi
- Pengembalian di dalam saluran dapat berhasil atau gagal.
- Koefisien yang dibekukan masih dapat mengimplikasikan pusat yang bergerak.
- Diagnostik residual bukanlah sertifikat profitabilitas.
- Volume dapat menyaring peristiwa tanpa menulis ulang saluran.
- Tes kronologis dan kontrol yang berguna
- Kesalahan umum
- Daftar periksa praktis
- Pertanyaan umum
- Sumber riset
Bukti dan cakupan
Fidelity menjelaskan indikator regresi, sementara statsmodels dan NIST mendukung penyesuaian dan diagnostik. Tak satu pun dari mereka membuktikan profitabilitas untuk strategi pengembalian saluran yang diusulkan.
Alur kerja praktis
- Fit model pada data masa laluGunakan OLS harga log dengan intersep, tanpa memasukkan bar deteksi.
- Periksa konteksnyaTerapkan persyaratan kemiringan dan sisa yang terdaftar.
- Bekukan model saat penyimpanganSimpan koefisien dan titik asal yang tidak dapat diubah.
- Tunggu harga kembali ke bandWajibkan harga penutupan di dalam band tetapi di bawah pusat yang menjadi target.
- Evaluasi risikoUji stop, exit berbasis waktu, dan biaya di luar sampel pengembangan.
Garis yang dipasang menggambarkan jendela yang diamati.
Fidelity mendeskripsikan Indikator Regresi Liniernya melalui titik akhir garis yang dipasang selama N periode [1]. Artikel ini memperluas ide deskriptif tersebut dengan pita residual. Pusat yang miring berarti bahwa berada jauh di bawah garis tidak secara otomatis menyiratkan harga fundamental yang murah atau kenaikan yang akan segera terjadi.
Pisahkan dua pertanyaan: seberapa baik garis lurus menjelaskan periode waktu sebelumnya, dan apakah penyimpangan hari ini memprediksi pengembalian selanjutnya. R² menjawab pertanyaan pertama. Penurunan yang stabil dapat memiliki R² yang tinggi, sementara pembelian di bawah garis yang sesuai berulang kali akan menyebabkan kerugian.
Saluran dapat digunakan untuk pembalikan ke nilai rata-rata atau kelanjutan tren, tetapi ini adalah hipotesis yang saling bertentangan. Garis dasar di bawah menunggu pergerakan ke bawah dan kembali ke dalam pita bawah yang dibekukan. Garis ini tidak beralih ke momentum ketika perdagangan pembalikan ke nilai rata-rata historis gagal.
Fit hanya pengamatan sebelum bar deteksi
Untuk j=0…N−1, tetapkan y[j]=log(C[j]) dan sesuaikan y=a+bj dengan metode kuadrat terkecil biasa. Residualnya adalah e[j]=y[j]−a−bj dan s=sqrt(sum(e²)/(N−2)). Pada h langkah di luar jendela yang disesuaikan, m(h)=a+b(N−1+h), dengan rentang harga exp(m(h)±ks). Pengaturan yang diusulkan adalah N=60, k=2; tolak harga yang tidak positif dan nilai s yang mendekati nol.
statsmodels OLS tidak otomatis menambahkan intersep ke matriks desain [2]; sertakan kolom konstanta. Fit sampai t−1 dan evaluasi harga penutupan bar t pada h=1. Memasukkan t memungkinkan guncangan itu mengubah pusat dan lebar yang digunakan untuk menilai guncangan yang sama.
Filter konteks rentang yang diusulkan abs(b)×(N−1)/s≤1 membandingkan pergeseran yang sesuai dengan skala residual. Ini adalah aturan penyaringan, bukan uji stasioneritas. Simpan a, b, s, indeks asal, dan jendela input yang sesuai ketika suatu penyimpangan menciptakan kandidat. Jangan pernah menyesuaikan kembali kandidat aktif tersebut.
Kedaluwarsa harus diutamakan daripada pemicuan. Pseudokode tersebut menjelaskan urutan tersebut secara eksplisit dan menginisialisasi previous_z ketika penyimpangan pertama kali terdeteksi. Data yang hilang, hasil fitting nonfinite, dan skala residual nol menonaktifkan kandidat daripada mengizinkan pembagian dengan nol atau skor z ekstrem buatan.
if no_candidate:
if invalid_or_nonpositive(close[t-N:t+1]): return
a,b,s = fit_log_ols(close[t-N:t], with_intercept=True)
if not finite(a,b,s) or s <= min_residual_scale: return
regime_ok = abs(b)*(N-1)/s <= 1.0
z = (log(C[t])-(a+b*N))/s
if regime_ok and z < -2:
freeze_candidate(a,b,s,origin=t-N,expiry=t+10,
previous_z=z,excursion_low=L[t])
else:
if t > candidate.expiry:
expire(); return
j = t-candidate.origin
z = (log(C[t])-(candidate.a+candidate.b*j))/candidate.s
update_excursion_low(L[t])
if candidate.previous_z < -2 and -2 <= z < 0:
emit_long(t)
candidate.previous_z = z
# Never refit an active candidate or backfill historical channels.
Pengembalian di dalam saluran dapat berhasil atau gagal.
Contoh sintetis: pusat yang sesuai kira-kira 100, kemiringan 0 dan skala log residual s=0.01. Pita bawah dua sigma kira-kira 98.02 dan pita atas 102.02. Harga 97.8 berada di luar pita bawah; penutupan berikutnya 98.3 masuk kembali. Entri 98.4, stop 97.5 dan target 100 menyiratkan risiko 0.9 dan potensi imbalan 1.6, atau kira-kira 1.78R sebelum biaya.
Jalur sintetis yang berhasil mencapai 100 terlebih dahulu. Pada jalur kegagalan, informasi baru mendorong harga ke 96 dan kemudian 94. Posisi harus dihentikan pada harga yang layak di dekat 97.5 atau lebih buruk jika terjadi gap. Kesesuaian historis yang baik tidak dapat mencegah perubahan lingkungan penghasil harga.
Jangan melebarkan sigma setelah penurunan dan menyatakan bahwa stop loss sebelumnya sebenarnya tidak pernah ditembus. Itu akan mengubah snapshot keputusan menggunakan hasilnya. Pembaruan model untuk kandidat di masa mendatang tidak boleh mengubah perhitungan perdagangan yang sudah ada.
Jalur lain langsung melompat dari 97.8 ke 101. Meskipun telah kembali ke dalam rentang yang ditentukan, garis dasar membutuhkan z<0 dan oleh karena itu tidak membeli di atas target tengahnya. Aturan ini ditetapkan sebelumnya, bukan ditambahkan setelah melihat kesenjangan imbalan-risiko yang buruk.
Koefisien yang dibekukan masih dapat mengimplikasikan pusat yang bergerak.
Membekukan a dan b tidak membuat pusat proyeksi menjadi horizontal. Proyeksi tersebut berlanjut mengikuti kemiringan asli saat indeks waktu bergerak maju. Pada sinyal, bekukan target yang sama dengan pusat proyeksi untuk waktu masuk yang diharapkan dan stop loss di bawah seluruh titik terendah ekskursi dikurangi buffer.
Posisi yang diusulkan memiliki waktu keluar sepuluh bar jika target maupun stop loss tidak tercapai. Waktu kadaluarsa kandidat dan waktu keluar posisi menggunakan jam yang berbeda: satu membatasi menunggu harga kembali ke dalam band, yang lain membatasi penahanan setelah masuk. Simpan keduanya untuk menghindari perpanjangan kandidat secara tidak sengaja saat perdagangan dibuka.
Jika eksekusi tertunda melebihi waktu entri yang diharapkan, tentukan apakah target yang dibekukan tetap tidak berubah atau dibatalkan sebelum pengajuan berdasarkan aturan ekonomi. Jangan mengubah target setelah terpenuhi hanya untuk menjaga agar potensi imbalan tetap menarik.
Bandingkan asumsi next-open dan executable-quote di sekitar pergerakan cepat. Persilangan garis historis bukanlah jaminan eksekusi pada garis tersebut. Jika targetnya adalah limit yang diam, modelkan aktivasi, kuantitas, dan potensi non-fill-nya daripada secara otomatis mengkreditkan harga tengah setiap kali bar berikutnya melampauinya.
Diagnostik residual bukanlah sertifikat profitabilitas.
NIST membahas asumsi residual klasik seperti independensi dan varians stabil [3]. Harga keuangan dapat melanggar asumsi tersebut. Akibatnya, ±2s tidak secara otomatis menjadi interval perkiraan 95% untuk harga berikutnya, dan nilai p kemiringan OLS konvensional bukanlah bukti adanya keunggulan yang dapat diperdagangkan.
Periksa autokorelasi residual, perilaku ekor distribusi, dan kestabilan s antarjendela. Residual yang terus berada di satu sisi dapat menunjukkan strategi sedang bertransaksi melawan tren baru. Gunakan diagnostik untuk menjelaskan perilaku model, bukan untuk memilih hanya episode historis yang menguntungkan.
Perbandingan praktis menyimpan cuplikan data yang dibekukan untuk setiap kandidat dan memplot pergerakan harga relatif terhadap cuplikan data tersebut. Jika pembalikan yang tampak hanya terjadi karena pusat yang berulang kali disesuaikan bergerak mendekati harga, efeknya adalah adaptasi model dan bukan harga yang kembali ke referensi asalnya.
R², kesalahan standar, dan skor-z memiliki tujuan yang berbeda. R² menggambarkan kesesuaian, kesalahan standar merangkum skala residual dalam jendela, dan skor-z menyatakan penyimpangan saat ini di bawah skala yang dibekukan tersebut. Tidak satu pun yang boleh diberi label ulang sebagai probabilitas kemenangan perdagangan berikutnya.
Volume dapat menyaring peristiwa tanpa menulis ulang saluran.
Satu hipotesis menghindari transaksi melawan pergerakan harga saat RVOL sangat tinggi karena dapat menyertai penilaian ulang harga. Hipotesis lain mencari aktivitas tinggi saat harga menyimpang dari band, lalu aktivitas lebih rendah saat kembali ke dalamnya. Pilih dan daftarkan fitur sebelum melihat hasil transaksi; jangan memakai kedua penjelasan hanya saat menguntungkan.
Gunakan garis dasar waktu yang sama, catat spread dan berita dengan cap waktu jika tersedia, dan cegah volume ekskursi yang telah selesai memengaruhi keputusan sebelum ekskursi berakhir. Pada konfirmasi harga kembali ke dalam band, ekskursi yang diamati dapat diringkas, tetapi available_at fitur tersebut harus mencerminkan input terbarunya.
Mengubah OLS menjadi regresi berbobot volume akan mengubah model itu sendiri. Evaluasilah sebagai versi yang berbeda dibandingkan dengan model dasar yang tidak berbobot. Jika tidak, manfaat yang dilaporkan dari volume mungkin menggabungkan perubahan pusat, perubahan skala residual, dan perubahan filter entri tanpa mengidentifikasi komponen mana yang paling penting.
Tes kronologis dan kontrol yang berguna
Bandingkan saluran regresi dengan rata-rata gaya Bollinger yang datar dan garis dasar skor-z tanpa kemiringan di bawah kebijakan masuk, keluar, dan biaya yang setara. Pilih N, k, dan filter konteks pada data pengembangan, lalu pertahankan uji akhir yang tidak terlihat. Hapus interval label hasil transaksi yang tumpang tindih ketika pemisahan akan menghasilkan hasil ekskursi yang sama.
Fixture implementasi harus memverifikasi intersep, akhir jendela t−1, penskalaan logaritmik, derajat kebebasan, s nol, pengamatan yang hilang, dan invarian prefiks. Uji kandidat yang kedaluwarsa yang masuk kembali pada bar berikutnya: kandidat tersebut harus tetap kedaluwarsa dan tidak memancarkan sinyal terlambat.
Laporkan pengembalian bersih, kerugian ekor, waktu tanpa perdagangan, dan kinerja berdasarkan rezim yang telah ditentukan sebelumnya. Stress fill dan gap. Jika profitabilitas bergantung pada pemberian kredit pada center fill yang tepat di dalam gap bar yang ambigu, model eksekusi perlu dikoreksi sebelum kesimpulan ekonomi ditarik.
Polinomial orde tinggi mungkin lebih sesuai dengan data historis, namun menambahkan ekstrapolasi yang tidak stabil dan lebih banyak pilihan penelitian. Basis linier berharga karena koefisien, proyeksi, dan kasus kegagalannya dapat diaudit secara langsung.
Kesalahan umum
Melakukan fitting ulang channel historis
Garis saat ini menulis ulang sinyal sebelumnya dan membuat grafik tampak akurat secara konsisten.
Mengubah R² menjadi tingkat kemenangan
Kesesuaian penjelasan dalam sampel tidak sama dengan kinerja perdagangan prediktif.
Bertransaksi melawan perubahan rezim
Saluran lama dapat kehilangan relevansinya ketika informasi baru mengubah harga instrumen tersebut.
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.
Pertanyaan umum
Apakah regresi selalu lebih baik daripada Bollinger Bands?
Tidak. Ini menambahkan kemiringan dan pilihan model. Bandingkan di bawah aturan perdagangan dan eksekusi yang sesuai untuk mengisolasi nilainya.
Bisakah polinomial meningkatkan kecocokan?
Hal ini dapat diteliti, tetapi menambah derajat kebebasan dan risiko ekstrapolasi. Kesesuaian historis yang lebih dekat saja tidak membuktikan strategi yang lebih baik.
Sumber riset
Setiap sumber mendukung definisi atau bukti yang dijelaskan di sampingnya. Pseudocode, contoh sintetis, dan parameter usulan perlu divalidasi secara terpisah.
- Linear Regression IndicatorFidelity. Bacalah definisi titik akhir indikator regresi. Diperiksa: .
- statsmodels OLSstatsmodels. Baca tentang intersep OLS, data yang hilang, dan perilaku kecocokan. Diperiksa: .
- Are the model residuals well-behaved?NIST/SEMATECH. Bacalah asumsi residual klasik; ini bukanlah kesimpulan tentang prediktabilitas pasar. 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