Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 317

 
artmedia70:
//+------------------------------------------------------------------+
//|                                                    trendyxV1.mq5 |
//+------------------------------------------------------------------+
#include <Canvas\Canvas.mqh>
CCanvas LomLine;
int KoorX[4]={100,200,350,480};
int KoorY[4]={100,150,380,150};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   LomLine.Destroy();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   LomLine.CreateBitmapLabel("trendyx",0,0,800,800,COLOR_FORMAT_ARGB_RAW);
   LomLine.PolylineAA(KoorX,KoorY,ColorToARGB(clrRed, 155),STYLE_SOLID);
   LomLine.Update();

  }
//+------------------------------------------------------------------+

,.

 
pako:

,.

 
EA hat das Öffnen von Positionen gestoppt, weil "ungültige Integer-Zahl als Parameter 9 für die Funktion 'OrderSend'". Kann jemand erklären, was das ist? Vermutlich lag es an einem Update des MT4-Terminals.
 
Katerina:
EA hat das Öffnen von Positionen gestoppt, weil "ungültige Integer-Zahl als Parameter 9 für die Funktion 'OrderSend'". Kann jemand erklären, was das ist? Vermutlich liegt es an der Aktualisierung des MT4-Terminals.
Bitte fügen Sie den Code bei, in dem die Funktion"OrderSend" aufgerufen wird. Angeblich ist die magische Zahl nicht richtig eingestellt.
 
Nun, ich habe es bereits korrigiert. Wir danken Ihnen für Ihr Feedback.
 
Ich frage mich, ob man in MQl5 eine Animation in das Diagramm einfügen kann, wie z.B. einen Kerl, der auf die Kerze schlägt, auf das Indikatorsignal oder einfach so
 
aleks557:
Ich frage mich, ob man in MQl5 eine Animation in das Diagramm einfügen kann, wie z.B. einen Kerl, der auf die Kerze, das Indikatorsignal oder einfach nur so klopft
Die Animation muss manuell aus den vielen abwechselnden .bmp-Bildern erstellt werden. Sie werden in der Regel auf einer Leinwand aus einer Reihe von Punkten gezeichnet.
 
barabashkakvn:
Die Animation muss manuell aus vielen aufeinanderfolgenden .bmp-Bildern erstellt werden. Oder zeichnen Sie aus einer Reihe von Punkten auf der Leinwand.

Grüße, Kleiner Zwerg, wo ist "KANVAS"? Ich weiß, dass die Animation in Photoshop gemacht wird, aber "KANVAS" war noch nicht da, wie kann ich dort ein Ticket kaufen?

Denn Google führte mich zu einer Art Molkerei.

 
aleks557:

Grüße, Kleiner Zwerg, wo ist "KANVAS"? Ich weiß, dass die Animation in Photoshop gemacht wird, aber "KANVAS" war noch nicht da, wie kann ich dort ein Ticket kaufen?

Ich weiß es nicht, aber ich habe es gegoogelt und eine Molkerei gefunden.

CCanvas isteine Klasse zur Erstellung benutzerdefinierter Grafiken.

Beispiele für die Verwendung, der Pfad von MetaEditor: ...\MQL5\Scripts\Examples\Canvas\

 
aleks557:
Ich frage mich, ob man in MQl5 eine Animation zu einem Diagramm hinzufügen kann?

Hier ist mehr:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fragen von Neulingen

Renat, 2012.10.20 14:30

Wussten Sie schon, dass unsere Kanvases perfekt gepuffert sind und mit einem Objekt auf dem Bildschirm verknüpft sind?

Wir können Rahmen perfekt, schnell und ohne Artefakte zeichnen. Werfen Sie einen Blick auf das Videobeispiel, das auf der Erzeugung von Bildsequenzen in OpenCL Test basiert.

Verwenden Sie eine nette Taktik:

  1. Erstellen Sie ein Bitmap-Label-Grafikobjekt im Diagramm

       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. Erstellen Sie eine leere grafische Ressource im Speicher und binden Sie sie an ein zuvor erstelltes Objekt:

    //--- 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);
    
    Das ist der Punkt, an dem der Zauber beginnt. Das grafische Objekt erhält eine direkte Bindung an die grafische Ressource. Und diese Bindung ist intelligent mit Caching, da sie speziell für schnelles Paging und Backbuffer-Handling entwickelt wurde.

  3. Jetzt können Sie einfach in Ihrem Puffer zeichnen, ohne sich um die Bindung an ein Objekt auf dem Bildschirm kümmern zu müssen

    //--- рисуем что хотим в buf
    ....
    
  4. Und nun ist es an der Zeit, diese aktualisierte Bitmap auf dem Bildschirm anzuzeigen

          //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
          ChartRedraw();
    
    Dazu wird die Ressource "neu aufgebaut" (es findet kein tatsächlicher Neuaufbau statt, da alle Größen gleich sind), die neue Bitmap wird kopiert und die Änderungszähler dieser Ressource werden erhöht.

    Beachten Sie, dass das grafische Objekt objname selbst in keiner Weise berührt wird, da es bereits mit der Ressource verknüpft ist.

    Dann rufen wir Screen Redraw über ChartRedraw auf, was das Zeichnen des grafischen Objekts erfordert. Sie ist an unsere Ressource gebunden, die sie über den Bitmap-Änderungszähler kontrolliert. Wenn der für das grafische Objekt gespeicherte Änderungszähler nicht mit dem Änderungszähler der Ressource übereinstimmt, wird die Bitmap automatisch in das grafische Objekt kopiert und auf geschützte Weise visualisiert. Wenn die Zähler jedoch übereinstimmen, wird das Bild ohne Änderungen angezeigt.

Dies ist eine einfache Methode zur sicheren (durch gleichzeitigen Zugriff von MQL5 und dem Terminal-Rendering-System selbst) und schnellen Arbeit mit Rendering-Frames.

Sie müssen es probieren.
Grund der Beschwerde: