Tuval ve Etiketler - sayfa 17

 
Mihail Matkovskij :

G kodu pahasına, o zaman her kelimemi tartışarak g kodunuzu bulabilirim! Ve senin gibi değil, asılsız suçlamak ... Buldun mu?

Ben bir programcı değilim. Kendi kendime öğrendim. Kodumdan herhangi birini kurcalayabilir ve istediğiniz gibi adlandırabilirsiniz, ancak ne derse desin, kodlarım en g…

 
Artyom Trishkin :
İlginç bir konuyu sular altında bıraktılar ... Peki, ne tür insanlar gitti ...

Konu ilgi çekici olabilir. Ama ne yazık ki, o asla olmayacak.

 
Alexey Viktorov :

Ben bir programcı değilim. Kendi kendime öğrendim. Kodumdan herhangi birini kurcalayabilir ve istediğiniz gibi adlandırabilirsiniz, ancak ne derse desin, kodlarım en g…

Ama diğer topluluk üyelerinin sizin için kodları g... Eh, kendi kendini yetiştirdiği açık. Bu nedenle iş arkadaşlarınıza çamur atamazsınız diyen yazılı olmayan kurallara ihtiyacınız yok.

Ve şimdi https://www.mql5.com/en/code/24076 koduyla ilgili sorular. Elbette sizin gibi olmayacağım ve bunun bir g..code olduğunu söylemeyeceğim... Ama yine de yorumlarımı yapacağım.

 //+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   calculate();
   ArrayFill (extImg1, 0 , IMG_WIDTH1*IMG_HEIGHT, 0 );
   textComment (dts(lots[ 0 ])+ " " , IMG_WIDTH1, 1 , extImg1);
   textComment (dts(lots[ 1 ])+ " " , IMG_WIDTH1, 2 , extImg1);
   textComment (dts(lots[ 2 ])+ " " , IMG_WIDTH1, 3 , extImg1);
   textComment (dts(lots[ 3 ])+ " " , IMG_WIDTH1, 4 , extImg1);
   textComment (dts(lots[ 4 ])+ " " , IMG_WIDTH1, 5 , extImg1);
   textComment (dts(lots[ 5 ])+ " " , IMG_WIDTH1, 6 , extImg1);
   textComment (dts(lots[ 6 ])+ " " , IMG_WIDTH1, 7 , extImg1);
   textComment (dts(lots[ 7 ])+ " " , IMG_WIDTH1, 8 , extImg1);
   ResourceCreate ( "::bbb" , extImg1, IMG_WIDTH1, IMG_HEIGHT, 0 , 0 , IMG_WIDTH1, clr_format);
   //ChartRedraw();
//--- return value of prev_calculated for next call
   return (rates_total);
}

Test cihazında çalışacaksa, "tüm onaylar" modelinde BitmapLabel güncellemelerinin sıklığında neden herhangi bir kısıtlama yok? Modern demirin her şeyi sindireceğini umuyor musunuz? :) Peki optimizasyon nerede? Ve bunu bana çok yüklü işlemlerden metin görüntülemenin bir yolunu ararken önerdiniz (test cihazında çıktı, modelde tüm onaylar ve bir döngüde grafikte)?

Ve bana yakışmaz dediğimde Her tikte bilgileri güncelleyen koduma bakmak yerine ...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

Bunun için neden özel olarak tasarlanmış bir CCanvas kullanmıyorsunuz??? Doğru, baktım, iddiaya göre ekstra işlevler vb. dediği bir yere yazdınız. Bu, test cihazı için güncelleme sıklığını sınırlamadıkları, ancak aynı zamanda CCanvas işlevleri bir şekilde size müdahale ettiği anlamına gelir... :)

Garip...


Ve şimdi, aynen böyle, neden benim kodumun "g-kodu" olduğunu düşündüğünüzü söyleme sırası sizde. Yalnızca, argümanlarla ve boş gevezelikle değil!

 
Artyom Trishkin :
İlginç bir konuyu sular altında bıraktılar ... Peki, ne tür insanlar gitti ...

Teste katılma teklifini yeni kabul ettim, bu da davetliye birkaç soru sorma ihtiyacına yol açtı ...

 
Mihail Matkovskij :

...

Test cihazında çalışıyorsa, "tüm onaylar" modelinde BitmapLabel güncellemelerinin sıklığında neden herhangi bir kısıtlama yok? Modern demirin her şeyi sindireceğini umuyor musunuz? :) Peki optimizasyon nerede? Ve bunu bana çok yüklü işlemlerden metin görüntülemenin bir yolunu ararken önerdiniz (test cihazında çıktı, modelde tüm onaylar ve bir döngüde grafikte)?

...

Ve neden, çünkü bitmap etiketinin normal bir etiketten daha hızlı çalıştığını kendiniz söylüyorsunuz. Ve bu durumda sıradan bir etiket, hız açısından neredeyse görünmez olacaktır.

 
Dmitry Fedoseev :

Teste katılma teklifini yeni kabul ettim, bu da davetliye birkaç soru sorma ihtiyacına yol açtı ...

"Hırsız ve şapka yanıyor" mu? ... Herkes kaynağı indirecek ve yukarıda sunduğum ölçümleri tekrarlayacak! Aynı şikayet ve memnuniyetsizliğiniz var. İcat edilmiş, "kırık bağlantılar" ve benzerleri...
Dmitry Fedoseev :

Ve neden, çünkü bitmap etiketinin normal bir etiketten daha hızlı çalıştığını kendiniz söylüyorsunuz.

Öyle demedim. Ve tek satırda değil, bilgi çıktısı ile ilgiliydi. Bu nedenle, ölçümler için çok sayıda satırın çıktısını almak için bir ekran yaptım.

Etiketlere Çıktı, grafiği optimize eder. BitmapLabel'deyken, güncelledikten sonra bir dizi piksel iletmeniz gerekir. Bu durumda, bu bir dizi pikseli doldurmak ve buna metin çıkarmaktır. Tüm bu işlemler çok sık çağrılırsa uygulamaya yük bindirir. Etiket için yalnızca bir dize iletmeniz gerekir. Bu zaten yukarıda tartışıldı.

CCanvas ve etiketlerin hız ölçümlerini farklı modlarda karşılaştırarak hız hakkında daha fazla bilgi edinebilirsiniz: https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij :

Ama diğer topluluk üyelerinin sizin için kodları g... Eh, kendi kendini yetiştirdiği açık. Bu nedenle iş arkadaşlarınıza çamur atamazsınız diyen yazılı olmayan kurallara ihtiyacınız yok.

Ve şimdi kodla ilgili sorular. Elbette sizin gibi olmayacağım ve bunun bir g..code olduğunu söylemeyeceğim... Ama yine de yorumlarımı yapacağım.

Test cihazında çalışacaksa, "tüm onaylar" modelinde BitmapLabel güncellemelerinin sıklığında neden herhangi bir kısıtlama yok? Modern demirin her şeyi sindireceğini umuyor musunuz? :) Peki optimizasyon nerede? Ve bunu bana çok yüklü işlemlerden metin görüntülemenin bir yolunu ararken önerdiniz (test cihazında çıktı, modelde tüm onaylar ve bir döngüde grafikte)?

Ben de bana uymadığını söyleyince, benden memnuniyetsizliğinizi dile getirmeye başladınız... İddiaya göre hiçbir şey anlamadım ve acımasızca TextOut - ResourceCreate - ChartRedraw'ı aramak zorunda kaldım. Doğru, ChartRedraw nedense yorumlandı...


Bunun için neden özel olarak tasarlanmış bir CCanvas kullanmıyorsunuz??? Doğru, gereksiz işlevler vb. dediği iddia edilen bir yere yazdığınızı görüyorum. Yani, test cihazı için güncelleme sıklığını sınırlamadılar, ancak aynı zamanda CCanvas işlevleri bir şekilde size müdahale etti... :)

Garip...


Ve şimdi, aynen böyle, neden benim kodumun "g-code" olduğunu düşündüğünüzü söyleme sırası sizde. Yalnızca, argümanlarla ve boş gevezelikle değil!

  1. Hangi gezegende yaşıyorsun? Bu kuralları nereden buldun? Herhangi bir araba servisine gelin ve arabanızı en son kimin tamir ettiği hakkında her şeyi duyun. Şu an konuştuğun kişi olsa bile. Ve bu sadece arabalarla değil. Bu sadece en bariz örnek.
  2. Körü körüne kopyalamamak için bu kodu size örnek olarak sundum.
  3. Tüm kontroller ve gecikmeler kodu karıştırır ve örnek olarak kullanmayı zorlaştırır.
  4. Danışman ticaret yapmıyorsa ne tür bir optimizasyondan bahsedebiliriz? Optimize edilecek hangi parametreler?
  5. Teklifimi reddettikten sonra Nikolai size tüm incelikleri açıklamaya başladı. Ben sadece tuval ile ilgili konusuna bakmanızı tavsiye ettim. Her şeyi okuduğunu söyleyerek yalan söylediğin. Yalancılara nasıl davranılmasını istersiniz (hafifçe söylemek gerekirse)?

Sineklerin ve bok böceklerinin kodunuza girmesine izin verin. Yeterince ilginç ve faydalı aktivitem var.

 
Mihail Matkovskij :
"Hırsız ve şapka yanıyor" mu? ... Herkes kaynak kodunu indirecek ve yukarıda sunduğum ölçümleri tekrarlayacak! Aynı şikayet ve memnuniyetsizliğiniz var. İcat edilmiş, "kırık bağlantılar" ve benzerleri...

Öyle demedim. Ve tek satırda değil, bilgi çıktısı ile ilgiliydi. Bu nedenle, ölçümler için çok sayıda satırın çıktısını almak için bir ekran yaptım.

Etiketlere Çıktı, grafiği optimize eder. BitmapLabel'deyken, güncelledikten sonra bir dizi piksel iletmeniz gerekir. Bu durumda, bu bir dizi pikseli doldurmak ve buna metin çıkarmaktır. Tüm bu işlemler çok sık çağrılırsa uygulamaya yük bindirir. Etiket için yalnızca bir dize iletmeniz gerekir. Bu zaten yukarıda tartışıldı.

CCanvas ve etiketlerin hız ölçümlerini farklı modlarda karşılaştırarak hız hakkında daha fazla bilgi edinebilirsiniz: https://www.mql5.com/ru/forum/364640/page13#comment_21314045

Eh, genel olarak, bükülmeyen utanmazlık ve kibir.

 
Bu yorum, bağlantıları olan bir alıntı içerir . Bu bağlantılardan, limitFps alanı olmayan bir sınıfa sahip bir dosyayı hala indirebilirsiniz, ancak buna bir çağrı var. Ayrıca, bu tür bağlantıları kendim "çizdiğimi" söyleyin.
 
Alexey Viktorov :
  1. Hangi gezegende yaşıyorsun? Bu kuralları nereden buldun? Herhangi bir araba servisine gelin ve arabanızı en son kimin tamir ettiği hakkında her şeyi duyun. Şu an konuştuğun kişi olsa bile. Ve bu sadece arabalarla değil. Bu sadece en bariz örnek.

Açıkçası, böyle bir paradigmayı takip edersek, farklı gezegenlerdeyiz! ...

Bana bir araba tamircisi örneği veriyor... :) Neyse, en azından sabahları havası kabarmıştı. :)

Alexey Viktorov :

Bu kodu size örnek olarak sundum...

Sonra bir kez daha soruyorum, Canvas nasıl farklı? Benzer şekilde çalışır. Sizinki gibi sadece gerekli işlevler atılmaz. Prosedürel programlamanız değil, tamamen farklı bir seviye olan OOP olması dışında farklıdır. :)

Alexey Viktorov :

Tüm kontroller ve gecikmeler kodu karıştırır ve örnek olarak kullanmayı zorlaştırır.

Elbette, elbette... Dağınıklık... Kodlamayı bile bilmiyorsun! Bunun arkasından muhtemelen bir mazeret gelecektir: peki, ben programcı değilim... :) Sadece başkalarına öğretmeyi kendine görev edin!... :)

Alexey Viktorov :

Danışman ticaret yapmıyorsa ne tür bir optimizasyondan bahsedebiliriz? Optimize edilecek hangi parametreler?

Bir de terim olarak kafam karıştı :) BitmapLabel güncellemelerinin sıklığını optimize etmekten bahsetmiştim. Hangisini yapmadınız ve bana yüksek yüklü işlemlerde kullanmak için örneğinizi sundunuz.

Alexey Viktorov :
  1. Teklifimi reddettikten sonra Nikolai size tüm incelikleri açıklamaya başladı. Ben sadece tuval ile ilgili konusuna bakmanızı tavsiye ettim. Her şeyi okuduğunu söyleyerek yalan söylediğin. Yalancılara nasıl davranılmasını istersiniz (hafifçe söylemek gerekirse)?

Bu durumda yalancı sensin! Çünkü bunu söylemedim. Az önce neden başka bir Canvas tabanlı kütüphaneye ihtiyacım olduğunu söyledim. Aslında, başka bir Tuval. Bana aynı Canvas'ı teklif ettin ve tamamen aynı şekilde çalışıyor. Nikolay, Canvas'ın görevimi hızlı bir şekilde yerine getirmesi için ne yapılması gerektiğini açıklamak istemiyordu. Ve belli ki ilgili bilgiye sahip değildin. Nikolai'ye "onunla zamanını boşa harcama" dedin. "Kabul ediyorum" dedi. Nikolai ile ilgili tüm açıklaman bu. Programcılar...

Alexey Viktorov :

Sineklerin ve bok böceklerinin kodunuza girmesine izin verin. Yeterince ilginç ve faydalı aktivitem var.

Senin gerçeğin diyemeyeceğim... Ama bir konuda hemfikirim. Ve gerçekten, bu gerekli değil. Neden bir amatörün sonuçlarına ihtiyacım var? ... Bir araba tamirhanesine gitsen iyi olur ...

Her şey. Artık size bu kadar ayrıntılı cevaplar vermeyeceğim. Çünkü zaman kaybı. Yararlı bir şey yapmayı tercih ederim!