Hatalar, hatalar, sorular - sayfa 3027
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
Göstergeler benim en zayıf noktam)))
Ancak!
Ya ben hiç bir şey anlamadım ya da biraz yanılıyorsunuz.
Bildiğim kadarıyla prev_calculated, hesaplanmamış verilerin sayacıdır. Ve alınan veriler hesaplandığından, bu sayaç sıfırlanır ... Aynen, bu kadar, dostum, hesaplanacak yeni veri yok ....)))
Ve bu durumda gösterge hangi nedenle tamamen yeniden hesaplanmalıdır - bilmiyorum!
---------------
biraz yalan söyledim)))
Göstergeler yeniden çizilmez, "hindi" sadece tarihe "güzel" görünmek için ;)
sayaç, programlayıcının kontrolü dışındaki nedenlerle, gösterge ilk kez başlatılmış gibi başlangıç durumuna sıfırlanır!
Bu her yeni barda mı? Reasürans falan..
Her birinde değilse, prev_calk'ın sıfırlanmasının farklı nedenleri vardır.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Andrey Dik , 2021.05.27 13:53
verilerin alındığı yeni bir zaman dilimi çubuğu göründüğünde, ön_hesaplanan sayaç sıfırlanır. bu, tüm göstergenin ilkinde başlatılmış gibi yeniden hesaplanacağı anlamına gelir .
Bu yapı tanıdık geldi mi?
bu EA'nın mantığı değil (yeniden çizme, yeniden çizme, eksik çizme veya başka bir şey), ama kimse istemezken prev_calculated'ın sıfıra sıfırlanması gerçeği!
Bence sorun şu:
Başka bir TF üzerindeki aranan göstergenin her tikte hesaplanmasına izin vermiyorsunuz ve ardından onu çağırıyorsunuz ve geçmiş senkronize ediliyor ve bu gösterge sıfırdan hesaplanıyor.
bir test çizdim, aradığım gösterge her şeyi sayar ve prev_calculated == 0 olarak sıfırlanmaz
kapatma göstergesini çizin ve yeni çubuğu ve prev_calculated == 0 olayını yazdırın:
bu göstergeyi çağırın (tamponun son 2 değerini alırız) ve ayrıca TF'mize yaklaşın:
M1'deki son göstergeyi başlattı, günlük:
2021.05.27 21:48:34.196 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:48:00
2021.05.27 21:48:34.197 tst_tf (EURUSD,M1) tst_tf önceki_hesaplanmış == 0
2021.05.27 21:48:34.197 tst_tf (EURUSD,M1) Hata CopyBuffer#4806
2021.05.27 21:48:34.197 tst (EURUSD,M5) tst Yeni bar 2021.05.27 21:45:00
2021.05.27 21:48:34.197 tst (EURUSD,M5) tst prev_hesaplanmış == 0
2021.05.27 21:49:01.636 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:49:00
2021.05.27 21:50:00.149 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:50:00
2021.05.27 21:50:00.149 tst (EURUSD,M5) tst Yeni bar 2021.05.27 21:50:00
2021.05.27 21:51:01.789 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:51:00
2021.05.27 21:52:02.832 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:52:00
2021.05.27 21:53:00.920 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:53:00
2021.05.27 21:54:02.778 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:54:00
2021.05.27 21:55:000.308 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:55:00
2021.05.27 21:55:000.308 tst (EURUSD,M5) tst Yeni bar 2021.05.27 21:55:00
2021.05.27 21:56:00.118 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:56:00
2021.05.27 21:57:000.419 tst_tf (EURUSD,M1) tst_tf Yeni bar 2021.05.27 21:57:00
Bu her yeni barda mı? Reasürans falan..
Her birinde değilse, prev_calk'ın sıfırlanmasının farklı nedenleri vardır.
tam olarak eski TF'nin her yeni çubuğunda.
Örneğin, gösterge M1 üzerinde çalışıyorsa ve M5 üzerindeki göstergeye atıfta bulunuyorsa, gösterge her 5 dakikada bir tamamen yeniden hesaplanacaktır. optimizasyonda önemli bir yavaşlama garanti edilir.
Bence sorun şu:
Başka bir TF üzerindeki aranan göstergenin her tikte hesaplanmasına izin vermiyorsunuz ve ardından onu çağırıyorsunuz ve geçmiş senkronize ediliyor ve bu gösterge sıfırdan hesaplanıyor.
bir test çizdim, aradığım gösterge her şeyi sayar ve prev_calculated == 0 olarak sıfırlanmaz
kapatma göstergesini çizin ve yeni çubuğu ve prev_calculated == 0 olayını yazdırın:
bu göstergeyi çağırın (tamponun son 2 değerini alırız) ve ayrıca TF'mize yaklaşın:
İstenen kıdemli TF (M5) üzerinde veri senkronizasyonu ve üzerindeki göstergenin hazır olup olmadığını kontrol ediyorum, hazır değilse çıkıyorum.
sonuç olarak, gösterge M1 çubuğunun açılışında yalnızca bir kez çalışır ve her tikte çalışmaz:
Özel prev calc'inizi gerçekten kullanmak zorunda mısınız? Umarım geliştiriciler ricalarıma kulak verir.
İstenen kıdemli TF (M5) üzerinde veri senkronizasyonu ve üzerindeki göstergenin hazır olup olmadığını kontrol ediyorum, hazır değilse çıkıyorum.
sonuç olarak, gösterge M1 çubuğunun açılışında yalnızca bir kez çalışır ve her tikte çalışmaz:
Özel prev calc'inizi gerçekten kullanmak zorunda mısınız? Umarım geliştiriciler ricalarıma kulak verir.
bu, göstergelerde düzgün çalışmamalıdır:
yanılmıyorsam, yardım, tüm zaman dilimleri için veri yüklemek için komut dosyasının bir ayrıştırmasını içerir ve göstergenin çalışması nedeniyle göstergeden geçmiş verileri bu şekilde talep edemeyeceğinize dair bir uyarı olmalıdır. asenkron olarak
Evet ve tutamacı bağladıktan sonra BarsCalculated() öğesinin bir kez kullanılması önerilir
UPD: takas geçmişi için komut dosyası ve göstergelerde neden çalışmadığının açıklaması: https://www.mql5.com/en/docs/series/timeseries_access
İstenen kıdemli TF (M5) üzerinde veri senkronizasyonu ve üzerindeki göstergenin hazır olup olmadığını kontrol ediyorum, hazır değilse çıkıyorum.
sonuç olarak, gösterge M1 çubuğunun açılışında yalnızca bir kez çalışır ve her tikte çalışmaz:
Özel prev calc'inizi gerçekten kullanmak zorunda mısınız? Umarım geliştiriciler ricalarıma kulak verir.
Neden böyle bir kontrol?
Koşul dönüşü 0 olmadan yazmak daha kolay olacaktır; ve her şey...
Her yeni çubukta koşul karşılanacak ve senkronizasyondan bağımsız olarak tüm çubuklar yeniden hesaplanacaktır. Döküntü kodu yazdınız ve onu bir terminal hatası olarak ilettiniz ...
Neden böyle bir kontrol?
Koşul dönüşü 0 olmadan yazmak daha kolay olacaktır; ve her şey...
Her yeni çubukta koşul karşılanacak ve senkronizasyondan bağımsız olarak tüm çubuklar yeniden hesaplanacaktır. Döküntü kodu yazdınız ve onu bir terminal hatası olarak ilettiniz ...
tekrar düşün.