Hatalar, hatalar, sorular - sayfa 1681
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
Alıntıların açık veya kapalı olması önemli değil. Göstergede, prev_calculate==0 koşulunu kontrol etmeniz gerekir - bu, geçmişin değiş tokuşudur ve ikinci nokta, değişen çubukları yeniden hesaplamanın koruma modudur, yani, aslında, Rates_total -prev_calculate+1.
Önce yazılanları okuyacak, sonra cevap vereceksin. Hata ayıklayıcı hatasını yeniden oluşturmak için kod! Tüm oynatma verileri verilir.
İşte aynı hatayı yeniden oluşturmak için bir komut dosyası
Önce yazılanları okuyacak, sonra cevap vereceksin. Hata ayıklayıcı hatasını yeniden oluşturmak için kod! Tüm oynatma verileri verilir.
Size cevap verdim - OnCalculate'in kaç kez çağrıldığı umurunuzda değil. Göreviniz, iki değeri analiz ederek göstergenin tam veya kısmi yeniden hesaplanmasını sağlamaktır: oranları_toplam, ön_hesapla ve ön_hesapla==0 olduğunda koşul.
OnCalculate()'in bir veya iki kez çağrılması gereken zor ve hızlı koşullar yoktur. OnCalculate() kimseye hiçbir şey borçlu değildir. Ancak programcı iki değeri kontrol etmelidir: Rate_total, prev_calculate ve prev_calculate==0 olduğunda koşul.
Size cevap verdim - OnCalculate'in kaç kez çağrıldığı umurunuzda değil. Göreviniz, iki değeri analiz ederek göstergenin tam veya kısmi yeniden hesaplanmasını sağlamaktır: oranları_toplam, ön_hesapla ve ön_hesapla==0 olduğunda koşul.
Hata ayıklayıcının kaç kez çağrıldığını ve OnCalculate'in kaç kez çağrıldığını umursuyorum. Ben doğası gereği bir BORE'um! Ve bununla ilgili her şeye sahibim.
Sorunun özünden tamamen habersizsin, bana bir şeyler öğretmeye çalışıyorsun. Tabii ki teşekkür ederim. Ama dinleyelim ve rakibimizi duyalım.
Hayır, şu anda alıntılar durduğunda RTS çalıştırıyorum. Bir kez çağrıldığını öğrendim ve hata ayıklayıcı yalan söylüyor, iki olduğunu gösteriyor. Oynatılacak kod (tiklerin olmadığı bir sembol üzerinde çalıştırın)
F5'e bastıktan sonra bir kesme noktasına ulaşılacaktır. Ve F5'e ikinci basıştan sonra - benzer şekilde. Bu olmamasına rağmen - bir onay olarak, koddaki satırın yorumunu kaldırabilir ve onunla deneyebilirsiniz.
Bu şekilde neler olduğunu görebilirsiniz. Birinci ve ikinci duraklarda i değerini takip edin.
Bu şekilde neler olduğunu görebilirsiniz. Birinci ve ikinci duraklarda i değerini takip edin.
takip ettim o yüzden yazdım
Bir kez çağrıldığını öğrendim ve hata ayıklayıcı yalan söylüyor, iki
Hata ayıklayıcı neden F5'e ikinci kez bastıktan sonra beni aynı yere geri götürüyor? return(0) ile bu olmaz, ki bu doğrudur.
Evet, yalan söylemez, ancak iki kez durur - parantez içindeki ifadeyi hesaplamadan önce ve ondan sonra, geri dönmeden hemen önce.
Bu arada, bence çok uygun bir özellik. Hatırlamak gerek. Çıkmadan önce dönüş değerini kontrol etmek için sonucu parantez içinde ayrı bir değişkene koymanız gerekmez, hata ayıklayıcı tekrar kendini durduracaktır.
Evet, yalan söylemez, ancak iki kez durur - parantez içindeki ifadeyi hesaplamadan önce ve ondan sonra, geri dönmeden hemen önce.
Bu arada, bence çok uygun bir özellik. Hatırlamak gerek. Çıkmadan önce dönüş değerini kontrol etmek için sonucu parantez içinde ayrı bir değişkene koymanız gerekmez, hata ayıklayıcı ikinci kez kendini durduracaktır .
Bu kodu koyun:
ve göstergeyi çizelgeye çizin . Ardından terminali yeniden başlatın (göstergeyi tablodan kaldırmanız gerekmez). OnCalculate() öğesinin bir, iki, hatta üç kez çağrılabileceğini göreceksiniz. Yani, yukarıda söylediğim gibi - zor ve hızlı kurallar yoktur.
Bu kodu koyun:
ve göstergeyi çizelgeye çizin . Ardından terminali yeniden başlatın (göstergeyi tablodan kaldırmanız gerekmez). OnCalculate() öğesinin bir, iki, hatta üç kez çağrılabileceğini göreceksiniz. Yani, yukarıda söylediğim gibi - zor ve hızlı kurallar yoktur.
uygun olduğuna katılıyorum. Ancak hata ayıklayıcıda bir değişken olmadan çıkmadan önce dönüş sonucunu nasıl anlarsınız?
Çıkmadan önce ne döndürdüğünü görmek için Func() gövdesine bakın. Belirli bir vakadan bahsediyorum. Değer doğrudan parantez içinde hesaplanacaksa, elbette hiçbir şekilde.
not. Gerçi... Neden olmasın? İkinci durakta, tüm return() argümanlarının değerlerine bakın ve sonucu hesaplayın. )