Göstergeler: FIR_filter

 

FIR_filter:

Dijital filtreye dayalı hareketli ortalama.

FIR_filter

Author: Vladimir

 
Peki PI numarası neden bu kadar doğru?
 

DC2008:
А зачем такая точность числа ПИ? 

Bu konuda fazla düşünmedim. Google'da herhangi bir yüksek hassasiyetli sabit bulmak kolaydır. Sanırım metatradair bu kadar yüksek hassasiyete ihtiyaç duymazsa, kaç ondalık basamağın atılacağını otomatik olarak belirleyecektir.
 

Formülün doğru olduğundan emin misiniz? Lütfen bu http://dspsystem.narod.ru/add/win/win.html ile karşılaştırın.

Скользящая средняя на основе цифрового фильтра. В данном примере используется Hann Window. Для изменения коэффициентов фильтра, редактируйте следующие строки в OnInit():

Terminoloji ile ilgili olarak, üzgünüm, filtre katsayılarını değil, pencere katsayılarını değiştiriyorsunuz. Bunlar farklı şeylerdir. Örneğinizde dijital filtre (DF) bir hareketli ortalamadır (MA) ve (MA) herhangi bir pencere ile kullanılabilir (bunların küçük bir kısmı yukarıdaki bağlantıda verilmiştir). Her pencere, ki çok sayıda pencere vardır, belirli bir amaca hizmet eder. Genellikle DF'nin bazı özelliklerini iyileştirir, ancak bunun için ödeme yapmanız gerekir, hiçbir şey karşılıksız verilmez, çıktı spektrumuna bozulmalar eklenir.

Pi'nin doğruluğuna gelince, doğruluk asla gereksiz değildir. Sonucu yüklemek için her zaman zamanımız olacak. İşte bunu ayarlamanın basit bir yolu https://www.mql5.com/ru/code/8309.

Çok güzel bir çözüm.

 pi = 4*MathArctan(1);
 
Prival:

Pi sayısının doğruluğuna gelince, doğruluk asla gereksiz değildir. Sonucu her zaman yükleyebiliriz . İşte bunu ayarlamanın basit bir yolu https://www.mql5.com/ru/code/8309.

Pi sayısını bir değişken olarak tanımlamamalısınız. Bırakın bir sabit olsun.

Ama fazladan karaktere de ihtiyacınız yok. Double için saklanabilecek karakter sayısını biliyoruz.

 
lea:

Pi sayısını bir değişken olarak tanımlamamalısınız. Sabit kalmasına izin vermek daha iyidir.

Ancak fazladan karaktere de ihtiyacınız yoktur. Double için saklanabilecek karakter sayısını biliyoruz.

yanılıyorsunuz. sadece pi maksimum hassasiyetle tanımlanmadığı için 2 hafta zaman kaybettim. matkad'da elde ettiğim spektrum yapısını https://www.mql5.com/ru/code/9696 FFT kütüphanesini kullanarak yaptığımla kontrol ettim.
 
Prival:

Formülün doğru olduğundan emin misiniz? Lütfen bunu http://dspsystem.narod.ru/add/win/win.html ile karşılaştırın.

Terminoloji ile ilgili olarak, üzgünüm, filtre katsayılarını değil, pencere katsayılarını değiştiriyorsunuz. Bunlar farklı şeylerdir. Örneğinizde dijital filtre (DF) bir hareketli ortalamadır (MA) ve (MA) herhangi bir pencere ile kullanılabilir (bunların küçük bir kısmı yukarıdaki bağlantıda verilmiştir). Her pencere, ki çok sayıda pencere vardır, belirli bir amaca hizmet eder. Genellikle DF'nin bazı özelliklerini iyileştirir, ancak bunun için ödeme yapmanız gerekir, hiçbir şey karşılıksız verilmez, çıkış spektrumuna bozulmalar eklenir.

Hahn penceresi ve diğer benzer pencereler için farklı formüller vardır. Eğer düşünürseniz hepsi aynıdır. Bağlantınızdaki formülün büyük bir dezavantajı var: n=0 ve n=N-1'de sıfır pencere değerleri. Fiyatları sıfırlarla çarpmanın bir anlamı olmadığından, pencerenin yalnızca n=1...n=N-2 olan fiyatlar için var olduğu ortaya çıkıyor. Şimdi pencerenin sıfıra eşit olmadığı fiyatların sayısını Per ile gösterelim, benim yaptığım gibi, o zaman N-2=Per veya N=Per+2 elde ederiz. Bu N'yi bağlantınızdaki Hahn'ın formülünde yerine koyduğunuzda benimkiyle aynı formülü elde edersiniz.

Göstergenin ismi hakkında. İsim doğru. Tanım olarak, inşa ettiğim şey sonlu dürtü tepkisine sahip dijital bir filtredir

Bir FIR filtresinin çıkışını girişi cinsinden tanımlayan fark denklemi şöyledir:

y[n]=b_0 x[n] + b_1 x[n-1] + ... + b_N x[n-N]

burada:

  • x[n] giriş sinyali,
  • y[n] çıkış sinyali,
  • bi filtre katsayıları ve
  • N filtre sırasıdır

Buraya bakın http://en.wikipedia.org/wiki/Finite_impulse_response

Ben 21 yıldır elektronik işindeyim. Bu işleri bilirim. Yine de yorumlar için her zaman teşekkürler. Bilgili insanlarla konuşmak güzel.

 
gpwr:

Hanna penceresi ve diğer benzer pencereler için farklı formüller vardır. Eğer düşünürseniz hepsi aynıdır. Bağlantınızdaki formülün büyük bir dezavantajı var: n=0 ve n=N-1'de pencerenin sıfır değerleri. Fiyatları sıfırlarla çarpmanın bir anlamı olmadığından, pencerenin yalnızca n=1...n=N-2 olan fiyatlar için var olduğu ortaya çıkıyor. Şimdi pencerenin sıfıra eşit olmadığı fiyatların sayısını Per ile gösterelim, benim yaptığım gibi, o zaman N-2=Per veya N=Per+2 elde ederiz. Bu N'yi bağlantınızdaki Hahn'ın formülüne yerleştirdiğinizde benimkiyle aynı formülü elde edeceksiniz.

....

Wikipedia bağlantısı için teşekkürler. Formüllerle göstermeye çalışacağım, ne yaptığınızı.

Sizin durumunuz için bu formülü aşağıdaki gibi yazmak daha doğru olacaktır

y[n]=a_0*b_0* x[n] +a_1*b_1* x[n-1] + ... + a_N*b_N* x[n-N]

x[n] giriş sinyalidir,

y[n] çıkış sinyalidir,

bi filtre katsayılarıdır ve

а[i] pencere katsayılarıdır,

N filtre sırasıdır

Yani, DF katsayılarını(b) ve pencere katsayılarını(a) konvolüsyonladınız.

Evet, pencere fonksiyonlarını yazmak için farklı formüller olduğu konusunda haklısınız, ancak bu fark, konvolüsyonun hangi alanda, frekans veya zaman alanında gerçekleştirildiği gerçeğinden kaynaklanmaktadır. Ve bu formüller Fourier dönüşümü ile sıkı sıkıya bağlıdır http://ru.wikipedia.org/wiki/Оконное_преобразование_Фурье.

Formüller benzer olsa da, konvolüsyonun hangi alanda yapıldığını asla karıştırmamalısınız, aksi takdirde bir abrakodabra elde edersiniz.

Şimdi n hakkında. Formülde, 0'dan mı yoksa 1'den mi başladığını belirlemek gerçekten önemlidir ("...pencere yalnızca n=1..... olan fiyatlar için mevcuttur.n=N), eğer 1 kaydırırsanız, her şey kayar ve N-1, N-2 değil N olur

Hahn penceresi için tam formül şu şekildedir

p(t) = 0,5[1+cos(pi*t/tac)].

Bu konuyu biraz daha derinlemesine incelemek isteyenler için bir ders içeren bir dosya ekledim.

Tüccarlar için

Hepinizin bildiği bir örneği kullanarak neden bahsettiğimizi açıklamaya çalışacağım.

https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma

Herkes bilir:

(a) Basit Hareketli Ortalama (SMA).

Penceresi dikdörtgen şeklindedir, yani geçmişin derinliğine bakılmaksızın her fiyat değeri aynı ağırlığa a[i]= 1 sahiptir.

b) Doğrusal Ağırlıklı Hareketli Ortalama (LWMA)

Ağırlıklı hareketli ortalamada, en son verilere daha fazla ağırlık verilir ve daha önceki verilere daha az ağırlık verilir.

yani pencere katsayıları a[1]=1, a[2]=1/2,a[3]=1/3 .... a[n]=1/n

SO. gpwr İletişim kurmaktan da memnun olan bir radyo mühendisi, bir elektronik mühendisiyle her zaman ortak bir dil bulacaktır, özellikle de her ikisi de bu işte yeni değilse ve evrensel bir dil olan matematiğin dilini konuşuyorsa.

Dosyalar:
dsp.rar  1811 kb
 

sadece 3 gösterge vardır - fiyat, kapanış fiyatı ve basit hareketli ortalama