Neues MetaTrader 5 Build 1570: Verbesserung des Market-Schaufensters und Erweiterung von Funktionstemplates in MQL5

Das Schaufenster des MetaTrader Markets für Applikationen wurde aktualisiert

24 März 2017

Terminal

  1. Das Schaufenster des MetaTrader Markets für Applikationen wurde aktualisiert. Nun ist es einfacher Handelsroboter und technische Indikatoren auszuwählen. Wir haben das Design aktualisiert und Produktaufstellung hinzugefügt:

    • Auf der Startseite werden nun populäre Expert Advisors, Indikatoren, Neuheiten und kostenlose Top Apps angezeigt.
    • In den Kategorien Expert Advisors, Indikatoren und Utilitys gibt es jetzt Untergruppen: Grid und Hedging Roboter, Trend und Multicurrency Indikatoren und vieles mehr.



  2. Die Aktualisierung des Kundenterminals und das Arbeiten integrierter Käufe im Market, Signalen und Virtual Hosting bei der Verwendung eines Accounts mit beschränkten Rechten wurde korrigiert.
  3. Es wurde ein Fehler behoben, der in einigen Fällen zu einer falschen Sortierung der Historie von Positionen geführt hatte.
  4. Die Anzeige des Tabs "Aktiva" wurde optimiert und korrigiert.

MQL5

  1. Es wurde die Unterstützung für das Überladen von Funktionstemplates nach Parametern hinzugefügt. Es gibt zum Beispiel ein Funktionstemplate, das den Wert des zweiten Parameters in den ersten Parameter anhand der expliziter Typenumwandlung schreibt. In der MQL5-Programmiersprache ist es verboten, den string Typ in den bool Typ umzuwandeln, wir können das aber selbst tun. Erstellen wir das Überladen eines Funktionstempaltes:
    //+------------------------------------------------------------------+
    //| Template-Funktion                                                |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Spezielle Überladung für den Fall bool+string                    |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    Als Ergebnis der Ausführung dieses Codes sehen wir, dass für das Paar int+string das Funktionstemplate Assign() verwendet wurde, und dass beim zweiten Aufruf für das Paar bool+string bereits die überladene Version verwendet wurde.
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  2. Es wurde die Option der expliziten Spezialisierung von Funktionstemplates hinzugefügt. Dafür müssen die Parameter der Typisierung vor der Liste der Aufrufparameter angegeben werden:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // explizite Spezialisierung von Funktionstemplates
      }
    Auf diese Weise erfolgt die Spezialisierung nicht durch die Aufrufparameter, sondern durch eine explizite Angabe der Typen.

  3. Die Anzeige benutzerdefinierter Indikatoren mit dem DRAW_ZIGZAG Zeichnungstypwurde optimiert.
  4. Zur Aufzählung der Abschlusstypen ENUM_DEAL_TYPE wurden neue Werte hinzugefügt:

    • DEAL_DIVIDEND — Anrechnung der Dividende.
    • DEAL_DIVIDEND_FRANKED — Anrechnung von "franked dividends" (nicht besteuert, das Unternehmen bezahlt die Steuer für den Kunden).
    • DEAL_TAX — Steuerabzug.

  5. Die Anzeige benutzerdefinierter Indikatoren mit dem DRAW_FILLING Zeichnungstyp wurde korrigiert. Wenn die Koordinaten der oberen und der unteren Linien zusammenfallen, wird eine dünne Linie gezeichnet.
  6. Die Berechnung der Koordinaten des Objekts "Bitmap Label" wurde beim Setzen des Parameters CHART_SHOW auf false korrigiert. Dieser Parameter wird durch die ChartSetInteger Funktion gesetzt und ermöglicht es, alle Elemente des Preischarts für die Erstellung eines eigenes Interfaces des Programms auszublenden.
  7. Es wurde der Fehler der Codierung von 24-Bit-Bildern behoben, wenn diese in die Ressourcen einer MQL5-Applikation platziert werden.
  8. Es wurde der Fehler der Ausgabe von Strukturen mithilfe der ArrayPrint Funktion behoben.
  9. Die MQL5 Standardbibliotheken wurden aktualisiert.

MetaEditor

  1. Es wurde eine Übersetzung der Benutzeroberfläche ins Malaiische hinzugefügt.

Signals

  1. Das Öffnen der Seite eines Signals im Terminal infolge des Klickens auf den Link auf der MQL5.community Webseite, wenn kein Handelskonto verbunden ist, wurde korrigiert.

Tester

  1. Es wurden Fehler bei der Arbeit der CopyTicks Funktion im Strategietester behoben.
  2. Die Sortierung von Trades vom Typ "Auszahlung" (Withdrawal) wurde bei der Generierung eines Testberichts korrigiert.
  3. Die Modifizierung von Pending Orders wurde korrigiert.

Hosting

  1. Die Anzeige von Virtual Hosting Wizard wurde auf Bildschirmen mit ultra hohen Auflösung (4K) wurde korrigiert.

Die Dokumentation wurde aktualisiert.