MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 361
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Soru farklıdır, bir kene ile gösterge kodunu 900 kez (örneğin 300 çubukluk 3 zaman dilimi) veya 3 kez hesaplayın, icustom ile daha az yaygara olduğu açıktır, onu bir döngüye ve işe attım, çünkü bir değişken, bir danışmana gösterge değerleri dizisinin adresini dll kullanarak gördüm, ancak göstergeyi kitte sürüklemek istemiyorum
Sorunun formülasyonunda bir başka hata.. Danışmanda neden 900 bara ihtiyacınız var? Doğru ayarlanmış bir görev, göstergeden 2-3 çubuğun okunmasını gerektirir.Göstergede gerçekten veriye ihtiyacınız varsa, 900 parça, o zaman bunlarla göstergenin kendisinde çalışın, neden bunları danışmana sürükleyin? Doğru görev %50 başarıdır
Sorunun formülasyonunda bir başka hata.. Danışmanda neden 900 bara ihtiyacınız var? Doğru ayarlanmış bir görev, göstergeden 2-3 çubuğun okunmasını gerektirir.Göstergede gerçekten veriye ihtiyacınız varsa, 900 parça, o zaman bunlarla göstergenin kendisinde çalışın, neden bunları danışmana sürükleyin? Doğru görev %50 başarıdır
Trendleri belirlemek için örneğin 5dk 15dk ve 30dk gibi 3 zaman diliminde göstergenin minimum ve maksimum zirvelerini karşılaştırmam gerekiyor, zirveleri tahmin edemem, yani tümünden geçmem gerekecek tarih tek tek. Örnek olarak 300 bar tarihi aldım.
Her neyse, icustom'ı kullanmak çok kaynak yoğun.
Trendleri belirlemek için örneğin 5dk 15dk ve 30dk gibi 3 zaman diliminde göstergenin minimum ve maksimum zirvelerini karşılaştırmam gerekiyor, zirveleri tahmin edemem, yani tümünden geçmem gerekecek tarih tek tek. Örnek olarak 300 bar tarihi aldım.
Her neyse, icustom'ı kullanmak çok kaynak yoğun.
Ontick fonksiyonunda soru açık kalıyor IndicatorCounted() ilk hesaplamada -1 veriyor Expert Advisor'da nasıl değiştirilebilir?
"Hiçbir şeyle değiştirmenize gerek yok" - yani, Uzman Danışmanda onTick ile ve göstergede onCalculate ile çalışıyor mu?
Hayır, orada buna hiç gerek yok demek istedim.
Hayır, orada buna hiç gerek yok demek istedim.
https://www.mql5.com/en/articles/1456 , anladım, ama daha basit bir seçenek olduğunu düşündüm
Ontick fonksiyonunda soru açık kalıyor IndicatorCounted() ilk hesaplamada -1 veriyor Expert Advisor'da nasıl değiştirilebilir?
Her tike bakmanıza gerek yok, değişmezler.
Danışmanda, çubuğun açılışında döngüyü kontrol edin ve üst bulunur bulunmaz döngüden çıkın.
IndicatorCounted() işlevi daha önce start() işlevine sahip göstergelerde kullanılıyordu. OnCalculate() işlevine sahip yeni göstergelerde, bunun yerine ikinci parametre prev_calculated kullanılır. Onları özel olarak inceledim ve 1 ile farklılık gösterdiklerini buldum. Fark küçüktür ve zaten kaç çubuğun hesaplandığını gösterirler. 0 (veya -1) ise, tüm çubukların hesaplanması gerekir. Bu, gösterge başlatıldığında, tüm satırı çizmesi ve sonucu arabellek dizilerinde saklaması gerektiğinde gerçekleşir. Sonraki tiklerde, yalnızca son çubuğun verileri yeniden hesaplanmalıdır. Bu nedenle, sıfır (veya -1) değeriyle yapılanlar Expert Advisor'ın OnInit()'ine yerleştirilmelidir. Gerisi - çok az - OnTick()'te
Teşekkür ederim. Çalışacağım. Nedense ders kitabında uzun tiple ilgili hiçbir şey okumadım.
İmleci uzun int veya kısa (veya dilin herhangi bir başka kelimesi) üzerine getirmeniz ve F1 tuşuna basmanız gerekir.
Çok teşekkür ederim ama fonksiyonun açıklamasından anladığım kadarıyla benim belirttiğim yerde yani tüm köşeleri almak için tek bir değer almak için gösterge kodunun tamamını çalıştırıyor yani hesaplamam gerekecek gösterge kodu n'inci kez (tüm çubukları tek tek geçmek için) ve bu göstergenin üst sıralarını birkaç zaman diliminde karşılaştırmam gerekiyor.
Ayrıca, köşeleri manuel olarak arayın
Kesinlikle doğru değil! iCustom() kullanılarak bir EA'dan çağrıldığında, göstergenin tüm çubukları yalnızca bir kez yeniden hesaplanır! Göstergenin sonraki tüm çağrıları önceden hesaplanmış sonuçlarla çalışır, yalnızca önceki çağrıdan önceki hesaplanmamış çubuklar yeniden hesaplanır. Örneğin, her yeni çubukta H1 grafiğinden M15 döneminin göstergesi çağrılır, çağrıdan aramaya göstergenin 4 15 dakikalık çubuk için yeniden hesaplanmadığı ortaya çıkar. Dolayısıyla sadece bu 4 çubuk yeniden hesaplanacaktır.
0'dan xxx'e kadar olan çubuk dizisi arasında geçiş yapsanız bile, gösterge ilk aramada yalnızca 1 kez yeniden hesaplanacaktır. Aşağıdaki tüm aramalar herhangi bir yeniden hesaplama yapmaz.
https://www.mql5.com/en/articles/1456 , anladım, ama daha basit bir seçenek olduğunu düşündüm
Bu kötü bir örnek. O zaten 10 yaşında!!! Dil zaten daha iyiye doğru değişti.