MT4 iMAOnArray ve iBandsOnArray eleman sayısının hesaplamalar üzerindeki etkisi - sayfa 4

 
Sergey Efimenko :
Hesaplamayı dizinin tamamı için değil de yalnızca son kısmı (geçerli değerler) için ayarlarsanız bu kitaplık doğru şekilde hesaplar mı? Ayrıca, bu işin sadece yarısı, peki ya iBandsOnArray?

Bir "başla" parametresi var, onu sınırlamaya çalışın.

iMAOnArray işlevinin çok yavaş olduğu bir zaman vardı. Genel olarak, yaklaşık üç saat boyunca optimize edilmiş bir kodum vardı.   iMAOnArray, ardından bu işlev yavaşlamaya başladı ve optimizasyon 30 saat sürdü.

Bu şimdi düzeltildi mi bilmiyorum. Ama MovingAverages.mqh göstergesini yaptığımda aynı kod bir buçuk saat için hesaplandı yani süre yarıya indi.

iBandsOnArray hakkında söylenecek bir şey yok, aynı göreve sahip mql4 için böyle bir include dosyası görmedim.

 
Başlangıçta iBandsOnArray ile gösterge yavaşlar. iStdDevOnArray üzerinde değiştirilir, anında başlar.
 
Alexey Viktorov :

Devam etmek.

Evet... Evlat, yürüyüşe çık.
 
Dmitry Fedoseev :
Başlangıçta iBandsOnArray ile gösterge yavaşlar. iStdDevOnArray üzerinde değiştirilir, anında başlar.
Ancak test cihazında hem iBandsOnArray hem de iStdDevOnArray ile yavaşlar.
 
Dmitry Fedoseev :
Ancak test cihazında hem iBandsOnArray hem de iStdDevOnArray ile yavaşlar.
Bir zamanlar senin iyi bir programcı olduğunu düşünmüştüm. Ama aslında, sadece parmaklarınızı açıp kavga edebilirsiniz. Sana bir şey vermiyorlar, çünkü sen çok kötüsün?
 
Alexey Viktorov :

Devam etmek.

Ve şimdi kodunuzun sonucunu ve orijinali LWMA veya SMMA düz çizgi yumuşatma modunda karşılaştırın ve farklı değerler elde edin, çünkü hesaplamalarında, bu iki tür yumuşatma kendi önceki değerlerini kullanır ve her seferinde dönemin yalnızca N öğesini kullanarak, buna göre bu verileri kaybedersiniz, ayrıca, sonunda iBands ve iMA için farklı hesaplama dönemlerine ihtiyacım olur, bu yüzden ben iki kez kopyalamanız gerekecek. Ayrıca, hesaplama için orijinal dizi aynı şekilde kullanılır. Akıl yürütmenizin mantığı benim için açık, ancak bu hatalı, çünkü dizinin uzunluğunu azaltarak, ancak aynı zamanda bir kopya yaparak ve tüm öğelerini her seferinde yeniden hesaplayarak, sonuçta optimizasyon yaparken toplam gösterge hesaplama süresini artırıyorsunuz. veya farklı zaman dilimleri için göstergenin çeşitli sürümleriyle çevrimiçi olarak çalışmak. Benim durumumda, yalnızca başlatma sırasındaki ilk hesaplama yavaşlar, ardından yalnızca 1 yeni öğe dikkate alınır. Sorun, bu işlevlerin MQL'de uygulanmasında yatmaktadır. Kendi kendine yazılan seçenekler daha iyi ve daha hızlı çalışır. Kendi sonuçlarını çıkar.
 
Dmitry Fedoseev :
Evet... Oğlum, yürüyüşe çık.
Bu bir erkek değil, çok yetişkin bir insan. Herkese "sen" diye hitap etme alışkanlığı ona saygı duymasa da IMHO :)
 
Sergey Efimenko :
Bu bir erkek değil, çok yetişkin bir insan. Herkese "sen" diye hitap etme alışkanlığı ona saygı duymasa da IMHO :)
Bu ne kadar olgun? Emekli delilik mi?
 
Sergey Efimenko :
Ve şimdi kodunuzun sonucunu ve orijinali LWMA veya SMMA düz çizgi yumuşatma modunda karşılaştırın ve farklı değerler elde edin, çünkü hesaplamalarında, bu iki tür yumuşatma kendi önceki değerlerini kullanır ve her seferinde dönemin yalnızca N öğesini kullanarak, buna göre bu verileri kaybedersiniz, ayrıca, sonunda iBands ve iMA için farklı hesaplama dönemlerine ihtiyacım olur, bu yüzden ben iki kez kopyalamanız gerekecek. Ayrıca, hesaplama için orijinal dizi aynı şekilde kullanılır. Akıl yürütmenizin mantığı benim için açık, ancak bu hatalı, çünkü dizinin uzunluğunu azaltarak, ancak aynı zamanda bir kopya yaparak ve tüm öğelerini her seferinde yeniden hesaplayarak, sonuçta optimizasyon yaparken toplam gösterge hesaplama süresini artırıyorsunuz. veya farklı zaman dilimleri için göstergenin çeşitli sürümleriyle çevrimiçi olarak çalışmak. Benim durumumda, yalnızca başlatma sırasındaki ilk hesaplama yavaşlar, ardından yalnızca 1 yeni öğe dikkate alınır. Sorun, bu işlevlerin MQL'de uygulanmasında yatmaktadır. Kendi kendine yazılan seçenekler daha iyi ve daha hızlı çalışır. Kendi sonuçlarınızı çizin.
MODE_SMA aynı olmasına rağmen yine de kullanmamalısınız.
 
Alexey Viktorov :
Bir zamanlar senin iyi bir programcı olduğunu düşünmüştüm. Ama aslında, sadece parmaklarınızı açıp kavga edebilirsiniz. Sana bir şey vermiyorlar, çünkü sen çok kötüsün?
Peki, iyi, rüya.