Tek aralıklı yazı tipinde grafik çıktısı nasıl görüntülenir? - sayfa 6

 
Nikolai Semko :

Ancak MT4 ile resim tamamen farklıdır.
MT5'te Comment ve Canvas'ın çalışması yaklaşık olarak aynıysa, MT4'te Comment 1000 kat daha hızlı çalışır. MT5'te Comment'in dahili bir BitMap aracılığıyla uygulandığı, MT4'te ise bir şekilde farklı olduğu sonucuna varıyorum. Fark etkileyici. Muhtemelen bu soruyu hatalar konusuna taşıyacağım.

Ayrıntılı açıklama burada: https://www.mql5.com/en/forum/1111/page2102#comment_6156364

MT4'teki yorum esasen sahtedir ve grafiğin yeniden çizilmesine neden olmaz.

 
Renat Fatkhullin :

Ayrıntılı açıklama burada: https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

MT4'teki yorum esasen sahtedir ve grafiğin yeniden çizilmesine neden olmaz.


ve şimdi pratik sonuçlar çıkarıyoruz

1. Test sırasında performansı etkileyen bir dizi işlevi #define karşılıklarıyla değiştirmek güzel olurdu.

2. Mevcut bayanların / bayların% 90'ı, portakallardaki oink-oink gibi tanımlar

4. Forumda define canavarı fxsaber var

5. Belki de ölümlülerin programın çalıştığı mod hakkında düşünmesine gerek kalmaması için benzer tanımlardan oluşan bir kitaplık oluşturmasını ve sürdürmesini isteyin?

Topluluk ve fxsaber bu teklif hakkında ne düşünüyor?

 

Ve sonra, insanlar aracı anlamıyorsa ve test edilemeyen şeyi hız için test etmeye çalışıyorsa tanımlar vardır.

Bakmak için bir yorum çağırmak normaldir.

Saniyede 1000-10000 kez çağırmak hem mantıksal olarak (göremezsiniz) hem de teknolojik olarak anormaldir - tüm grafiği (ve sadece çizgisini değil) görüntülememek/yeniden çizmemek için büyük masraflara neden olur.

Ne yaptığınızı anlamanız gerekir. Cevapta ayrıntılı olarak ne yazdım.

 
Renat Fatkhullin :

Ve sonra, insanlar aracı anlamıyorsa ve test edilemeyen şeyi hız için test etmeye çalışıyorsa tanımlar vardır.

Bakmak için bir yorum çağırmak normaldir.

Saniyede 1000-10000 kez çağırmak hem mantıksal olarak (göremezsiniz) hem de teknolojik olarak anormaldir - tüm grafiği (ve sadece çizgisini değil) görüntülememek/yeniden çizmemek için büyük masraflara neden olur.

Ne yaptığınızı anlamanız gerekir. Cevapta ayrıntılı olarak ne yazdım.

Bunun yerine, bunu yapmanın neden yanlış olduğuna dair açıklamaları göz ardı ederek “daha fazla düşünmek zorunda kalmamak için bir kod parçası verin” teklifinde bulunuyorsunuz.

Renat, burada çalışan bir danışmanım var. Ben bir enayiyim ve bu çizimler hakkında hiçbir şey bilmiyorum. Çalışıyor ve harika. Teste sürüyorum ve açıklanan sorunlardan dolayı performansta bir düşüş görüyorum.

Hangi modda çalıştığımızı belirleyen bir tanımlama yapmak mantıklı mı? Ve test/optimizasyon modunda hiçbir şey göstermiyor mu?

 
Alexey Volchanskiy :

Renat, burada çalışan bir danışmanım var. Ben bir enayiyim ve bu çizimler hakkında hiçbir şey bilmiyorum. Çalışır ve harika. Teste sürüyorum ve açıklanan sorunlardan dolayı performansta bir düşüş görüyorum.

Hangi modda çalıştığımızı belirleyen bir tanımlama yapmak mantıklı mı? Ve test/optimizasyon modunda hiçbir şey göstermiyor mu?


İnsanların her şeyi böyle anlamasını beklemeyin. Burada OOP forumunda, Tanrı korusun, %20 anlıyor. Araba bilmekle karşılaştırılabilir. Herkes onlara biniyor, ancak yalnızca birkaçı aynı içten yanmalı motorun nasıl çalıştığını anlıyor ve %'nin bir kısmı bir şekilde bir şeyleri düzeltebilir.

Ama bunların hepsi sizin müşterileriniz)

 
Alexey Volchanskiy :

Renat, burada çalışan bir danışmanım var. Ben bir enayiyim ve bu çizimler hakkında hiçbir şey bilmiyorum. Çalışıyor ve harika. Teste sürüyorum ve açıklanan sorunlardan dolayı performansta bir düşüş görüyorum.

Hangi modda çalıştığımızı belirleyen bir tanımlama yapmak mantıklı mı? Ve test/optimizasyon modunda hiçbir şey göstermiyor mu?

Ve her şeyi düşünmek ve kökten iyileştirmek için sorun nedir?

"Çalışıyor ve harika" modunda zaten bir tür MQL4-MQL5 kitaplığı var, bu da saçınızı yolmanıza neden oluyor. Tüm ciddiyetle insanlar, her iki platformun hızını karşılaştırmak için kullanıyor.

Yani şimdi düşünmemeyi, acele edecekleri başka bir zanaat yapmayı öneriyorsunuz, "MT5'te daha yavaş" diyorlar.

 
Renat Fatkhullin :

"Çalışıyor ve harika" modunda zaten bir tür MQL4-MQL5 kitaplığı var, bu da saçınızı yolmanıza neden oluyor. Tüm ciddiyetle insanlar, her iki platformun hızını karşılaştırmak için kullanıyor.

Doğrulanmamış bir beyan.

 
Alexey Volchanskiy :

Hangi modda çalıştığımızı belirleyen bir tanımlama yapmak mantıklı mı? Ve test/optimizasyon modunda hiçbir şey göstermiyor mu?

Test cihazındaki kodun performansını tek satırda ölçmenizi sağlayan evrensel bir araç var. Görülecek çok şey vardı. Özellikle, tek bir çalıştırmanın bir optimizasyon çalıştırmasından daha yavaş olması.

Yorumun konusuna ise geliştiriciler cevap vermiş . Bu arada ben kendim tek satırda optimizasyonu 1.5-2 kat hızlandırıyorum.

Ve SD'de performans için önemli olan bir nüanstan bahsettiler.


İşlev yürütmenin mikrosaniyeleri hakkında endişelenmek yalnızca Optimizasyon modlarında mantıklıdır. Gerçek zamanlı olarak, önemli değil. Ve Yorum, daha yavaş olsa bile, Expert Advisor'ın gerçek zamanlı performansında herhangi bir rol oynamaz.


Ancak neredeyse hiç kimsenin Uzman Danışmanları test cihazında olabildiğince hızlı yürütülecek şekilde yazmadığı bir gerçektir.

 
Renat Fatkhullin :

Ve sonra, insanlar aracı anlamıyorsa ve test edilemeyen şeyi hız için test etmeye çalışıyorsa tanımlar vardır.

Renat Fatkhullin'in fotoğrafı.

"Çalışıyor ve harika" modunda zaten bir tür MQL4-MQL5 kitaplığı var, bu da saçınızı yolmanıza neden oluyor. Tüm ciddiyetle insanlar, her iki platformun hızını karşılaştırmak için kullanıyor.


Ve şahsen yapılan işten pişman değilim. Bu görünüşte işe yaramaz kıyaslamaların sonuç olarak hiç de işe yaramaz olmadığı ortaya çıktı. Çünkü Ayrıntılı açıklamanız sayesinde birçok yararlı şey ortaya çıktı ve bunun sonucunda bazı bulmacalar bir araya gelmeye başladı. Bu hiçbir yerde yazmıyor, bu yüzden her şeyi pense ile çekmeniz gerekiyor :)).

Örneğin, itiraf etmekten utanıyor olsam da, tuvalin Update() işlevinin tuvalin boyutundan bağımsız olarak tüm pencereyi yeniden çizdiğini bilmiyordum. Her ne kadar bunu anlamak için CCanvas'taki sakatatına bakmak yeterliydi. Ve en azından sadece bu gerçeğin farkında olmak, işin mantığını değiştirecek ve grafiklerle ilgili bazı uygulamalarda beni gereksiz hareketlerden kurtaracak. Ve Comment'in aslında bununla hiçbir ilgisi yoktu, "sadece dibe ulaşmak için" gibi davrandı. Tekrar teşekkürler!

Benim için anlaşılmaz kalan şey, MT5'teki Güncelleme(yanlış) işlevi ekranda hiçbir şey göstermiyorsa, o zaman MT4'te yeniden çiziyor, tüm pencereye değil, Güncelleme(doğru) karşılaştırmasındaki önemli ölçüde yüksek hıza bakılırsa, ancak sadece tuvalin kendisi. Onlar. MT5'teki ResourceCreate işlevinin ChartRedraw() olmadan ekranda bir piksel dizisini göstermediği, ancak MT4'te gösterdiği ortaya çıktı. Bana öyle geliyor ki bu MT5'te de faydalı olacaktır.

 
Nikolai Semko :

MT5'teki ResourceCreate, ChartRedraw() olmadan ekranda bir piksel dizisi görüntülemez , ancak MT4'te gösterir.

Ve doğru yapıyor. Bu, nesnenin özelliklerini değiştirdikten sonra ChartRedraw yapmamak kadar mantıklıdır. terminolojiyi kullanma

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Renat Fatkhullin , 2017.12.05 02:51

  • MT5, tablodaki nesneleri değiştirmek için daha doğru bir sisteme sahiptir ve okuma/yazma komutlarını karıştırmanın sonuçlarını net bir şekilde anlamanız gerekir.
    okuma/yazma komutlarının karıştırılmaması, toplu okuma ve toplu yazma komutlarının ayrı yapılması önerilir.

ChartRedraw, her birinden sonra değil, toplu yazmalardan sonra çağrılmalıdır.

Neden: