Hatalar, hatalar, sorular - sayfa 2484
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sevgili geliştiriciler, bir sorunla karşılaştım. Dikkatinize ihtiyaç var.
Buradaki nokta, TesterStop() ve ExpertRemove ()'un testi hemen durdurmamasıdır. Hatanın bir örneği burada . Bu gönderideki bazı inkontinans için özür dilerim.
TesterStop() veya ExpertRemove() tarafından yapılan testi durdurmanın bir işareti olan MQL_TESTER_STOP sabitini tanıtmanın daha doğru olacağını düşündüm.
Bu durumda, başka eylemler seçilebilir:
Expert Advisor'ın hemen durdurulması, bellek bozulması anlamına gelir. Expert Advisor'ın hemen durdurulmasından sonra, serbest bırakılmamış bellek blokları kalabilir. Bu nedenle Expert Advisor'ın anında durdurulması, yalnızca istemci terminali veya test aracısı sonlandırıldığında ve yalnızca Expert Advisor durdurma bayrağını işlemez ve yürütmeye devam ederse kullanılır.
TesterStop, testi bitirme komutunu verir. Bu, mevcut OnInit, OnTick, OnTimer, OnChartEvent işleyicisinin tamamlanmasından sonra, işleme döngüsü tamamlanacağı için artık hiçbir test cihazı olayının işlenmeyeceği anlamına gelir. Ve OnTester ve OnDeinit çağrılacak
Expert Advisor'ın hemen durdurulması, bellek bozulması anlamına gelir. Expert Advisor'ın hemen durdurulmasından sonra, serbest bırakılmamış bellek blokları kalabilir. Bu nedenle Expert Advisor'ın anında durdurulması, yalnızca istemci terminali veya test aracısı sonlandırıldığında ve yalnızca Expert Advisor durdurma bayrağını işlemez ve yürütmeye devam ederse kullanılır.
TesterStop, testi bitirme komutunu verir. Bu, mevcut OnInit, OnTick, OnTimer, OnChartEvent işleyicisinin tamamlanmasından sonra, işleme döngüsü tamamlanacağı için artık hiçbir test cihazı olayının işlenmeyeceği anlamına gelir. Ve OnTester ve OnDeinit çağrılacak
Teşekkürler, anladım zaten. Ama bu sorunu çözmez. MQL_TESTER_STOP sabiti veya dönüşü void'den bool'a değiştirerek çözülebilir.
Beklenmedik bir karar Alexey Viktorov tarafından önerildi. TesterStop()'tan sonra dönüşü kullanırsanız, her şey normale dönmüş gibi görünüyor. Bu kişisel olarak nasıl ve neden oluyor, yetişemiyorum ... Yine de ...
Buradan, bu noktayı belgelere ekleyin veya void'i bool olarak değiştirin.
not 2085'te bu sorunla karşılaştım. Ondan önce hiçbir sorun yoktu. Bana göre bu bir şey ifade ediyor mu? )))
Merhaba,
neden bazen kullanılan göstergeler test cihazında çizilmiyor?
Terminali yeniden başlatıyorum - oluşturmaya başlıyorlar ...
sonra tekrar dururlar - kod değişmemiş olsa da ...
Ayrıca ikinci bir soru sormak istiyorum:
zorunlu ChartRedraw(0)'a rağmen neden grafik nesnelerin test cihazında güncellenmediği; ?
aslında, test cihazı daha sonra bunları günceller, ancak büyük gecikmeler ve gerizekalı...
Teşekkür ederim.
EDIT: Üzgünüm, yanlış alarm, bu soru kaldırıldı (sorun benim buggy kodumdaydı)
ancak göstergeler konusu geçerliliğini koruyor.
@Slava söyle bana, 2007 derlemesinde TesterStop() denetimi yalnızca OnDeinit'e mi geçirdi? OnTester'a kontrol aktarımı olmadı mı?
Bu nedenle, kodum iyi çalıştı ve bu durumda testin sonucu 0 oldu.
@Slava söyle bana, 2007 derlemesinde TesterStop() denetimi yalnızca OnDeinit'e mi geçirdi? OnTester'a kontrol aktarımı olmadı mı?
Bu nedenle, kodum iyi çalıştı ve bu durumda testin sonucu 0 oldu.
Global bayrağınızı kurun, TesterStop'u çağırmadan önce yükseltin ve OnTester'da analiz edin.
Global bayrağınızı kurun, TesterStop'u çağırmadan önce yükseltin ve OnTester'da analiz edin.
Başladı ))) Her şeyin bu kadar basit olmadığı ortaya çıktı . Prensip olarak, sorun çözüldü, sadece TesterStop'un biraz farklı çalıştığına dair onay duymak istiyorum.
Açıklamada bağlantı yoksa, efekt görünmez.
Belki de 32x bit işletim sisteminiz var. Veya yeterli RAM yok.