Diskussion zum Artikel "Wie man 3D-Grafiken mit DirectX in MetaTrader 5 erstellt" - Seite 4

 
Mahrukh Aleem:

Ich habe einen Vorschlag, wenn Sie Spiele, grafische Anwendungen oder Ein-Bildschirm-Anwendungen fördern wollen.


Wechseln Sie zu einer mt4/mt5-Anwendung wie

-Einzelanwendungsmodus fenstergesteuert templatename.tpl theea.ex4/ex5

-singleappmode Vollbild templatename.tpl theea.ex4/ex5


Wenn jemand die Anwendung mit dem Schalter ausführt, wird Metatrader nur einen Chart öffnen, die Vorlage anwenden und den EA anhängen. Alle anderen Dinge werden ausgeblendet und nur angezeigt, wenn EA die Verwendung einer Eigenschaft oder Funktion erlaubt.

Wie show controls, show menubar etc. Oder es könnte showdefaults sein.

Auf diese Weise MetaTrader kann ernsthafte grafische Anwendung oder einzelne EA-Benutzer-Anwendung werden.


Ich weiß, es könnte schwer zu machen oder erfordern einige Unternehmensebene Entscheidungen, nur mein Vorschlag zur Verbesserung Meta Trader.

3D ist ein nettes Feature, aber ich würde es viel lieber sehen, wenn alle grundlegenden Dinge vorrangig behoben würden, und davon gibt es eine Menge, glauben Sie mir.

Ein Spiel innerhalb einer Handelsplattform zu entwickeln, wirklich?

 
Alain Verleyen:

3D ist eine nette Funktion, aber ich würde es viel lieber sehen, wenn alle grundlegenden Dinge vorrangig behoben würden, und davon gibt es eine Menge, glauben Sie mir.

Entwickeln Spiel innerhalb einer Handelsplattform, wirklich?

Es könnte ein Spiel oder ein sehr gut gestylter Handelsroboter mit vollständig angepasster Benutzeroberfläche sein.

 
Es ist schön
 
Wow, ich wusste nicht, dass man das in mql5 machen kann. Ich habe schon für andere Zwecke in 3d modelliert, aber ich wusste nicht, dass man das auch hier machen kann.
 

12 Stunden Mastering und das Ergebnis:



3D funktioniert gut, aber es ist nicht einfach zu meistern.

 

Die gleiche Frage - und WARUM brauchen wir 3D-Grafiken im Handelsterminal??
Oder sind diese "Pass-Hacks von Entwicklern" = a la nur um uns zu verarschen?! :)

Wer hat den TOLK in 3D-Grafik gesehen?

 

Herr.

der Code in diesem Artikel cnn nicht laufen! Bitte überprüfen Sie und helfen Sie mir.

für Canva.mql Code: Ich füge einige Print(...) Code für Trace-Fehler, siehe unten.

Zeile 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)
  {
//--- Leinwand erstellen
       Print("At CCanvas Create BitmapLabel 1  ",width,"  ",name,"   ",height,"  ",clrfmt);   //Ich füge hinzu
       bool xx= Create(name,width,height,clrfmt);     
       Print("CCanvas Create return  ",xx,"   ",GetLastError());   //Ich füge hinzu
 // if(Create(name,width,height,clrfmt)) // I ändern
   if (xx)
     {
       Print("CCanvas Create  2  ",chart_id,"  ",name,"   ",subwin);
..................

für Canva.mql-Code: Ich füge einen Print(....)-Code für die Fehlersuche hinzu, siehe unten: Zeile 328.

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

siehe unten: Zeile 328: für Canva.mql-Code: Zeile 250.

bool CCanvas::Create(const string name,const int width,const int height,ENUM_COLOR_FORMAT clrfmt)
  {
   Destroy();
//--- Datenfeld vorbereiten
   if(width>0 && height>0 && ArrayResize(m_pixels,width*height)>0)
     {
      //--- Ressourcenname erzeugen
      m_rcname="::"+name+(string)ChartID()+(string)(GetTickCount()+MathRand());
      
      //--- Daten mit Nullen initialisieren
      ArrayInitialize(m_pixels,0);
      //--- dynamische Ressource erstellen
       Print("Before CCanvas ResourceCreate 0  ",m_rcname);         //Ich füge hinzu
      if(ResourceCreate(m_rcname,m_pixels,width,height,0,0,0,clrfmt))
        {

         //--- erfolgreich erstellt
         //--- vollständige Initialisierung
         m_width =width;
         m_height=height;
         m_format=clrfmt;
         //--- erfolgreich
       Print("then CCanvas ResourceCreate OK  ",m_rcname);     //Ich füge hinzu
         return(true);
        }
     }
.............................


Für das Beispiel 3D-surface.mq5

Zeile 40: 3D-Surface.mq5 ausführen, erhalten.

   //| Erstellen & nbsp; &nbsp nbsp;   &nbsp
   //+------------------------------------------------------------------+
   virtual bool      Create(const int width,const int height)
     {
      //--- Abmessungen der Leinwand speichern
      m_width=width;
      m_height=height;
      //--- Eingangsdaten zurücksetzen
      m_mouse_x=m_mouse_y=-1;
      //--- Standardparameter für die Kamera festlegen
      m_camera_distance=10.0 f;
      m_camera_angles.x=DX_PI_DIV6;
      m_camera_angles.y=DX_PI_DIV3;
      //--- Erstellen einer Leinwand zum Rendern einer 3D-Szene
      ResetLastError();
      if(!m_canvas.CreateBitmapLabel("3D Surface",0,0,m_width,m_height,COLOR_FORMAT_ARGB_NORMALIZE))
       { 
         Print("CreateBitmapLabel fail 3D surface ?");   // Ich füge diese Zeile hinzu
         Print("Error creating canvas: ",GetLastError());
         return(false);
         }
..........................


Führen Sie 3D-Surface.mq5 aus, erhalten.

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

Was ist das Problem?

Was bedeutet 5151?

 

mein Display Adapter ist Nivada FX 1700--- ein altes Produkt. unterstützt nur feture-level 10.0


Verwenden Sie also DXcpl.exe, um Force WRAP für MT einzustellen, dann läuft alles gut.

 

Um die Fähigkeiten der Sprache zu demonstrieren, nicht schlecht.

Aber es ist kaum nützlich für den Handel, nachdem ich darüber nachgedacht habe, wo ich es für den Handel verwenden kann, aber mir ist nichts eingefallen.

Für die Demonstration ist es besser, eine Expert Advisor-Vorlage mit allen Prüfungen der korrekten Öffnung einer Pose zu schreiben, eine Bestellung, Änderung, Löschung, Schließung, usw., für das weitere Senden für die Validierung, ohne Fehler.

Mein Punkt ist, ich schrieb ein Expert Advisor auf mt5, es handelt im Terminal ohne Fehler und Probleme.

Ich schickte es für die Validierung, gibt es eine Menge von Fehlern, für jede Aktion schrieb ich etwa 5 Prüfungen, mit meinen eigenen und aus der

Welche Prüfungen sollte ein Handelsroboter bestehen, bevor er auf dem Markt veröffentlicht wird?

und es war nutzlos, ich quälte mich einen Monat lang, immer noch eine Menge Fehler.

Ich hatte zu spucken, es ist nicht umsonst, dass es schwer ist, zu mt5 zu wechseln, ich habe keine solchen Probleme mit mt4.

Die Vorlage wird auf jeden Fall nützlich sein.

Oder geben Sie mir einen Link zu einer funktionierenden Vorlage, ich habe nicht gefunden, eine gute ein.

Viel Glück an alle!

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

Geben Sie mir einen Link zu einer funktionierenden Vorlage, ich kann keine gute Vorlage finden.

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