Hatalar, hatalar, sorular - sayfa 2976

 
Nikolai Semko :
Hangi dezavantajlardan bahsediyorsunuz?
Kaynak yoğunluğu hakkında?
Bu hatalı bir açıklamaydı.
Yorum daha az kaynak yemez.
Tüm pencerede metin içeren bir tuval oluşturmak ve görüntülemek 1-3 milisaniye sürer.
MT5'te yorum çıktısı biraz daha uzun sürer. Metin bilgisini saniyede 30 kez güncelleyecekseniz yine de frenleri görmeyeceksiniz.

Canvas'ın neden yavaş olabileceğini ayrıntılı olarak anlamadım, ama bana öyle geliyor ki her şey aynı nedenden dolayı... Bir dizideki pikseller seçici olarak değiştirilemez ve yeniden çizme komutu verilemez. İlk önce dizide değişiklikler yapıyoruz ve ardından ResourceCreate'e emin olun. Hangi pikselleri birer birer kopyalar ve daha sonra benzer şekilde, bunları birer birer grafikte görüntüler ve ardından grafiğin başka bir güncellemesi (ChartRedraw). Kaç gereksiz işlem ... Bu, yararlı veri işlemeyle meşgul olduğunda, her durumda işlemci yükünü bitirecektir. Etiketler en azından daha az piksel kaplarken (bu, daha hızlı görüntülendiği anlamına gelir). Ve sonra, çıktı mekanizmaları tamamen grafiğin içindedir ( bir diziyi iletmeye gerek yoktur). emin olsam da   İşlerinin algoritmasını bilmiyorum ama bana öyle geliyor ki daha hızlı çalışıyorlar. Bir tuvale dayalı bir metin çıktı paneli yapardım. Ve bir Uzman Danışmanı böyle bir panelle bir test cihazında görsel olarak test ederken, sonuçtan etkilenmedim. EA'nın kendisinin yüküne ek olarak, panel yeniden çizilerek iş yavaşlatıldı. Her tikte Sürekli Güncelle ( ResourceCreate - ChartRedraw ). Etiketlerle birlikte böyle frenler fark etmedim.

 

Yoksa aptal mıyım yoksa kayaklar gitmiyor mu? mt4 yapı 1320

 double LotStep = SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_STEP );
double Lot= 0.7 ;
PrintFormat ( "LotStep %f, lot %f, %f, %f %f" ,LotStep,Lot,Lot/LotStep, MathFloor (Lot/LotStep),( int ) double (Lot/LotStep));
//Print
//2021.03.07 23:42:46.507	2021.02.25 07:36:40  EA_CCIcross_v1.0 AUDJPY,M5: LotStep 0.010000, lot 0.070000, 7.000000, 6.000000 6.000000

p / s / 7'nin 6.9999 olduğunu anlıyorum ama neden o zaman 0.7 bölü 0.1 çıktı 6.9999 değil 7.000 çıktı çıktısı yanıltıcı.
 
Mihail Matkovskij :

Canvas'ın neden yavaş olabileceğini ayrıntılı olarak anlamadım, ama bana öyle geliyor ki her şey aynı nedenden dolayı... Bir dizideki pikseller seçici olarak değiştirilemez ve yeniden çizme komutu verilemez. İlk önce dizide değişiklikler yapıyoruz ve ardından ResourceCreate'e emin olun. Hangi pikselleri birer birer kopyalar ve daha sonra benzer şekilde, bunları birer birer grafikte görüntüler ve ardından grafiğin başka bir güncellemesi (ChartRedraw). Kaç gereksiz işlem ... Bu, yararlı veri işlemeyle meşgul olduğunda, her durumda işlemci yükünü bitirecektir. Etiketler en azından daha az piksel kaplarken (bu, daha hızlı görüntülendiği anlamına gelir). Ve sonra, çıktı mekanizmaları tamamen grafiğin içindedir ( bir diziyi iletmeye gerek yoktur). emin olsam da   İşlerinin algoritmasını bilmiyorum ama bana öyle geliyor ki daha hızlı çalışıyorlar. Bir tuvale dayalı bir metin çıktı paneli yapardım. Ve bir Uzman Danışmanı böyle bir panelle bir test cihazında görsel olarak test ederken, sonuçtan etkilenmedim. EA'nın kendi yüküne ek olarak, panel yeniden çizilerek iş yavaşlatıldı. Her tikte Sürekli Güncelle ( ResourceCreate - ChartRedraw ). Etiketlerle birlikte böyle frenler fark etmedim.

Sadece sana öyle geliyor.
Hiçbir şeyin ücretsiz olmadığı açıktır, ancak tuval temel olduğundan ve yorumlar ve etiketler tuvalden ikincil bir ürün olduğundan, tuval MT5'te var olan tüm metinleri ekranda görüntülemenin en hızlı yoludur.
İşlemcinizin kaynakları için çok açgözlü iseniz çıktıyı kullanın ...
 
Mihail Matkovskij :

Canvas'ın neden yavaş olabileceğini ayrıntılı olarak anlamadım, ama bana öyle geliyor ki her şey aynı nedenden dolayı... Bir dizideki pikseller seçici olarak değiştirilemez ve yeniden çizme komutu verilemez. İlk önce dizide değişiklikler yapıyoruz ve ardından ResourceCreate'e emin olun. Hangi pikselleri birer birer kopyalar ve daha sonra benzer şekilde, bunları birer birer grafikte görüntüler ve ardından grafiğin başka bir güncellemesi (ChartRedraw). Kaç gereksiz işlem ... Bu, yararlı veri işlemeyle meşgul olduğunda, her durumda işlemci yükünü bitirecektir. Etiketler en azından daha az piksel kaplarken (bu, daha hızlı görüntülendiği anlamına gelir). Ve sonra, çıktı mekanizmaları tamamen grafiğin içindedir ( bir diziyi iletmeye gerek yoktur). emin olmama rağmen   İşlerinin algoritmasını bilmiyorum ama bana öyle geliyor ki daha hızlı çalışıyorlar. Bir tuvale dayalı bir metin çıktı paneli yapardım. Ve bir Uzman Danışmanı böyle bir panelle bir test cihazında görsel olarak test ederken, sonuçtan etkilenmedim. EA'nın kendisinin yüküne ek olarak, panel yeniden çizilerek iş yavaşlatıldı. Her tikte Sürekli Güncelle ( ResourceCreate - ChartRedraw ). Etiketlerle birlikte böyle frenler fark etmedim.

Lütfen bilmediğiniz şeyler hakkında konuşmayın. @Nikolai Semko kesinlikle haklı ve Canvas hızlı ve sorunsuz çalışıyor.
 

@ilyas

derleyici hatası? 2817 oluşturun.

   const ushort AN_USHORT_CONSTANT = 1 ;
//---
   ushort avariable = 1 ;

   switch (avariable)
     {
       case AN_USHORT_CONSTANT :
         Print ( "Compiler bug ?" );
         break ;
     }


 
Nikolai Semko :
Sadece sana öyle geliyor.
Hiçbir şeyin ücretsiz olmadığı açıktır, ancak tuval temel olduğundan ve yorumlar ve etiketler tuvalden ikincil bir ürün olduğundan, tuval MT5'te var olan tüm metinleri ekranda görüntülemenin en hızlı yoludur.
İşlemcinizin kaynakları için çok açgözlü iseniz çıktıyı kullanın ...

Tuvalin kendisi OBJ_BITMAP_LABEL eklentisiyse ve etiket OBJ_LABEL ise etiketlerin tuvale dayalı olduğunu nasıl belirlediğinizi merak ediyorum?

Burada forumda konuşurken, herhangi bir sayıda satır ve sütunla etiketlerdeki çıktı panelini zaten çizdim. Ve tuval için diğer uygulamalarımda başka görevlerim var. Ve orada da çok iyi bir iş çıkarıyor.

Alain Verleyen :
Lütfen bilmediğiniz şeyler hakkında konuşmayın. @Nikolai Semko kesinlikle haklı ve Canvas hızlı ve sorunsuz çalışıyor.

Yani muhtemelen her şeyi biliyorsun? O zaman bilginizi paylaşabilir misiniz ya da MetaTrader'da grafik hakkında okuyabileceğiniz linkleri, sizin bildiklerinizi öğrenmem için paylaşır mısınız? :)

 
Alain Verleyen :

@ilyas

derleyici hatası? 2817 oluşturun.

MQL'de const hiç const değildir. Aslında const sadece bir makro aracılığıyla yazılabilir .

 //const ushort AN_USHORT_CONSTANT      = 1; //(*)
#define         AN_USHORT_CONSTANT  ushort ( 1 ) //(**)
void main()
{
         int i[AN_USHORT_CONSTANT];      //(1) нормально
         ushort avariable = 1 ;
         switch (avariable) {
         case AN_USHORT_CONSTANT:        //(2) нормально
                 break ;
        }
}
void f( int = AN_USHORT_CONSTANT ) {}   //(3) нормально
enum { e = AN_USHORT_CONSTANT };         //(4) нормально    
 
A100 :

MQL'de const hiç const değildir. Aslında const sadece bir makro aracılığıyla yazılabilir .

Evet bu bir hata :-D
 
Alain Verleyen :
Evet bu bir hata :-D

Lütfen bunun bir durumda olmadığını, ancak hepsinde (1) (2) (3) (4) böyle tasarlandığını unutmayın: (*) ile bir hata olacak ve (**) ile normaldir. Onlar. varlık olarak eksik sabitler

 
A100 :

Lütfen bunun bir durumda olmadığını, ancak hepsinde (1) (2) (3) (4) böyle tasarlandığını unutmayın: (*) ile bir hata olacak ve (**) ile normaldir. Onlar. bir varlık olarak eksik sabitler

Biliyorum. Bu nedenle, geliştiricilerden bunu düzeltmelerini rica ediyorum.