XY'de çizilen nesneler nasıl pürüzsüz hale getirilir (MT4 - MT5) - sayfa 10

 
Vitaliy Kuznetsov :

Teşekkürler, güzel şablon. Çalışmalarınızdan çok ilginç şeyler öğreniyorum.

Dmitry, seni hala yüksek bir beceri sergileyebilecek bir programcı olarak görüyorum.

Ve kodda öneriler, yapıcı düşünceler varsa, o zaman zevkle (ve sadece ben değil) deneyiminizi benimserdim.

Not: Kodu 100 kez duymaktansa bir kez görmek daha iyidir.

Evet, sıraya girdim, sıraya giriyorum, uzanmış ellerdeyim... Neyin kodu?

 
Nikolai Semko :

Freelance yapılabileceğinden şüpheliyim. Bunu yapabilenler kulaklarına kadar iş yüklenir ve özgür olanlar tuvali anlar, büyük olasılıkla sizden daha kötü .

Bu yüzden nesneleri sevmiyorum, çünkü onlar kendi hayatlarını, sizin kontrolünüz dışında kendi ipliklerinde yaşıyorlar. Aksine tuval ile - her şey sizin elinizde. Bu nedenle, tuvali olan bir test cihazı için, yavaşlamaması için kod eklemeniz ve her tikte saniyede 30 defadan fazla bir kare hesaplamanız gerekir.
Ve TF ile çalışma ve MT5'teki yükleme geçmişi son derece mantıksız ve verimsiz bir şekilde uygulanmaktadır. Yalnızca M1 yüklenir ve ambalajsız halde geri kalanı yalnızca M1'den hesaplanır. Bu nedenle, MN1'i ilk kez açarsanız, 10 saniyeden fazla bir sürede 100 bar yüklenecektir. Çubukların yüklenmesini kendim yazmam ve M1'i paketlenmiş bir forma çevirmem ve hesaplanan tüm TF'leri bellekte tutmam gerekiyordu. M1 ile birlikte tüm TF'lerim RAM'de MT5'teki normal bir M1'den çok daha az yer kaplar.

Bu tövbe mi yoksa vecd mi?

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

Bu tövbe mi yoksa vecd mi?

Görüyorsun, tam tersi. Bir program yaratırsınız - bu, yasalarınıza göre yaşayan bir dünyadır. Nesneye yönelik bir şey yaptınız: amip gibi bir şey yarattınız veya daha ani bir şekilde genel olarak kendi başına yaşıyor.

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

Bu tövbe mi yoksa vecd mi?

Bu, yetersiz kibire dayalı bir saçmalıktır. Ve MT5'te çalışmanın gerçeklerinden çok uzak.

 
Nikolai Semko :

Pekala, başlangıç için, verdiğiniz bu algoritmaya göre göstergenizi nesnelerle sabitleyin.

Nikolay, zor değilse, düzeltilmiş göstergenin test cihazında zamanla değiştiği gerçeği hakkındaki düşünceleriniz nelerdir. Fare ile ölçeği değiştirmeye çalışırsanız, düzeltilir.

Tuval ile aynı. Veya grafik ölçeğine manuel olarak müdahale edene kadar grafik kaymaz veya yanlış bir şekilde (bir süre sonra) kayar. Hesaplamalar ve uyarılar doğru ama grafikler...

Piksel başına normal ekran değişimi şeklinde bir koltuk değneği yazmayın?) Elbette benim göremediğim bir çözüm var. Veya test cihazında bir sorun olabilir mi?

 
Vitaliy Kuznetsov :

Nikolay, zor değilse, düzeltilmiş göstergenin test cihazında zamanla değiştiği gerçeği hakkındaki düşünceleriniz nelerdir. Fare ile ölçeği değiştirmeye çalışırsanız, düzeltilir.

Tuval ile aynı. Veya grafik ölçeğine manuel olarak müdahale edene kadar grafik kaymaz veya yanlış bir şekilde (bir süre sonra) kayar. Hesaplamalar ve uyarılar doğru ama grafikler...

Piksel başına normal ekran değişimi şeklinde bir koltuk değneği yazmayın?) Elbette benim göremediğim bir çözüm var. Veya test cihazında bir sorun olabilir mi?

bir satır ekliyorum

 if (id == CHARTEVENT_CHART_CHANGE ) Draw (); 
, grafik değişikliği olayını izleme (yeni bir çubuk aynı zamanda bir grafik değişikliği olayıdır)
  • test modu için OnCalculate'de, örneğin yeni bir çubuk oluştuğunda yeniden çizmek için bir satır ekliyorum, çünkü Test cihazında OnChartEvent çalışmıyor:
     if (rate_total != prev_calculated ) if (Canvas.tester) {ChartChanged (); Draw ();}
  • Bu, MT4'te işe yaramazsa, CHARTEVENT_CHART_CHANGE olayında bir sorun vardır. Şimdi hiçbir alıntı kalmayana kadar kontrol etmeyin.



     
    Nikolai Semko :

    Bahşiş için teşekkürler. Eller ulaşmamışken bugün kontrol etmeye çalışacağım