Hatalar, hatalar, sorular - sayfa 2484

 
Сергей Таболин :

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

 
Slava :

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.

 
PS Sürümü 2085 13 Haziran
 

@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.

 
Andrey Khatimlianskii :

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.

 
2085
Linux, Şarap-4.0.1

Araç çubuklarının açıklamasına giden bağlantı.

Açıklamada bağlantı yoksa, efekt görünmez.


Dosyalar:
link.gif  5125 kb
 
Vladimir Karputov :

Belki de 32x bit işletim sisteminiz var. Veya yeterli RAM yok.

komp. Lenovo G50-45 (LAPTOR-46OAGFM3)
AMD Radeon ile İşlemci AMD A4-6210 APU
R3 Grafik 1.80 GHz
RAM 2.00 GB
sistem tipi 64-bit, x64 işlemci