Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 47

 
Lütfen söyle bana, uzak ajanlar üzerinde görselleştirme, sanırım kategorik olarak mümkün değil mi? Yoksa mümkün mü?
 
Dimka-novitsek :
Lütfen söyle bana, uzak ajanlar üzerinde görselleştirme, sanırım kategorik olarak mümkün değil mi? Yoksa mümkün mü?

İmkansız çünkü nafik gerekli değil, uzak aracı işlem modunda çalışıyor, penceresi yok (ayarlar penceresi hariç).

yalnızca görev yöneticisi aracılığıyla görülebilir (ancak ne yaptığı değil, yalnızca süreç).

 
Burada doğrudan gösterilmeyen baskıları okudum .. Bu çok kötü .. Genel olarak, gri çizgide yeterince uzun bir süre boyunca optimizasyon ilerlemesinde yeşil bir nokta bile yoksa, bu ne anlama geliyor? hiçbir olumlu sonuç olmadığını? O halde Tim'in daha fazla baskıya ve görselleştirmeye ihtiyacı var! Ama neden gitmiyor? Tanklar hareket ediyor ve gemiler savaşta ve 4 gigabayt kadar operasyonel bellek var ve video kartı süper, 1375 MHz orada bir şey ama tam olarak test edemiyor !! En azından yavaş yavaş... Bilgisayar hemen çöküyor ve boş ekran açılıyor.
 
Urain :
İmkansız çünkü nafik gerekli değil, uzak temsilci proses modunda çalışıyor, penceresi yok (ayarlar penceresi hariç) Teşekkürler! Anladım! Gerçekten!
 
Vladon :
Saat için, örneğin doğrudan kaynaklarda saklamak mümkünse, standart olmayan bir yazı tipi kullanmak istiyorum.
sergeev :
Metin, yanınızda ayrı bir ttf dosyası taşımak değil, kaynak olarak hemen ex5'e gömmek anlamına gelir.

Yani, yalnızca bir grafik bitmap/tuvalde çizim yapmak için mi?

Yazı tiplerini tam olarak gömmeyeceğiz, ancak tuvalde çizim yapmak için standart Windows yazı tiplerini kullanma fırsatı verebiliriz.

 
Renat :

Yani, yalnızca bir grafik bitmap/tuvalde çizim yapmak için mi?

Hayır, verimli etiket çizimi için. Soru, terminalin yazı tipini kaynaklardan alıp kendi başına kurabilmesidir.
 
TheXpert :
Hayır, verimli etiket çizimi için. Soru, terminalin yazı tipini kaynaklardan alıp kendi başına kurabilmesidir.
Ne yazık ki hayır.
 
Renat :

Yani, yalnızca bir grafik bitmap/tuvalde çizim yapmak için mi?

Yazı tiplerini tam olarak gömmeyeceğiz, ancak tuvalde çizim yapmak için standart Windows yazı tiplerini kullanma fırsatı verebiliriz.

tuval için mevcut fikirler iyi. Anladığım kadarıyla bunun için biraz GDI açacaksınız. Bu harika.

ama burada bir sorun var, bana öyle geliyor ki ideolojik düzeyde harita çizme ilkelerine gömülü.

İki örnekle açıklayacağım.

Kanvasın daha aktif kullanılabilmesi için personel değişikliği yapılması gerekmektedir. Ve terminalimizde, tüm zaman dilimlerinden gizlenene kadar herhangi bir nesne çizilmez ( OBJ_NO_PERIODS ). Bu da cismin henüz çizilmediyse yerini hazırlayıp boyutlarını öğrenemememe neden oluyor.

Bu konuyu hem çıktı statik metnin boyutu hem de çıktı bmp boyutları için gündeme getirdim - cevap şöyle verildi - genişlik değerleri = -1 ile çiziyorsunuz ve ardından nesnenin boyutunu soruyorsunuz ve kesin olarak bilmek. Ve buraya minimum bir duraklama ve ChartRedraw'ı arama ihtiyacı ekleyin ... bunun bir hack olduğunu kabul edin.

Ancak tabloya böyle bir statik veya bmp değil, düzinelerce tokat atmamız gerekiyor. Ve eğer çok fazla aktivite varsa, render sırasındaki duraklamaları gözlemlemelisiniz.

--------------------

Mevcut nesnelere bir alternatif olarak her yerde bulunan tuvale gelince, bu bir ütopyadır // ideal olarak hoş olsa da

Aklı başında hiç kimse 10 MB'lık bir bitmap çizip, sadece tüm çizelgede 2096 x 1080 piksel çapraz bir çizgi olması için, onu bir frenle çizelgeye koymayacaktır.


Tuvalin gelişimini tamamen destekliyorum // ve genel olarak her türlü gelişmeyi destekliyorum

ancak mevcut nesneler, arayüzün tüm iş ihtiyaçlarının %95'ini karşılar. Tuval, karmaşık iş yapılarına bir ektir // Kart Kohonen örneğinde çok iyi gösterilmiştir. Ancak nesneleri tamamen değiştirmek istemezler.

(-%5 koordinat hattının girişini engellemek için geliştiricilerin çabalarıdır. :) // ama diyalog çoktan başladı, umarım fikir birliğine varırız)

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

2012.10.20 14:21:46 Test uzmanı uzman dosyası C:\Users\Micah\AppData\Roaming\MetaQuotes\Terminal\FF783873B20D7FA177754FFAFD85AFB6\MQL5\Experts\final.ex5 ayırma hatası

2012.10.20 14:21:31 Core 2 yetkilendirildi (agent build 695)

2012.10.20 14:21:16 127.0.0.1:3001'e bağlanan Core 2

2012.10.20 14:11:10 Core 1 OpenCL cihazı: GPU NVIDIA Corporation GeForce 9600 GSO 1GB, OpenCL 1.0 (12 birim, 1375 MHz, 2048MB, sürüm 301.42)

pardon burda ne yazıyor??? Hatanın bir hata olduğunu anlıyorum. Neyi özlüyor? ??

Genel olarak, test sırasında neredeyse tamamen kilitleniyor !! Sık sık kendini kesiyor .. Ama aynı akşam, sonuçta oyunlar çok canlı ve güzel - dünya tankları, takipçi vb. !


 
sergeev :

ama burada bir sorun var, bana öyle geliyor ki ideolojik düzeyde harita çizme ilkelerine gömülü.

Kanvasın daha aktif kullanılabilmesi için personel değişikliği yapılması gerekmektedir. Ve terminalimizde, tüm zaman dilimlerinden gizlenene kadar herhangi bir nesne çizilmez ( OBJ_NO_PERIODS ). Bu da cismin henüz çizilmediyse yerini hazırlayıp boyutlarını öğrenemememe neden oluyor.

Tuvallerimizdeki mükemmel geri arabelleğe alma ipucunu ve ekrandaki bir nesneye yapışmayı biliyor musunuz?

Çerçeveleri kusursuz, hızlı ve artefakt olmadan çizebiliriz. OpenCL Testinde çerçeve dizisi oluşturmaya dayalı video örneğine bakın.

Güzel taktikler kullanın:

  1. Grafikte bir Bitmap Etiketi Grafik Nesnesi Oluşturun

       string objname = "OpenCL_" + IntegerToString ( ChartID ());
       string resname = "::Mandelbrot_" + IntegerToString ( ChartID ());
    //--- creating the object for graphics display
       ObjectCreate ( 0 ,objname, OBJ_BITMAP_LABEL , 0 , 0 , 0 );
       ObjectSetInteger ( 0 ,objname, OBJPROP_XDISTANCE , 4 );
       ObjectSetInteger ( 0 ,objname, OBJPROP_YDISTANCE , 26 );
    

  2. Boş bir bellek içi grafik kaynağı oluşturun ve onu önceden oluşturulmuş nesneye bağlayın:

     //--- create initial empty picture
       uint buf[];
    
       ArrayResize (buf,SIZE_X*SIZE_Y);
       ResourceCreate(resname,buf,SIZE_X,SIZE_Y, 0 , 0 ,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
       ObjectSetString ( 0 ,objname, OBJPROP_BMPFILE ,resname);
    
    Sihir yapılan yer burasıdır. Grafik nesnesi, grafik kaynağına doğrudan bir bağlantı alır. Ayrıca bu bağlama, hızlı sayfalama ve geri arabelleklerle çalışmak için özel olarak oluşturulduğundan, önbelleğe alma ile akıllıdır.

  3. Artık ekrandaki bir nesneyle ilgili olma konusunda endişelenmenize gerek kalmadan arabelleğinizde kolayca çizim yapabilirsiniz.

     //--- рисуем что хотим в buf
    ....
    
  4. Ve şimdi bu güncellenmiş bitmap'i ekranda gösterme zamanı

           //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y, 0 , 0 ,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
           ChartRedraw ();
    
    Bunu yapmak için, kaynağı yeniden "yeniden oluştururuz" (aslında, tüm boyutlar aynı olduğundan yeniden oluşturma gerçekleşmez), içine yeni bir bitmap kopyalarız ve bu kaynağın değişiklik sayaçları artar.

    Lütfen burada objname grafik nesnesinin kendisine hiçbir şekilde dokunulmadığını unutmayın, çünkü zaten kaynakla ilişkilendirilmiştir.

    Daha sonra, grafiksel bir nesne çizme ihtiyacına yol açan ChartRedraw aracılığıyla ekranı yeniden çizme diyoruz. Ve bunun, bitmap değişiklik sayacı tarafından kontrol ettiği, kaynağımıza bir bağlantısı var. Grafik nesnesi için kaydedilen değişiklik sayacı, kaynağın sayacıyla eşleşmiyorsa, bitmap otomatik ve güvenli bir şekilde grafik nesnesine kopyalanır ve oluşturulur. Sayaçlar eşleşirse, resim değişmeden görüntülenir.

İşte bu kadar basit bir güvenli yöntem (MQL5'ten ve terminal işleme sisteminin kendisinden eşzamanlı erişimden) ve çerçeveleri görüntüleme ile hızlı çalışma.