Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Indikatoren

HP Extrapolator - Indikator für den MetaTrader 4

Ansichten:
1473
Rating:
(13)
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):

https://www.mql5.com/ru/forum/113677/page2

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/8663

FXTticksCollector FXTticksCollector

Tick Collector als FXT File

simple csv2fxt simple csv2fxt

Einfacher csv-to-fxt Converter

A Good EA by Paraboliс and Fibo Lines A Good EA by Paraboliс and Fibo Lines

Ein Scalping-Tool mit Parabolic und Fibonacci.

ds_HDiv_OsMA_01 - Ein weiterer Avocational Indicator von Hidden Divergence von OsMA ds_HDiv_OsMA_01 - Ein weiterer Avocational Indicator von Hidden Divergence von OsMA

Ein weiterer Avocational Indicator von Hidden Divergence von OsMA