HP Extrapolator

0
(0)
İsim:
HP Extrapolator [ ru ]
Yazar: gpwr (2009.01.15 10:15)
Değerlendirme: 10
İndirildi: 3716
İndirmek:
HP Extrapolator 1
HP.mq4 (2.1 kb) Görüş
HP Extrapolator 1 HP Extrapolator.mq4 (4.8 kb) Görüş

Автор: gpwr

Описание:

Отличительное качество фильтра Ходрика-Прескота в том что он не имеет задержки. Рассчитывается он путём минимизации целевой функции

F = Sum((y[Ben] - X[Ben])^2,i=0..n-1) + lambda*Sum((y[i+1]+y[i-1]-2*y[Ben])^2,i=1..n-2)

где x[] - цены, y[] - значения фильтра. Вот пример поведения этого фильтра (см приложенный файл HP.mq4)

HP Extrapolator 3

Если фильтр Ходрика-Прескота заглядывает в будущее, то какие будущие значения он предполагает? Чтобы ответить на этот вопрос, нужно найти цифровой НЧ фильтр, частотная характеристика которого похожа на ту фильтра Ходрика-Прескота, но значения которого рассчитываются напрямую используя прошлые значения цены и прошлые значения самого "фильтра-близнеца", т.е.

y[Ben] = Sum(A[k]*X[i-k],k=0..nx-1) - FIR фильтр

или

y[Ben] = Sum(A[k]*X[i-k],k=0..nx-1) + Sum(B[k]*y[i-k],k=1..ny) - IIR фильтр

Предпочтительно выбрать такой "фильтр-близнец", который имел бы частотно-независимую задержку Тзад (constant group delay). IIR фильтры в таком случае не подходят. Для FIR фильтров, условием частотно-независимой задержки является

A[Ben] = +/-a[nx-1-i], i = 0..nx-1

Простейшим FIR фильтром с постоянной задержкой является Simple Moving Average (SMA):

y[Ben] = Sum(X[i-k],k=0..nx-1)/nx

При нечётном nx, задержка такого фильтра равна Тзад = (nx-1)/2. Если сдвинуть значения этого SMA фильтра в прошлое на количество баров равному задержке Тзад, то SMA значения совпадут со значениями фильтра Ходрика-Прескота. Точного совпадения достичь невозможно из-за существенной разницы в частотных характеристик двух фильтров проиллюстрированной на этом графике

HP Extrapolator 4

Чтобы достичь наиболее близкого совпадения между значениями обоих фильтров, желательно выбрать их ширину пропускания (например, на уровне -6dB) одинаковой. Ширина пропускания на уровне -6dB фильтра Ходрика-Прескота расчитывается по формуле

wc = 2*arcsin(0.5/lambda^0.25).

Ширина пропускания на уровне -6dB для SMA фильтра находится численными методами из уравнения

|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5

График внизу сравнивает значения двух фильтров при одинаковой полосе пропускания: красный цвет - фильтр Ходрика-Прескота (FiltPer = 25), синий цвет - SMA (Period = 15, Shift = -7). Заметьте что SMA (синий) для последних 7 баров не существует, т.к. ему нужно знать будущие цены. Фильтр Ходрика-Прескота (красный), с другой стороны, показывает какие-то значения. Если предположить что при появлении будущих цен, сдвинутый SMA будет повторять значения фильтра Ходрика-Прескота на последних 7 барах, то какие эти будущие значения должны быть?

HP Extrapolator 5

Алгоритмы предсказания:

В индикаторе встроены два метода предсказания:

Metod 1:

1. Задаём длинну SMA равную 3 и сдвигаем SMA в прошлое на 1 бар. При такой длинне, сдвинутый SMA не существует только для последнего бара (Bar = 0), т.к. ему нужно значение следующей будущей цены Close[-1].

2. Рассчитываем частоту пропускания SMA. Приравниваем эту частоту к частоте пропускания фильтра Ходрика-Прескота. Находим lambda.

3. Рассчитываем значение фильтра Ходрика-Прескота на последнем баре HP[0] и предполагаем что SMA[0] с неизвестной Close[-1] даёт такое же значение.

4. Находим Close[-1] = 3*HP[0] - Kapalı[0] - Kapalı[1]

5. Увеличиваем длинну SMA до 5. Повторяем все вычисления и находим Close[-2] = 5*HP[0] - Kapalı[-1] - Kapalı[0] - Kapalı[1] - Kapalı[2]. И так далее пока не рассчитано заданное количество будущих цен FutBars.

Metod 2:

1. Задаём длинну SMA равную 2*FutBars+1 и сдвигаем SMA в прошлое на FutBars

2. Рассчитываем частоту пропускания SMA. Приравниваем эту частоту к частоте пропускания фильтра Ходрика-Прескота. Находим lambda.

3. Рассчитываем значения фильтра Ходрика-Прескота на последних FutBars барах и предполагаем что SMA поведёт себя таким же образом при появлении новых цен.

4. Находим Close[-1] = (2*FutBars+1)*HP[FutBars-1] - Sum(Kapalı[Ben],i=0..2*FutBars-1), Kapalı[-2] = (2*FutBars+1)*HP[FutBars-2] - Sum(Kapalı[Ben],i=-1..2*FutBars-2), и т.д.

В индикаторе следующие входные данные:

Yöntem - метод предсказания

LastBar - номер последнего бара для проверки предсказания на существуящих ценах (LastBar >= 0)

PastBars - количество прошлых баров для которых будет рассчитываться фильтр Ходрика-Прескотта (чем больше тем лучше или, по крайней мере, PastBars>2*FutBars)

FutBars - количество предсказанных будущих значений

Индикатор красным цветом строит предсказанные значения. В следующем примере используется Metod 1:

HP Extrapolator 6

Metod 2:

HP Extrapolator 7

Второй метод имеет тенденцию более точного предсказания, но часто имеет большие выбросы первой предсказанной цены. Описанный метод предсказания может улучшен путём нахождения FIR фильтра с частотной характеристикой более близкой к той фильтра Ходрика-Прескота. Например, вместо SMA, можно попробовать Hanning, Blackman, Kaiser и другие фильтры с постоянной задержкой.

Автор благодарен Korey за публикацию оригинального индикатора построения фильтра Ходрика-Прескота в следующей ветке форума:

http://forum.mql4.com/ru/18404/page2

5 yorumlar Yeni bir yorum göndermek için, Lütfen giriş yapmak veya kayıt olmak

Comment in PORTUGUESE. Indicador HP cruzando (crossover) com média móvel de 7 períodos (preço de fechamento) se revelou fácil e excelente. Simples. Experimente. Parabéns ! jmailto:[email protected]

26.08.2010 20:37 jrportobr

Comment in PORTUGUESE. Indicador HP cruzando (crossover) com média móvel de 7 períodos (preço de fechamento) se revelou fácil e excelente. Simples. Experimente. Parabéns ! jmailto:[email protected]

26.08.2010 20:36 jrportobr

You don't even know what you've created!

Contact me directly and I'll show you.

Forget the prediction. This is dead end.

But the Hodrick-Prescott Filter implementation - this is what I'm about 🙂

ALX

02.10.2009 14:13 alxalx

Would you please in english ? Rgds

18.01.2009 03:19 jskchan

i dont understand,difficult!

Bu yazı ne kadar faydalı oldu?

Derecelendirmek için bir yıldıza tıklayın!

Ortalama puanı 0 / 5. Oy sayısı: 0

Şu ana kadar oy yok! Bu gönderiye ilk puan veren siz olun.

Bu yazının sizin için yararlı olmadığı için üzgünüz!

Bu yazıyı geliştirelim!

Bu gönderiyi nasıl geliştirebileceğimizi bize bildirin?



Yazar: Forex Wiki Ekibi
Biz son derece deneyimli Forex Yatırımcılarından oluşan bir ekibiz [2000-2023] hayatı kendi şartlarımıza göre yaşamaya kendini adamış olan. Öncelikli hedefimiz mali bağımsızlık ve özgürlüğe ulaşmaktır., ve kendi kendine sürdürülebilir bir yaşam tarzı elde etmenin yolu olarak kendi kendine eğitim peşinde koştuk ve Forex piyasasında kapsamlı deneyim kazandık..