Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Burada VBAG önce 1 gösterge yayınladı, ardından başka bir göstergeyle değiştirdi (her şeyi gördüm :-) ) ve üçüncü ama zaten bir uzman yayınladı. Ve beni matematikçinin haklı olduğuna ikna edecek hareketli resmi hala göremiyorum. Böyle inatçı bir "aptal" askeri adam :-) kör inanca dayanamazsın :-)
Bilmiyorum Sergey, neden hareketli resimlere ihtiyacın var ama senin için 2 satırlık bir gösterge yapabilirim. Biri LRMA, diğeri 3*LWMA-2*MA. Tamamen uyumlu olacaklar, yani. biri diğerinden dolayı görünmeyecektir. Bu diğerinin rengini kapatıyorsun - ilkini görüyorsun. Rengi açıyorsunuz - sadece ikinciyi görüyorsunuz.
Size bir denklik kanıtı gönderirdim, kısa - sadece bir düzine satır. Ancak doğrusal regresyonun uygulanması için analitik bir biçimde elde edilen formüllere dayanır. Her şeyi sayılarla saymamak için, ancak mümkünse sonlu formüller kullanın - daha az döngü, daha hızlı kabul edilir. Ancak bunlar zaten oldukça uzun hesaplamalar, Word'de homurdanma isteksizliği.
Teşekkür ederim. kendim deneyeceğim. Rahatlamaya ihtiyaç duymak. Sonunda Kalman filtresini tamamladık. Ama şimdi bir hafta boyunca test cihazında çalıştıramıyorum. Korkarım aniden oldu :-(. Hata arıyorum, verileri ona daha iyi hazırlamaya çalışıyorum, tahmini daha da doğru hale getirmeye çalışıyorum. Matcad'de çalışıyor ama koşmaya korkuyorum test cihazında.
Dama veya regresyon hesaplamak için daha rasyonel algoritmalarınız varsa, bir göz atmak çok ilginç olurdu!
Algoritma demek çok gürültülü ama sana bir fikir verebilirim. Prensip basit: hızla kazanırsın, hafızada kaybedersin. İlki daha fazlasına ihtiyaç duyduğu için hafızayı yükleyeceğiz.
Örneğin, basit bir SMA. Yerleşik algoritma evrensel olmalı ve bağlamdan bağımsız olarak her yerde hesaplamalıdır. Ve kendi programınızda önceki hesaplamaların sonuçlarını kullanabilirsiniz. Yeni bir SMA değeri hesaplamak için, önceki N fiyat değerlerinin toplamını almanız, ilkini ondan çıkarmanız ve yenisini - mevcut olanı eklemeniz gerekir. Ve sonra bu miktarı N'ye bölün. Bu nedenle, önceki N fiyatlarının toplamı ve bu N fiyatlarının bir dizisini içeren bir değişken boyunca sürüklemeniz ve bu miktarı ve diziyi her çubukta güncellemeniz gerekir. Sonuç olarak, her çubuktaki SMA'yı hesaplamak için 3 operatörün yürütülmesi gerekir: miktarı güncelle , dizi öğesini güncelle ve SMA değerini hesapla. Döngü yok.
Ama şimdi bir hafta boyunca test cihazında çalıştıramıyorum. Korkarım aniden oldu :-( .
Evet ve oluyor. :-))
Elbette konu dışı, ama yine de ilginç - LeoV , ancak aynı geliştiriciden CSSA Döngüleri göstergesinin bir resmini gösterebilir misiniz (hisse senetlerinde çok güzel görünüyor)? Forex tekliflerinde nasıl göründüğünü görmek istiyorum.
Sonunda Kalman filtresini tamamladık.
Not Konuyla ilgili bir dosya ekledim - belki biri ilgilenir.
Diyelim ki zaman okumalarımız var - t = 1, 2, ... N. N - mevcut çubuk, "sıfır". Bu örnekler Kapat(1), Kapat(2), ... Kapat(N) maddelerine karşılık gelir. Cümlelerden en küçük karelere göre geçen y = A*t+B doğrusunu oluşturmaya çalışalım. Ve sonra A * N + B'yi hesaplıyoruz, yani. Geçerli çubukta LRMA.
Kare hataların toplamını hesaplayın:
Delta^2 = Toplam( y(i) - Kapat(i) )^2; i = 1..N ) = Toplam( ( A*i + B - Kapat(i) )^2; i = 1.. N)
Bu shnyaga'yı A ve B'ye göre farklılaştırıyoruz ve A ve B optimal kümeleri için bir denklem sistemi elde ediyoruz:
Toplam( ( A*i + B - Kapat(i) ) * ben); ben = 1..N ) = 0
Toplam( A*i + B - Kapat(i) ); ben = 1..N ) = 0
Miktarları genişleterek şunu elde ederiz (gösterimi basitleştirmek için indeks aralıklarını atlıyorum):
A*Sum( i^2 ) + B*Sum( i ) = Toplam( i*Kapat(i) )
А*Sum( i ) + B*Sum( 1 ) = Toplam( Kapat(i) )
Prival , şimdi doğru kısımlara bakın. İlk denklemde sağdaki toplam, yalnızca normalleştirme faktörü olmadan zaten neredeyse LWMA'dır. İkincisi, onsuz da SMA'dır. İşte bu arabalar için tam formüller:
LWMA = 2/(N*(N+1)) * Toplam( i*Kapat(i) )
SMA = 1/N * Toplam( Kapat(i) )
Şimdi 1'den N'ye kadar olan doğal sayıların karelerinin toplamının neye eşit olduğunu hatırlıyoruz (bu N * (N + 1) * (2 * N + 1) / 6), onu sistemimize değiştiriyoruz ve şunu elde ediyoruz:
A * N*(N+1)*(2*N+1)/6 + B * N*(N+1)/2 = LWMA * N*(N+1)/2
A * N * (N + 1) / 2 + B * N \u003d SMA * N
Basitleştirme:
A * (2*N+1)/3 + B = LWMA
A * (N+1)/2 + B = SMA
Sistemi çözmeyeceğim, tembellik (burada her şey zaten açık). İlk denklemi 3 ile ve ikinciyi 2 ile çarpıyorum ve sonra ikinci terimi birinciden terim terim çıkarıyorum:
A * (2*N+1) + 3 * B - A * (N+1) - 2 * B = 3 * LWMA - 2 * SMA
Solda, sadeleştirmeden sonra A * N + B kalır, yani. tam olarak N noktasındaki regresyonumuz.
Bu yöntem muhtemelen mantıklıdır, ancak yalnızca dönemler küçükse. Ve hafıza ana sebep değil. Yeniden başlattığınızda, arkanızda sürükledikleriniz kaybolur. Genel olarak, harika.Cevap için teşekkürler.
Bu yöntem herhangi bir dönem için iyidir. Yeniden başlattığınızda, elbette her şey kaybolur. Ancak, başlangıçta, her zaman ilk önce bu basit algoritmayı tüm grafik üzerinde çalıştırarak gerekli bilgileri oluşturabilirsiniz. Ve her şey için değil, sadece yeterli bir parça için mümkündür.
Bu yöntemin yalnızca bir dezavantajı vardır - bir iMA yerine, kendi ellerinizle belirli sayıda kod satırı yazmanız gerekir. :-)
Alexey'e teşekkürler. Kalemle oturacağım. A ve B'ye göre türevler şöyledir
tekrar kontrol edildi cevap doğru, evet gerçekten A*N+B=3*LWMA-2*SMA
matematikçi türev alırken ikiliyi kaçırmış olsa da.
ve bunların N noktasında değil, (N-1)/2 noktasında çakışmaları gerektiğine dair belirsiz şüpheler beni rahatsız ediyor. Bulaşev s.156. Beğenmek. İşte N noktasında eşleşen bir resim. Yani oldukça yanılıyorum.