"MetaTrader 5'te DirectX’i kullanarak 3D grafikler nasıl oluşturulur?" makalesi için tartışma - sayfa 4

 
Mahrukh Aleem:

Oyun veya grafik uygulama veya tek ekran uygulamasını tanıtmak istiyorsanız bir önerim var.


Mt4/mt5 uygulaması ile aşağıdaki gibi bir geçiş yapın

-singleappmode windowed templatename.tpl theea.ex4/ex5

-singleappmode fullscreen templatename.tpl theea.ex4/ex5


Birisi switch metatrader ile uygulamayı çalıştırdığında sadece bir grafik açacak, şablonu uygul ayacak ve EA'yı ekleyecektir. Diğer tüm şeyler gizlenir, yalnızca EA bir özellik veya işlev kullanılmasına izin veriyorsa gösterilir.

Kontrolleri göster, menü çubuğunu göster vb. Ya da showdefaults olabilir.

Bu şekilde MetaTrader ciddi bir grafik uygulama veya tek ea kullanıcı uygulaması haline gelebilir.


Bunun zor olabileceğini veya şirket düzeyinde bazı kararlar gerektirebileceğini biliyorum, sadece meta trader'ı geliştirmek için önerim.

3d güzel bir özellik, ancak tüm temel şeylerin öncelikli olarak düzeltilmesini çok tercih ederim ve inanın bana çok şey var.

Bir ticaret platformunun içinde oyun geliştirmek, gerçekten mi?

 
Alain Verleyen:

3d güzel bir özellik, ancak tüm temel şeylerin öncelikli olarak düzeltilmesini çok tercih ederim ve inanın bana çok şey var.

Bir ticaret platformu içinde oyun geliştirmek, gerçekten mi?

Bir oyun veya tamamen özelleştirilmiş gui'ye sahip çok iyi tasarlanmış bir ticaret robotu olabilir.

 
Güzelmiş.
 
Vay canına, bunu mql5'te yapabileceğinizi bilmiyordum. Başka amaçlar için 3 boyutlu modelleme yaptım ama burada da yapabileceğinizi bilmiyordum.
 

12 saatlik ustalaşma ve sonuç:



3D iyi çalışıyor, ancak ustalaşması kolay değil.

 

Aynı soru - ve ticaret terminalinde NEDEN 3D grafiklere ihtiyacımız var??
Yoksa bunlar "geliştiricilerden gelen hackler" = a la sadece bizimle dalga geçmek için mi?! :)

TOLK'u 3D grafiklerde kim gördü?

 

Efendim.

Bu makaledeki kod cnn çalışmıyor! Lütfen kontrol edin ve bana yardım edin.

Canva.mql kodu için: Bazı Print(...) ekliyorum kodu ekledim, aşağıdaki bölüme bakın.

328. satır.

bool CCanvas::CreateBitmapLabel(const long chart_id,const int subwin,const string name,
                                const int x,const int y,const int width,const int height,
                                ENUM_COLOR_FORMAT clrfmt)
  {
//--- tuval oluştur
       Print("At CCanvas Create BitmapLabel 1  ",width,"  ",name,"   ",height,"  ",clrfmt);   //Ekliyorum
       bool xx= Create(name,width,height,clrfmt);     
       Print("CCanvas Create return  ",xx,"   ",GetLastError());   //Ekliyorum
 // if(Create(name,width,height,clrfmt)) // Değiştiriyorum
   if (xx)
     {
       Print("CCanvas Create  2  ",chart_id,"  ",name,"   ",subwin);
..................

Canva.mql kodu için: İzleme hatası için bazı Print(....) kodu ekliyorum, bkz. feryat: satır 328.

xx= Create(name,width,height,clrfmt);    will call function bellow:

aşağıdaki bölüme bakın: satır 328: Canva.mql kodu için: satır 250.

bool CCanvas::Create(const string name,const int width,const int height,ENUM_COLOR_FORMAT clrfmt)
  {
   Destroy();
//--- veri dizisini hazırlayın
   if(width>0 && height>0 && ArrayResize(m_pixels,width*height)>0)
     {
      //--- kaynak adı oluştur
      m_rcname="::"+name+(string)ChartID()+(string)(GetTickCount()+MathRand());
      
      //--- verileri sıfırlarla başlatın
      ArrayInitialize(m_pixels,0);
      //--- dinamik kaynak oluşturun
       Print("Before CCanvas ResourceCreate 0  ",m_rcname);         //Ekliyorum
      if(ResourceCreate(m_rcname,m_pixels,width,height,0,0,0,clrfmt))
        {

         //--- başarıyla oluşturuldu
         //--- başlatmayı tamamla
         m_width =width;
         m_height=height;
         m_format=clrfmt;
         //--- başarılı
       Print("then CCanvas ResourceCreate OK  ",m_rcname);     //Ekliyorum
         return(true);
        }
     }
.............................


Örnek 3D-surface.mq5 için

40. satır: 3D-Surface.mq5 çalıştırıldı.

   //| Oluştur & nbsp; &nbsp nbsp;   &nbsp
   //+------------------------------------------------------------------+
   virtual bool      Create(const int width,const int height)
     {
      //--- tuval boyutlarını kaydet
      m_width=width;
      m_height=height;
      //--- Giriş verilerini sıfırla
      m_mouse_x=m_mouse_y=-1;
      //--- Kamera için varsayılan parametreleri ayarlayın
      m_camera_distance=10.0 f;
      m_camera_angles.x=DX_PI_DIV6;
      m_camera_angles.y=DX_PI_DIV3;
      //--- 3B sahne oluşturmak için bir tuval oluşturun
      ResetLastError();
      if(!m_canvas.CreateBitmapLabel("3D Surface",0,0,m_width,m_height,COLOR_FORMAT_ARGB_NORMALIZE))
       { 
         Print("CreateBitmapLabel fail 3D surface ?");   // Bu satırı ekliyorum
         Print("Error creating canvas: ",GetLastError());
         return(false);
         }
..........................


3D-Surface.mq5 çalıştırıldı.

2023.05.05 11:32:46.180 3 D_Surface (EURUSD,M1)  At CCanvas Create BitmapLabel 1  604  3 D Surface   392  2
2023.05.05 11:32:46.180 3 D_Surface (EURUSD,M1)  Before CCanvas ResourceCreate 0  ::3 D Surface1332772457869319469285704
2023.05.05 11:32:46.180 3 D_Surface (EURUSD,M1)  then CCanvas ResourceCreate OK  ::3 D Surface1332772457869319469285704
2023.05.05 11:32:46.185 3 D_Surface (EURUSD,M1)   CCanvas Create return  false   5151
2023.05.05 11:32:46.185 3 D_Surface (EURUSD,M1)  CreateBitmapLabel fail 3 D surface ?
2023.05.05 11:32:46.185 3 D_Surface (EURUSD,M1)  Error creating canvas: 5151
then CCanvas ResourceCreate OK 
BUR BUT But....

    
CCanvas Create return  false   5151

Sorun nedir?

5151 nedir?

 

ekran bağdaştırıcım Nivada FX 1700--- eski bir ürün. sadece feture-level 10.0'ı destekliyor


MT için Force WRAP'ı ayarlamak için DXcpl.exe'yi kullanın, sonra her şey yolunda gider.

 

Dilin yeteneklerini göstermek için fena değil.

Ancak ticaret için pek kullanışlı değil, ticaret için nerede kullanabileceğimi düşündüm, ama aklıma hiçbir şey gelmedi.

Gösterim için, bir pozun doğru açılması, bir emir belirleme, değişiklik, silme, kapatma vb. tüm kontrolleri içeren bir Uzman Danışman şablonu yazmak, hatasız olarak doğrulama için daha fazla göndermek için daha iyidir.

Demek istediğim, mt5'te bir Uzman Danışman yazdım, terminalde hatasız ve sorunsuz işlem yapıyor.

Doğrulama için gönderdim, çok fazla hata var, her eylem için yaklaşık 5 kontrol yazdım, kendi kontrollerimi kullanarak ve

Bir ticaret robotu Piyasada yayınlanmadan önce hangi kontrollerden geçmelidir?

ve işe yaramazdı, bir ay boyunca kendime işkence ettim, hala bir sürü hata.

Tükürmek zorunda kaldım, mt5'e geçmenin zor olması boşuna değil, mt4 ile böyle bir sorunum yok.

Şablon kesinlikle faydalı olacaktır.

Ya da bana çalışan bir şablonun bağlantısını verin, iyi bir tane bulamadım.

Herkese iyi şanslar!

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Anatoliy Lukanin #:

bana çalışan bir şablonun bağlantısını verin, iyi bir tane bulamıyorum.

https://www.mql5.com/ru/forum/93352/page78#comment_48296338