Filtre katsayılarıyla başa çıkmanın en iyi yolu nedir? - sayfa 4

 

Amatörlük için üzgünüm ama SATL FATL ve benzeri gibi dijital filtreler yaptığınız işe yakın mı yoksa başka bir alandan mı?

Elektronikle ilgili bir şey olduğunu anlıyorum. Bunları alıntılara uygulayabilmenin felsefesi ve teorik gerekçesi nedir?

 
 
Maxim Dmitrievsky :

Amatörlük için üzgünüm ama SATL FATL ve benzeri gibi dijital filtreler yaptığınız işe yakın mı yoksa başka bir alandan mı?

Elektronikle ilgili bir şey olduğunu anlıyorum. Bunları alıntılara uygulayabilmenin felsefesi ve teorik gerekçesi nedir?


Bu tür filtrelerin açıklamasına bir bağlantı verebilir misiniz? O zaman net bir şekilde cevap verebilirdim. Makalede üstünkörü bir okuma ile bir açıklama bulamadım.

İngilizce FIR veya FIR filtreleri için bir sınıf yapıyorum. Ve ne tür ve parametrelere sahip olacakları sadece katsayılarla belirlenir, algoritma herkes için aynıdır.

katsayısını sayıyorum. eliptik filtreler için, en kısa oldukları için, bu nedenle en küçük gecikmeler olacaktır.

Felsefe ve geçerliliğe gelince, neyin filtreleneceği, elektrik sinyalleri, alıntılar veya diğer veriler arasında hiçbir fark yoktur. Filtrenin amacı istenmeyen frekansları ortadan kaldırmaktır. Örneğin, LPF üst frekanslara basar, zaman alanında yüksek frekanslı gürültü öldürüldüğü için tırnak yumuşatma alırız. Grafikleri gönderdim, orada açıkça görülüyor. Aynı Simple MA MA, sıradan bir düşük geçişli FIR filtresidir, ancak çok etkili değildir. Makalede ayrıntılı olarak anlattım.

 
Alexey Volchanskiy :


Bu tür filtrelerin açıklamasına bir bağlantı verebilir misiniz? O zaman net bir şekilde cevap verebilirdim. Makalede üstünkörü bir okuma ile bir açıklama bulamadım.

İngilizce FIR veya FIR filtreleri için bir sınıf yapıyorum. Ve ne tür ve parametrelere sahip olacakları sadece katsayılarla belirlenir, algoritma herkes için aynıdır.

katsayısını sayıyorum. eliptik filtreler için, en kısa oldukları için, bu nedenle en küçük gecikmeler olacaktır.

Felsefe ve geçerliliğe gelince, neyin filtreleneceği, elektrik sinyalleri, alıntılar veya diğer veriler arasında hiçbir fark yoktur. Filtrenin amacı istenmeyen frekansları ortadan kaldırmaktır. Örneğin, LPF üst frekanslara basar, zaman alanında yüksek frekanslı gürültü öldürüldüğü için tırnak yumuşatma alırız. Grafikleri gönderdim, orada açıkça görülüyor. Aynı Simple MA MA, sıradan bir düşük geçişli FIR filtresidir, ancak çok etkili değildir. Makalede ayrıntılı olarak anlattım.


ve orada sadece makalenin kendisine verilen bağlantı değiştirildi, hemen hemen bununla ilgili

https://www.mql5.com/en/articles/32

Практическая реализация цифровых фильтров на MQL5 для начинающих
Практическая реализация цифровых фильтров на MQL5 для начинающих
  • 2010.03.19
  • Nikolay Kositsin
  • www.mql5.com
Идее цифровой фильтрации сигналов посвящаются достаточно объёмные темы обсуждения на форумах по построению торговых систем. В этой статье автор знакомит с процессом превращения кода более простого индикатора SMA из своей статьи "Пользовательские индикаторы в MQL5 для начинающих" в код гораздо более сложного универсального цифрового фильтра. В ней также изложены простейшие приёмы замены текста в коде и методика получения простейших навыков по исправлению ошибок программирования.
 
Quantum :

Sinyal işleme üzerine kitaplar var: Sophocles J. Orfanidis, Optimum Signal Processing (ve Signal Processing'e Giriş )


Bununla birlikte, tümü işaretçilerle birlikte birçok örnek olması ilginçtir. bir la

 /* cfir1.c - FIR filter implemented with circular delay-line buffer */

void wrap();

double cfir1(M, h, w, p, x)
double *h, *w, **p, x;
int M;
{                        
       int i;
       double y;

       *(*p)-- = x;
       wrap(M, w, p);                           /* \(p\) now points to \(s\sb{M}\) */

       for (y= 0 , h+=M, i=M; i>= 0 ; i--) {       /* \(h\) starts at \(h\sb{M}\) */
              y += (*h--) * (*(*p)--);
              wrap(M, w, p);
              }

       return y;
}

Şimdiye kadar böyle yaptım, bu bir örnekten, sınıfsız. m_Coeff[] içinde katsayıları yüklemeniz gerekir.

 #define TICK_BUF_SIZE       0x1000                // 4096
#define TICK_BUF_MAX_IDX    (TICK_BUF_SIZE - 1 ) // 0xFFF
#define OUT_BUF_SIZE         0x10000              // 65536
#define OUT_BUF_MAX_IDX     (OUT_BUF_SIZE - 1 )   // 0xFFFF   

double   m_TickBuf[TICK_BUF_SIZE]; // ring-buffer for ticks store
double   m_OutBuf[OUT_BUF_SIZE];   // output ring-buffer
double   m_Coeff[];                 // coefficient array
int      m_CoeffSize;               // size of m_Coeff  
int      m_TickBufIdx;             // index of new tick placed in m_TickBuf
int      m_OutBufIdx;               // index of new tick placed in m_OutBuf

//+------------------------------------------------------------------+
//| filter one tick                                                                 |
//+------------------------------------------------------------------+
double   FilterTick( double tick)
  {
   static double acc;
   static int tbIdx;
   acc= 0 ;
   tbIdx=m_TickBufIdx;
   m_TickBuf[m_TickBufIdx]=tick;
   if (m_TickBufIdx== 0 )
      m_TickBufIdx=TICK_BUF_MAX_IDX;
   else
      m_TickBufIdx--;
// filter in cycle "for""
   for ( int n= 0 ; n<m_CoeffSize; n++)
     {
      acc+=m_TickBuf[tbIdx++]*m_Coeff[n];
      tbIdx &=TICK_BUF_MAX_IDX; 
       /* it was little optimization instead if
      if(tbIdx > TICK_BUF_MAX_IDX)
         tbIdx = 0;*/
     }
   m_OutBuf[m_OutBufIdx++]=acc;
   m_OutBufIdx &=OUT_BUF_MAX_IDX;
   return acc;
  }
 
Maxim Dmitrievsky :

ve orada sadece makalenin kendisine verilen bağlantı değiştirildi, hemen hemen bununla ilgili


Onun hakkında konuştum. İşte kendim kullandığım FIR filtre formülü. Ama zaten yazdım - hepsi katsayılara bağlı. Evet, verildiler, ancak herhangi bir açıklama yapılmadan, bu yüzden hemen yargılayamam. Ama şirket için bir reklam var))

bu yazıdan bahsediyorum

----------

Örneğin, Finware'den FATL gibi bir dijital filtre için MQL5 kodu oluşturmayı deneyebilirsiniz.

Genel olarak, bir dijital filtreyi hesaplama formülü şöyledir:

FILTER = SUM (K(i) * KAPAT(i), FilterPeriod)

nerede:

TOPLA - toplam;

K(i) ağırlıklandırma faktörüdür;

KAPAT (i) — mevcut çubuğun kapanış fiyatı;

FilterPeriod — ortalama alınacak çubuk sayısı.

 
Alexey Volchanskiy :


Onun hakkında konuştum. İşte kendim kullandığım FIR filtre formülü. Ama zaten yazdım - hepsi katsayılara bağlı. Evet, verildiler, ancak herhangi bir açıklama yapılmadan, bu yüzden hemen yargılayamam. Ama şirket için bir reklam var))

bu yazıdan bahsediyorum

----------

Örneğin, Finware'den FATL gibi bir dijital filtre için MQL5 kodu oluşturmayı deneyebilirsiniz.

Genel olarak, bir dijital filtreyi hesaplama formülü şöyledir:

FILTER = SUM (K(i) * KAPAT(i), FilterPeriod)

nerede:

TOPLA - toplam;

K(i) ağırlıklandırma faktörüdür;

KAPAT (i) — mevcut çubuğun kapanış fiyatı;

FilterPeriod — ortalama alınacak çubuk sayısı.


Anlıyorum, yani, bu farklı bir yorumda aynı konu
 
Maxim Dmitrievsky :

Anlıyorum, yani, aynı konu farklı bir yorumda


Yani, burada başka bir şey düşünemezsiniz)) FIR filtresini rezil etmek kolaydır - giriş tamponundan alınan alıntılar sırayla bir dizi katsayı ile çarpılır, tüm bunlar toplanır, çıktı onayını alırız. Bu, eğer keneler üzerinde çalışırsak. Veya Kapat'taysa bir bar.

Bu nedenle, böyle ve böyle bir şirketin alıntıları analiz etmek için devrim niteliğinde bir filtre geliştirdiğine dair ifadeler çok komik görünüyor)) Devrimler uzun zamandır başka alanlarda olmuştur.

 
Alexey Volchanskiy :


Yani, burada başka bir şey düşünemezsiniz)) FIR filtresini rezil etmek basittir - giriş arabelleğinden alınan alıntılar sırayla bir dizi katsayı ile çarpılır, tüm bunlar toplanır, çıktı onayını alırız. Bu, eğer keneler üzerinde çalışırsak. Veya Kapat'taysa bir bar.

Bu nedenle, böyle ve böyle bir şirketin alıntıları analiz etmek için devrim niteliğinde bir filtre geliştirdiğine dair ifadeler çok komik görünüyor)) Devrimler uzun zamandır başka alanlarda olmuştur.


Evet, birkaç yıl önce bu konunun süper dahi bilim adamlarından yeni bir devrimci keşif olarak doğrudan tüccarlara tanıtıldığını hatırlıyorum)
 
Maxim Dmitrievsky :

Evet, birkaç yıl önce bu konunun süper dahi bilim adamlarından yeni bir devrimci keşif olarak doğrudan tüccarlara tanıtıldığını hatırlıyorum)

Görünüşe göre insanları eğitim için işe almışlar. Eh, herkes elinden geldiğince kazanıyor ...