und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
HP Extrapolator - Indikator für den MetaTrader 4
- Ansichten:
- 1522
- Rating:
- Veröffentlicht:
- 2016.04.06 13:41
- Aktualisiert:
- 2016.11.22 07:34
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Urheber: gpwr
Die Besonderheit dieses Filters ist, dass er keine Verzögerung besitzt. Er wird über die Minimierung der Zielfunktion berechnet
F = Sum((y[i] - x[i])^2,i=0..n-1) + lambda*Sum((y[i+1]+y[i-1]-2*y[i])^2,i=1..n-2)
wobei x[] - prices, y[] - Filter Werte. Weiter unten ist ein Beispiel für das Verhalten des Filters (Schauen Sie nach der unten angefügten Datei HP.mq4)
Wenn der Hodrick-Prescott Filter in die Zukunft sehen kann, welche zukünftigen Werte erhalten wir dann? Um diese Frage beantworten zu können, müssen wir den "digital low-frequency filter" mit den selben Frequenz-Parametern wie die des Hodrick-Prescott Filters finden, aber mit den Werten verwenden, die aus den vorherigen Werten des "twin filters" selbst berechnet wurden. D.h.
y[i] = Sum(a[k]*x[i-k],k=0..nx-1) - FIR filter
or
y[i] = Sum(a[k]*x[i-k],k=0..nx-1) + Sum(b[k]*y[i-k],k=1..ny) - IIR filter
Es ist besser, den "twin filter" zu verwenden, welcher eine frequenzunabhängige Verzögerung besitzt Тdel (Konstante-Gruppenverzögerung). IIR Filter sind hier nicht sinnvoll. Für FIR Filters, sehen die Konditionen für eine frequenzunabhängige Verzögerung wie folgt aus
a[i] = +/-a[nx-1-i], i = 0..nx-1
Der einfachste FIR Filter mit einer konstanten Verzögerung ist der Simple Moving Average (SMA, Einfacher gleitender Durchschnitt):
y[i] = Sum(x[i-k],k=0..nx-1)/nx
Wenn nx eine ungerade Zahl ist, Тdel = (nx-1)/2. Wenn wir den SMA Filter um die Anzahl an Bars gemäß Tdel in die Vergangenheit schieben, dann decken sich die Werte mit dem Hodrick-Prescott Filter. Eine hundertprozentige genaue Abdeckung kann durch die unterschiedlichen Frequenzparameter der beiden Filter nicht erreicht werden (Dieses können Sie unten im Chart sehen):
Um eine möglichst genaue Abdeckung der beiden Filter zu erreichen, empfehle ich deren Kanalbreite gleichzusetzen (z.B., -6dB). Die Berechnung der Hodrick-Prescott Filter's Bandbreite von -6dB Wird wie folgt berechnet
wc = 2*arcsin(0.5/lambda^0.25).
Die Bandbreite von -6dB für den SMA Filter wird mit der folgenden Gleichung berechnet
|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5
In dem unten aufgeführten Chart werden die Werte der beiden Filter mit der gleichen Bandbreite dargestellt: Rot - Hodrick-Prescott Filter (FiltPer = 25), Blau - SMA (Period = 15, Shift = -7). Beachten Sie, dass es keine Werte von dem SMA für die letzten sieben Bars gibt, da dieser hierfür die zukünftigen Preise wissen müsste. Im Gegensatz dazu zeigt der Hodrick-Prescott Filter (Rot) hier Werte an. Wenn der verschobene SMA die Werte des Hodrick-Prescott Filter der letzten 7 Bars nachdem die zukünftigen Kurse aufgetreten sind wiederholt, was können dieses dann für Werte sein?
Prädiktionsalgorithmen:
Der Indikator verfügt über die beiden Prognoseverfahren:
Methode 1:
1. Setzen Sie die Länge von dem SMA auf 3 und schieben Sie ihn um eine Bar zurück. Mit so einer Länge, existiert der verschobene SMA nicht für die letzte Bar (Bar = 0), da er dafür den Wert des nächsten Close-Kurses wissen müsste[-1].
2. Berechnung der Bandbreite des SMA filters. Diese ist gleich der Berechnung des Hodrick-Prescott filters. Lambda ermitteln.
3. Berechnen Sie den Hodrick-Prescott Filter für die letzte Bar HP[0] und wir nehmen dann an, dass der SMA[0] mit dem unbekannten Close[-1] den selben Wert ergibt.
4. Ermitteln von Close[-1] = 3*HP[0] - Close[0] - Close[1]
5. Erhöhen Sie die Länge des SMA auf 5. Wiederholen Sie die Berechnungen und ermitteln Sie Close[-2] = 5*HP[0] - Close[-1] - Close[0] - Close[1] - Close[2]. Setzen Sie die Berechnungen fort, bis die angegebene Menge an zukünftigen FutBars Kursen berechnet ist.
Methode 2:
1. Setzen Sie die Länge von SMA gleich 2*FutBars+1 und schieben Sie den SMA um FutBars in die Vergangenheit.
2. Berechnung der Bandbreite des SMA filters. Diese ist gleich der Berechnung des Hodrick-Prescott filters. Lambda ermitteln.
3. Berechnen Sie die Hodrick-Prescott Filter-Werte an den letzten FutBars und nehmen Sie an, dass der SMA sich genauso verhält wenn neue Kurse auftreten.
4. Ermitteln Sie Close[-1] = (2*FutBars+1)*HP[FutBars-1] - Sum(Close[i],i=0..2*FutBars-1), Close[-2] = (2*FutBars+1)*HP[FutBars-2] - Sum(Close[i],i=-1..2*FutBars-2), etc.
Der Indikator besitzt die folgenden Eingabeparameter:
Method - Vorhersagemethode
LastBar - Die Nummer der letzten Bar für die Prüfung der Vorhersage auf existierende Kurse (LastBar >= 0)
PastBars - Die Anzahl der vorherigen Bars, die für die Berechnung des Hodrick-Prescott Filters verwendet werden (je mehr, umso besser, oder mindestens PastBars>2*FutBars)
FutBars - Die Anzahl der vorhergesagten zukünftigen Werte
Der Indikator markiert die vorhergesagten Werte in Rot. In dem unten aufgeführten Beispiel wird die Methode 1 verwendet:
Methode 2:
Die zweite Methode ist etwas akkurater hat aber dafür öfters große Spitzen in dem ersten vorhergesagten Kurs. Die hier beschriebene Vorhersagemethode kann noch verbessert werden wenn nach dem FIR-Filter mit den Frequenzparametern die näher an den Hodrick-Prescott Filter liegen gesucht wird. Zum Beispiel können Sie folgende Filter versuchen: Hanning, Blackman, Kaiser, und andere Filter mit konstanter Verzögerung anstelle des SMA.
Der Urheber bedankt sich bei dem Benutzer Korey für den originalen Hodrick-Prescott Filter Indikator, der in dem folgenden Forum gepostet wurde (in Russisch):
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/8663
Ein Scalping-Tool mit Parabolic und Fibonacci.
ds_HDiv_OsMA_01 - Ein weiterer Avocational Indicator von Hidden Divergence von OsMAEin weiterer Avocational Indicator von Hidden Divergence von OsMA