MetaTrader4
Menguasai Penapis Hodrick-Prescott untuk Ramalan Harga
Penulis: gpwr
Penapis Hodrick-Prescott (HP) terkenal kerana ciri uniknya yang tidak mempunyai kelewatan. Ia dikira dengan meminimumkan fungsi objektif yang dinyatakan seperti berikut:
F = Jumlah((y[i] - x[i])^2,i=0..n-1) + lambda*Jum((y[i+1]+y[i-1]-2*y[i])^2,i=1..n-2)
Di mana x[] adalah harga, dan y[] adalah nilai penapis. Di bawah ini adalah contoh perlakuan penapis (lihat fail HP.mq4 yang dilampirkan di bawah).
Jika penapis Hodrick-Prescott dapat meramalkan masa depan, nilai masa depan apa yang dicadangkannya? Untuk menjawab persoalan ini, kita perlu mencari penapis digital frekuensi rendah dengan parameter frekuensi yang serupa dengan penapis Hodrick-Prescott, tetapi dengan nilai yang dikira terus menggunakan nilai lalu dari "penapis kembar" itu sendiri, iaitu:
y[i] = Jumlah(a[k]*x[i-k],k=0..nx-1) - Penapis FIR
atau
y[i] = Jumlah(a[k]*x[i-k],k=0..nx-1) + Jumlah(b[k]*y[i-k],k=1..ny) - Penapis IIR
Adalah lebih baik untuk memilih "penapis kembar" yang mempunyai kelewatan Tdel yang bebas frekuensi (kelewatan kumpulan tetap). Penapis IIR tidak sesuai. Untuk penapis FIR, syarat untuk kelewatan bebas frekuensi adalah seperti berikut:
a[i] = +/-a[nx-1-i], i = 0..nx-1
Penapis FIR yang paling mudah dengan kelewatan tetap adalah Purata Pergerakan Ringkas (SMA):
y[i] = Jumlah(x[i-k],k=0..nx-1)/nx
Jika nx adalah nombor ganjil, Tdel = (nx-1)/2. Jika kita mengalihkan nilai penapis SMA ke belakang sebanyak jumlah bar yang sama dengan Tdel, nilai SMA akan sepadan dengan nilai penapis Hodrick-Prescott. Matematik yang tepat tidak dapat dicapai kerana perbezaan yang ketara dalam parameter frekuensi kedua-dua penapis (lihat carta di bawah):
Untuk mencapai padanan yang paling dekat antara nilai penapis, saya syorkan supaya lebar saluran mereka serupa (contohnya, -6dB). Lebar saluran penapis Hodrick-Prescott yang -6dB dikira seperti berikut:
wc = 2*arcsin(0.5/lambda^0.25).
Lebar saluran -6dB untuk penapis SMA dikira dengan pengiraan numerik melalui persamaan berikut:
|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5
Carta di bawah membandingkan nilai kedua-dua penapis yang mempunyai lebar saluran yang serupa: merah - penapis Hodrick-Prescott (FiltPer = 25), biru - SMA (Tempoh = 15, Alih = -7). Perlu diingat bahawa tiada data SMA untuk 7 bar terakhir kerana ia memerlukan harga masa depan. Sebaliknya, penapis Hodrick-Prescott (merah) menunjukkan beberapa nilai. Jika SMA yang dialihkan mengulangi nilai-nilai penapis Hodrick-Prescott pada 7 bar terakhir setelah harga masa depan muncul, apakah nilai-nilai ini?
Algoritma Ramalan:
Indikator ini mempunyai dua kaedah ramalan:
Kaedah 1:
1. Tetapkan panjang SMA kepada 3 dan alihkannya ke belakang sebanyak 1 bar. Dengan panjang ini, SMA yang dialih tidak wujud hanya untuk bar terakhir (Bar = 0), kerana ia memerlukan nilai harga masa depan Close[-1].
2. Kira lebar saluran penapis SMA. Samakan dengan lebar saluran penapis Hodrick-Prescott. Cari lambda.
3. Kira nilai penapis Hodrick-Prescott pada bar terakhir HP[0] dan anggap bahawa SMA[0] dengan Close[-1] yang tidak diketahui memberikan nilai yang sama.
4. Cari Close[-1] = 3*HP[0] - Close[0] - Close[1]
5. Tingkatkan panjang SMA kepada 5. Ulang semua pengiraan dan cari Close[-2] = 5*HP[0] - Close[-1] - Close[0] - Close[1] - Close[2]. Teruskan sehingga jumlah harga masa depan FutBars yang ditetapkan dikira.
Kaedah 2:
1. Tetapkan panjang SMA sama dengan 2*FutBars+1 dan alihkan SMA ke belakang sebanyak FutBars.
2. Kira lebar saluran penapis SMA. Samakan dengan lebar saluran penapis Hodrick-Prescott. Cari lambda.
3. Kira nilai penapis Hodrick-Prescott pada FutBars terakhir dan anggap bahawa SMA berkelakuan serupa apabila harga baru muncul.
4. Cari Close[-1] = (2*FutBars+1)*HP[FutBars-1] - Jumlah(Close[i],i=0..2*FutBars-1), Close[-2] = (2*FutBars+1)*HP[FutBars-2] - Jumlah(Close[i],i=-1..2*FutBars-2), dan seterusnya.
Indikator ini mempunyai input berikut:
Kaedah - kaedah ramalan
LastBar - bilangan bar terakhir untuk memeriksa ramalan berdasarkan harga yang ada (LastBar >= 0)
PastBars - jumlah bar sebelumnya yang dikira untuk penapis Hodrick-Prescott (semakin banyak, semakin baik, atau sekurang-kurangnya PastBars>2*FutBars)
FutBars - jumlah nilai masa depan yang diramalkan
Indikator ini menekankan nilai ramalan dalam warna merah. Kaedah 1 digunakan dalam contoh di bawah:
Kaedah 2:
Kaedah kedua lebih tepat tetapi sering mempunyai lonjakan besar bagi harga ramalan pertama. Kaedah ramalan yang diterangkan boleh diperbaiki dengan mencari penapis FIR dengan parameter frekuensi yang lebih dekat dengan penapis Hodrick-Prescott. Contohnya, anda boleh mencuba penapis Hanning, Blackman, Kaiser, dan lain-lain dengan kelewatan tetap sebagai ganti SMA.
Penulis berterima kasih kepada pengguna Korey atas indikator penapis Hodrick-Prescott yang asal yang diposkan dalam bahagian Forum berikut (dalam bahasa Rusia):
https://www.mql5.com/ru/forum/113677/page2
2009.01.15