Fourier Dönüşümlerini Kullanarak Geleceği Tahmin Etme - sayfa 2

 
ANG3110 :

Sadece bir şey ekli göstergeyi çizmez.

çizer. Grafiği sola kaydırın ve göreceksiniz.

 

Paralel başlıkta 'Bu Mashkino'nun işi değil!' "ideal MA" kullanarak tahminin bir tartışması var. Kusursuz yumuşatmanın ancak burada yapıldığı gibi Fourier ve eşikleme kullanılarak elde edilebileceğini düşünüyorum. En doğru tahmin, örnekleme penceresinin tam ortasındadır. Benzer çalışmaların yapılması gerekir, ancak MA değil, bu algoritma temel alınır.

İkinci olarak, eşiğin ( porog ) değerini matematiksel olarak doğrulamak ve böylece bu değerin numaralandırma (optimal arama) değerinden kurtulmak mümkündür.

Üçüncüsü, tahmin süresini artırmak için, değerin mevcut ölçümlerinin doğruluğunu artırmak gerekir, bu iki şekilde mümkündür - birkaç para biriminin eşzamanlı analizi veya teklif sağlayıcılarının sayısında artış, burada bununla ilgili bir 'Tick Collectors'. Optimizasyon. VB'de DDE (VBA)'

 

geleceği görmek için

grafik penceresinin ayarlarında " Grafik kaydırma " kutusunu işaretlemek gerekir,

harici int InPast=0,

extern int Futur=100-kaç çubuk tahmini

 

Porog'a gelince, temelde bu kısmı yeniden yapacağım, aksi takdirde herhangi bir frekans eşikten geçtiğinde, grafik çarpıcı biçimde değişir, belki klot'un yaptığı gibi bırakırım veya yumuşak bir azalma yaparım.

 

Komik pislik, teşekkürler!

Gerçek koşullarda konuşmak için şimdi test cihazında test ettim. Bazen tahmin örtüşür ve bazen karşıt resmin ayna görüntüsünü gösterir, özellikle bu genellikle güçlü bir hareketten önce veya güçlü bir hareketin sonunda olur.

Grafiğe aynı anda farklı iki güç parametresine sahip 3 gösterge uygulanırsa, örneğin 8, 9 ve 10, genellikle farklı yönlere bakarken çok ilginç bir resim elde edilir. Ama ya verilen 3 gösterge arasındaki ortalama değeri kullanmaya çalışırsanız???

Denemedin mi?

 
m_keeper :

Porog'a gelince, temelde bu kısmı yeniden yapacağım, aksi takdirde herhangi bir frekans eşikten geçtiğinde, grafik çarpıcı biçimde değişir, belki klot'un yaptığı gibi bırakırım veya yumuşak bir azalma yaparım.

Yapılması gereken bir şey daha, FFT'den uzaklaşmaktır (ikinin gücü en uygun pencereyi bulmak için en iyi seçim değildir). Daha iyi ayrık dönüştürme.

Eşik konusunda ideal bir gözlemci olan Neiman Pearson için kriterler var, onlara bakın. Bu teorinin uygulanması, optimizasyondan uzaklaşmanıza (geçmişte en uygun değeri aramanıza) izin verecek ve uyarlanabilir bir eşik oluşturmanıza izin verecek, epeyce uygulama seçeneği var.

 

Sanki dijital kameranın bir köşesi şimdi bu konu içerisinde :), o zaman işte böyle bir düşünce-soru. Fiyat tablosu için ortalama spektral yoğunluğu alırsak, bu tür bir resim elde ederiz.


Düşük frekanslar için bunun iyi bir 1/f olduğu görülebilir, ancak yüksek frekanslar için bu yasadan gözle görülür bir sapma vardır. Bu bir süre önce tartışıldı ve ana versiyon bir tür sayısallaştırma gürültüsüne sahip olduğumuzu önerdi. Buradaki düşünce, bu bileşeni filtrelemenin yararlı olabileceğidir. Yani, tüm frekans aralığı için temiz bir 1 / f bırakın. Ve soru bunun nasıl yapılacağıdır. Teoride, girdi olarak bir dizi spektral yoğunluk alan ve çıktı olarak dijital filtre katsayılarını veren bir tür prosedüre sahip olmanız gerekir. Prensip olarak, Fourier genlikleri için ağırlık fonksiyonunu basitçe hesaplamak akla gelir, ancak dijital bir filtrenin kullanılması daha ekonomik olacaktır.
 

Kitaplık şimdi __lib_FFT.mq4 dosyasını içerir ve gösterge metni #_lib_FFT.mq4'ü içerir, bu nedenle çizilmez.

 
Prival :
m_keeper :

Porog'a gelince, temelde bu kısmı yeniden yapacağım, aksi takdirde herhangi bir frekans eşikten geçtiğinde, grafik çarpıcı biçimde değişir, belki klot'un yaptığı gibi bırakırım veya yumuşak bir azalma yaparım.

Yapılması gereken bir şey daha, FFT'den uzaklaşmaktır (ikinin gücü en uygun pencereyi bulmak için en iyi seçim değildir). Daha iyi ayrık dönüştürme.

Eşik konusunda ideal bir gözlemci olan Neiman Pearson için kriterler var, onlara bakın. Bu teorinin uygulanması, optimizasyondan uzaklaşmanıza (geçmişte en uygun değeri aramanıza) izin verecek ve uyarlanabilir bir eşik oluşturmanıza izin verecek, epeyce uygulama seçeneği var.

Prensipte 2. dereceden kurtulmak çok kolaydır:

 w = 2 * pi / T ;

for ( int k = 0 ; k <= N ; k ++ )
   {                                                               
       sum_cos = 0.0 ; 
       sum_sin = 0.0 ;                                           
       for ( int n = 0 ; n < T ; n ++ ) 
       {
         sum_cos += Close [ n ] * MathCos ( k * n * w ) ; 
         sum_sin += Close [ n ] * MathSin ( k * n * w ) ;
       }
       ak [ k ] = sum_cos * 2 / T ; 
       bk [ k ] = sum_sin * 2 / T ;
   }
   ak [ 0 ] = ak [ 0 ] / 2 ;
   //------------------------------------
   for ( n = T - 1 ; n >= 0 ; n -- )
   {                                                         
       sum = 0.0 ;                                       
       for ( k = 0 ; k <= N ; k ++ )
       {                                                              
         sum += ak [ k ] * MathCos ( k * n * w ) + bk [ k ] * MathSin ( k * n * w ) ;
       }                                                              
       fx [ n ] = sum ;
   }

N harmonik sayısıdır,

T - dönem.


Optimum pencere veya daha doğrusu en uygun periyot T, minimum standart sapmaya göre ve harmonik genliklerin maksimum toplamına göre 2 kritere göre seçilmesi en kolay olanıdır. Ancak piyasanın çok dalgalı modeli nedeniyle, birkaç optimal pencere olacaktır.

Ayrıca, sinüs ve kosinüslerin periyodik doğası nedeniyle, bir tahminde bulunmaya çalışırken, önceki periyodik bileşenlerin basitçe sona ekleneceğini ve tekrarlama olasılığı oldukça yüksek olmasına rağmen, fazın, ve özellikle genlik yine de farklı olacaktır ve burada aslında her şeye ihtiyaç vardır - bir faz dedektörü gibi fazı ayarlamak için zaman.


Fazı MathArctan() olarak tanımlamak iyi değildir, arctan'ın özelliklerinden dolayı en az +/- pi/2 dikkate alınmalıdır.

Aşamayı biraz farklı tanımlamak daha iyidir.

 

FFT'den ayrılmak gereksizdir, aslında diziyi tam olarak içindeki isabetlere bölmek gerekli değildir, sayım hızını artırmak için bölünür ve kesinlikle ikiye bölünmesi gerektiği için değil. Bir şekilde herhangi bir uzunlukta bir dizi ile çalışan bir FFT ile çalıştım, sonra bir şekilde onu mql altında yeniden yazacağım.


Şimdi hangi işaretlerle yanlış tahminleri belirlemenin mümkün olduğunu belirlemeye çalışıyorum.

burada n=9 ve n=10 olan iki resim var

her iki durumda da, pencerenin kuyruğu keskin bir sıçrama yaptı, bu da muhtemelen geleceğe çarptı.

Şimdi serinin ön işlemesini deniyorum, aniden yardımcı olacak.


Yumuşatma durumunu değiştirdim, artık grafik sarsıntısı yok, her şey sorunsuz çalışıyor.


Grafiğin yeniden çizilmesine gelince - bunda herhangi bir sorun görmüyorum.

Kapanış fiyatları henüz geçmişte değil, onları yaratan şey - dalgalar (Fourier durumunda) geçmişte kaldı

ve her yeni çubukla onlar hakkında daha fazla şey öğreniyoruz.

Dosyalar: