Yazarın diyalogu. Alexander Smirnov. - sayfa 14

 
Yurixx :
Özel :

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.

 
VBAG :
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.

 
Prival :

Ama şimdi bir hafta boyunca test cihazında çalıştıramıyorum. Korkarım aniden oldu :-( .


Evet ve oluyor. :-))
 
Levov yazdı:
Örneğin, 50 periyodu olan JMA ve SSA. Doğru, SSA'ya dayalı ancak yeniden çizim yapmayan CSSA'm var. Çok hızlı. Bu algoritmayı tavsiye ederim...

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.
 
Yurixx :
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.
 
Prival :

Sonunda Kalman filtresini tamamladık.

Kalman temasını senin zorladığını mı söylüyorlar? Ve ben bu tartışmayı kaçırdım. Bununla ilgili nerede görebilirsiniz?

Not Konuyla ilgili bir dosya ekledim - belki biri ilgilenir.
 
Evet, kendine yükleyici dedi - vücuda tırmanın. Tamam, Sergey , işte sana bir kanıt (kendime güvenim için hala buna ihtiyacım var):

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.
 
Alexey! Tekrar yırtın! Ve hala LRMA'mın (daha doğrusu Omega) "/6" formülündeki yerden kafamı kaşıyorum!
 
VBAG :
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.

Neden: