Discussione sull’articolo "Come creare grafica 3D utilizzando DirectX in MetaTrader 5" - pagina 4

 
Mahrukh Aleem:

Ho un suggerimento da darvi se volete promuovere un'applicazione di gioco o grafica o un'applicazione a schermo unico.


Fate un cambio con applicazioni mt4/mt5 come

-singleappmode windowed templatename.tpl theea.ex4/ex5

-singleappmode fullscreen templatename.tpl theea.ex4/ex5


Quando qualcuno esegue l'applicazione con switch metatrader aprirà solo un grafico , applicherà il template e allegherà l'EA. Tutte le altre cose saranno nascoste e mostrate solo se l'EA permette di utilizzare una proprietà o una funzione.

Come mostrare i controlli, mostrare la barra dei menu, ecc. Oppure potrebbe essere showdefaults.

In questo modo MetaTrader può diventare un'applicazione grafica seria o un'applicazione per singolo utente dell'EA.


So che potrebbe essere difficile da realizzare o richiedere alcune decisioni a livello aziendale, ma è solo il mio suggerimento per migliorare MetaTrader.

Il 3d è una bella funzione, ma preferirei che tutte le cose di base venissero sistemate in via prioritaria, e ce ne sono molte, credetemi.

Sviluppare un gioco all'interno di una piattaforma di trading, davvero?

 
Alain Verleyen:

Il 3d è una bella funzione, ma preferirei molto che tutte le cose di base venissero sistemate in priorità, e ce ne sono molte credetemi.

Sviluppare un gioco all'interno di una piattaforma di trading, davvero?

Potrebbe essere un gioco o un robot di trading molto ben strutturato con una guida completamente personalizzata.

 
È bello
 
Wow, non sapevo che si potesse fare in mql5. Ho modellato in 3d per altri scopi, ma non sapevo che si potesse fare anche qui.
 

12 ore di mastering e il risultato:



Il 3D funziona bene, ma non è facile da padroneggiare.

 

La stessa domanda - e PERCHE' abbiamo bisogno della grafica 3D nel terminale di trading??
O sono questi "pass-hack degli sviluppatori" = a la solo per prenderci in giro?! :)

Chi ha visto il TOLK in grafica 3D?

 

Signore.

il codice in questo articolo non viene eseguito! Si prega di controllare e aiutarmi.

per il codice Canva.mql: ho aggiunto alcuni Print(...) per tracciare l'errore, vedi sotto.

riga 328.

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)
  {
//--- creare la tela
       Print("At CCanvas Create BitmapLabel 1  ",width,"  ",name,"   ",height,"  ",clrfmt);   //Io aggiungo
       bool xx= Create(name,width,height,clrfmt);     
       Print("CCanvas Create return  ",xx,"   ",GetLastError());   //Io aggiungo
 // if(Create(name,width,height,clrfmt)) // cambio
   if (xx)
     {
       Print("CCanvas Create  2  ",chart_id,"  ",name,"   ",subwin);
..................

per il codice Canva.mql: ho aggiunto un po' di codice Print(....) per l'errore di tracciamento, vedi sotto: riga 328.

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

vedi sotto: riga 328: per il codice di Canva.mql: riga 250.

bool CCanvas::Create(const string name,const int width,const int height,ENUM_COLOR_FORMAT clrfmt)
  {
   Destroy();
//--- preparare l'array di dati
   if(width>0 && height>0 && ArrayResize(m_pixels,width*height)>0)
     {
      //-- generare il nome della risorsa
      m_rcname="::"+name+(string)ChartID()+(string)(GetTickCount()+MathRand());
      
      //--- inizializzare i dati con degli zeri
      ArrayInitialize(m_pixels,0);
      //--- creare una risorsa dinamica
       Print("Before CCanvas ResourceCreate 0  ",m_rcname);         //Io aggiungo
      if(ResourceCreate(m_rcname,m_pixels,width,height,0,0,0,clrfmt))
        {

         //--- creato con successo
         //--- completare l'inizializzazione
         m_width =width;
         m_height=height;
         m_format=clrfmt;
         //--- riuscire
       Print("then CCanvas ResourceCreate OK  ",m_rcname);     //Io aggiungo
         return(true);
        }
     }
.............................


Per l'esempio 3D-surface.mq5

riga 40: Eseguire 3D-Surface.mq5, ricevuto.

   //| Creare & nbsp; &nbsp nbsp;   &nbsp
   //+------------------------------------------------------------------+
   virtual bool      Create(const int width,const int height)
     {
      //--- salvare le dimensioni della tela
      m_width=width;
      m_height=height;
      //--- Azzeramento dei dati di ingresso
      m_mouse_x=m_mouse_y=-1;
      //--- Impostare i parametri predefiniti per la telecamera
      m_camera_distance=10.0 f;
      m_camera_angles.x=DX_PI_DIV6;
      m_camera_angles.y=DX_PI_DIV3;
      //--- creare un canvas per renderizzare una scena 3D
      ResetLastError();
      if(!m_canvas.CreateBitmapLabel("3D Surface",0,0,m_width,m_height,COLOR_FORMAT_ARGB_NORMALIZE))
       { 
         Print("CreateBitmapLabel fail 3D surface ?");   // Aggiungo questa riga
         Print("Error creating canvas: ",GetLastError());
         return(false);
         }
..........................


Eseguire 3D-Surface.mq5, ricevuto.

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

Cosa c'è di sbagliato?

Che cos'è il 5151?

 

Il mio adattatore di schermo è Nivada FX 1700--- un prodotto vecchio. supporta solo il livello 10.0 di feture.


Quindi uso DXcpl.exe per impostare Force WRAP per MT, poi tutto funziona bene.

 

Per dimostrare le capacità del linguaggio, non è male.

Ma è difficilmente utile per il trading, avendo pensato a dove posso usarlo per il trading, ma non mi è venuto in mente nulla.

Per la dimostrazione è meglio scrivere un modello di Expert Advisor con tutti i controlli di corretta apertura di una posizione, impostazione di un ordine, modifica, cancellazione, chiusura, ecc, da inviare poi per la convalida, senza errori.

Il punto è che ho scritto un Expert Advisor su mt5, che opera nel terminale senza errori e problemi.

L'ho inviato per la convalida, ci sono molti errori, per ogni azione ho scritto circa 5 controlli, usando i miei e quelli del sito web.

Quali controlli deve superare un robot di trading prima di essere pubblicato sul mercato?

ed è stato inutile, mi sono torturato per un mese, ancora un sacco di errori.

Ho dovuto sputare, non per niente è difficile passare a mt5, non ho avuto questi problemi con mt4.

Il template sarà sicuramente utile.

Oppure datemi un link ad un template funzionante, non ne ho trovato uno buono.

Buona fortuna a tutti!

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

Mi dia un link a un modello funzionante, non riesco a trovarne uno buono.

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