iClose/iOpen zaman serilerine vb. erişimle çalışırken MQL5 hatası. - sayfa 7

 
Renat Fatkhullin :

1) Bir OnTick/OnCalculate hesaplamasının yürütme süresini mikrosaniye cinsinden ölçün ve bunları günlüğe kaydedin.

Bu şekilde, bir kene hesaplamak için ne kadar zaman harcadığınızı görebilirsiniz. Ardından, bu hızda saniyede kaç tik hesaplayabileceğinizi değerlendirin. Elbette, bir düzineden fazla kene olmadığı ortaya çıkacaktır ve açıkçası saniyede onlardan daha fazlası vardır.


2) Verileri çıkardığınız çizelgelere/zaman dilimlerine eklenen göstergeler üzerinde her OnCalculate'in hesaplama süresini ölçün.

Muhtemelen benzer bir durum vardır. Yavaş hesaplamalar nedeniyle, terminal hesaplanan sembol:zaman çerçevesinin kilidi açılana kadar bekler. Diğer insanların çizelgelerinin geri dönüşünün donmasına yol açan, özellikle derin bir geçmişe ilişkin fren göstergeleridir.


Göstergeler geliştirilirken performans konuları ve ekonomik yeniden hesaplamalar ilk sıraya konulmalıdır. Aksi takdirde, etraftaki her şeyi öldürürsünüz.

Renat, bir şekilde oldukça üzücü oldu. Tiki şimdi sorunlarımı çözmemi mi bekliyor? Şimdiye kadar, kenelerin kendi kendilerine üretildiğini varsayıyordum ve ya zamanım var ya da yok. Ve şimdi sistemi asabileceğim ortaya çıktı.

 
Алексей Тарабанов :

Renat, bir şekilde oldukça üzücü oldu. Tiki şimdi sorunlarımı çözmemi mi bekliyor? Şimdiye kadar, kenelerin kendi kendilerine üretildiğini varsayıyordum ve ya zamanım var ya da yok. Ve şimdi sistemi asabileceğim ortaya çıktı.

Gösterge her tikte yürütülür, boşluk yoktur. OnCalculate'in süresini ve kenelerin sıklığını her zaman kontrol etmek gerekir. Aksi takdirde, bir tıkaç alırsınız.

En basit çoğaltma, göstergeyi özel bir sembol üzerinde çalıştırmak ve belirli bir frekansta işaretler atmaya başlamaktır. Frekans arttıkça frenleri göreceksiniz. Her şey mantıklı.

 

Gösterge hangi durumlarda değerini çekmeyebilir? arabellekler geçerli değerlerle dolu, ancak gösterge tablosu boş... en azından tam tersi değil. 1940 inşa etmek

1944 de. belki de böyle olmalı

 
fxsaber :

Gösterge her tikte yürütülür, boşluk yoktur. OnCalculate'in süresini ve kenelerin sıklığını her zaman kontrol etmek gerekir. Aksi takdirde, bir tıkaç alırsınız.

En basit çoğaltma, göstergeyi özel bir sembol üzerinde çalıştırmak ve belirli bir frekansta işaretler atmaya başlamaktır. Frekans arttıkça frenleri göreceksiniz. Her şey mantıklı.

Evet kesinlikle.

 
Алексей Тарабанов :

Renat, bir şekilde oldukça üzücü oldu. Tiki şimdi sorunlarımı çözmemi mi bekliyor? Şimdiye kadar, kenelerin kendi kendilerine üretildiğini varsayıyordum ve ya zamanım var ya da yok. Ve şimdi sistemi asabileceğim ortaya çıktı.

Tiki her zaman bekliyordu. Her tikte OnCalculate'in çağrılmasını garanti ediyoruz.

Dördünde bu GUI'nin donmasına neden olduysa, o zaman beşte sadece belirli bir karakter için ayrı bir işleme iş parçacığında bir gecikmedir. Ve ilk beşte hep böyle olmuştur. şimdi gördün

 
Renat Fatkhullin :

Yeniden bağlandıktan sonra başkasının görünmez zaman diliminin güncellemesinin dondurulmasıyla, bağlantılar çözülmüş ve düzeltilmiştir. Nedeni, yeniden bağlantıdan sonra yanlış önbellek durumlarındaydı.

Beta sürümü 1946, Yardım -> Masaüstü Güncellemelerini Kontrol Et -> En Son Beta Sürümü aracılığıyla kullanılabilir.

Güncellendi, test edilecek.

Soru şu ki, mevcut sorun diğer araçlardan (görünmez zaman dilimi) veri yükleme durumları ile ilgili miydi, çok para birimi göstergeleri ve uzmanlarından mı bahsediyorum yoksa bunlar ilgisiz problemler mi?

 
Slava :

Tiki her zaman bekliyordu. Her tikte OnCalculate'in çağrılmasını garanti ediyoruz.

Dördünde bu GUI'nin donmasına neden olduysa, o zaman beşte sadece belirli bir karakter için ayrı bir işleme iş parçacığında bir gecikmedir. Ve ilk beşte hep böyle olmuştur. şimdi gördün

terminal günlüğünde böyle bir durum hakkında "gösterge çok yavaş" gibi bir mesaj olacaktır.

?

 
Igor Makanu :

terminal günlüğünde böyle bir durum hakkında "gösterge çok yavaş" gibi bir mesaj olacaktır.

?

Uzman günlüğünde
 
Slava :
Uzman günlüğünde

teşekkürler, bu en azından bir şey, ancak göstergenin ilgili olmayan keneleri hesapladığını ve göstergenin terminal akışını kapattığını programlı olarak belirlemenin imkansız olduğunu anlıyorum.

 
Igor Makanu :

teşekkürler, bu en azından bir şey, ancak göstergenin ilgili olmayan keneleri hesapladığını ve göstergenin terminal akışını kapattığını programlı olarak belirlemenin imkansız olduğunu anlıyorum.

belirlemeye çalışabilirsiniz.

Bunlar dakikalarsa, son çubuğun zamanını TimeCurrent() ile karşılaştırabilirsiniz. M1 değilse, iTime(_Symbol, PERIOD_M1 ,0) sorabilir ve TimeCurrent() ile karşılaştırabilirsiniz.

Teklifi veya Son fiyatı (enstrümana bağlı olarak) son çubuğun Kapanış fiyatı ile karşılaştırabilirsiniz. Mevcut sembolün SymbolInfoTick'ine hemen sorabilirsiniz. Orada, teklife ve sonuncuya ek olarak, bir onay süresi de var.

Neden: