Wie man mit MT5 anfängt, eine Zusammenfassung! - Seite 2

 

Demnächst verfügbar -
Neues Kommunikationssystem analog zum Telegramm - lesen Sie diesen Beitrag.

 
 

Es wurde ein guter Thread mit visualisierten Informationen erstellt - DerTipps-Thread.
Es wird dringend empfohlen, diesen kleinen Thread für alle Neulinge (um zu wissen) und für erfahrene Benutzer (um ihr Wissen aufzufrischen) zu lesen.

----------------

Freiberuflicher Dienst

  • Wie Sie Geld auf Ihr MQL5-Konto einzahlen
  • Wie Sie zur nächsten Stufe übergehen
  • Wie man Feedback hinterlässt
  • Was ist ein Bildschirmfoto?
  • Wie man eine Datei mit einer vorläufigen Anforderungsspezifikation/Dateien anderer Formate anhängt
  • Was einem Entwickler mitgeteilt werden muss, wenn das Programm einen Fehler hat
  • Wie man ein Bild/Code/Video/Tabelle in einen Text einfügt
  • Wie macht man einen Screenshot auf einem mobilen Gerät?
  • Verlängern der Ausführungsdauer/Kosten der Order
  • Verschwinden Sie nicht für 5 Tage nach der Einstellung 3 Tage für die AusführungKunde: Wie kann man ein GIF-Bild anstelle eines Videos erstellen, um es in einen Chat einzubetten?

----------------

Plattform

  • Wie installiert man einen Expert Advisor/Indikator?
  • Wo befindet sich das Plattform/Tester/Optimizer Journal
  • Wo befindet sich die MetaQuotes ID für die Bestätigung von Push-Benachrichtigungen?
  • Wie man über das Chart-Menü mit drei Klicks einen Screenshot eines Fehlers macht
  • Wo kann man E-Mail-Benachrichtigungen aktivieren und konfigurieren?
  • Wo befinden sich die Dateien, mit denen ein EA/Indikator arbeitet?
  • Was sind die Felder "Beschreibung" und "Symbol" und wo sind sie zu finden?
  • Wo finde ich die Build-Nummer der Plattform? Wie aktiviere ich das Datenfenster und sehe die Indikatorwerte?
  • Wie man die genaue Zeitskala aktiviert
  • Wie man eine Diagrammvorlage speichert
  • Hinzufügen einer URL für die Arbeit über WebRequestWo finde ich EX4/EX5-Dateien?

----------------

Expert Advisor

  • Was ist die Magische Zahl
  • Wie funktioniert der Trailing-StopWo befindet sich das EA-Journal?
  • Warum ist ein EA/Indikator im Navigator grau
  • Was ist der Unterschied zwischen Netting und Hedging
  • Wie installiert man ein auf dem Markt gekauftes Produkt?

----------------

Tester

  • Wie speichere/lade ich eine Set-Datei?
  • Wo finde ich das Plattform/Tester/Optimierer-Journal?
  • Wie unterscheiden sich die Testmodi voneinander?
  • Wie man visuelle Tests startet und verwendet
  • Wie lädt man einen verfügbaren Kursverlauf im MetaTrader 4 herunter?

 

Dies ist ein sehr wichtiges und sehr interessantes Update - bitte lesen Sie es -

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

MetaTrader 5 Plattform Beta Build 1910: Ungebundenes Drag-and-Drop von Charts und .Net-Bibliotheken in MQL5

MetaQuotes Software Corp., 2018.10.12 19:43

Die Beta-Version der aktualisierten MetaTrader 5-Plattform soll am 14. Oktober 2018 veröffentlicht werden. Wir werden unseren öffentlichen MetaQuotes-Demo-Server aktualisieren, der sich unter access.metatrader5.com:443 befindet. Wir laden alle Trader ein, an den Tests teilzunehmen, um die aktualisierten Funktionen der Plattform zu testen und den Entwicklern bei der Fehlerbehebung zu helfen.

Um die MetaTrader 5 Plattform bis zum Build 1910 zu aktualisieren, verbinden Sie sich mit access.metatrader5.com server:443.

Der endgültige Build der neuen MetaTrader 5-Plattform wird nach dem öffentlichen Betatest veröffentlicht.

Das Update wird die folgenden Änderungen beinhalten:

  1. Terminal: Sie können jetzt die Charts der Finanzsymbole aus dem Terminalfenster herausnehmen.

    Diese Funktion ist praktisch, wenn Sie mehrere Monitore verwenden. So können Sie das Hauptfenster der Plattform auf einen Monitor legen, um Ihren Kontostand zu kontrollieren, und Ihre Charts auf den zweiten Bildschirm verschieben, um die Marktsituation zu beobachten. Um einen Chart vom Terminal zu lösen, deaktivieren Sie die Option Angedockt im Kontextmenü des Charts. Verschieben Sie dann den Chart auf den gewünschten Monitor.



    Eine separate Symbolleiste auf abgekoppelten Charts ermöglicht die Anwendung von Analyseobjekten und Indikatoren, ohne dass Sie zwischen den Monitoren wechseln müssen. Verwenden Sie das Kontextmenü der Symbolleiste, um die verfügbaren Befehle zu verwalten oder um sie auszublenden.

  2. Terminal: Die integrierten Chats wurden vollständig aktualisiert. Sie unterstützen jetzt Gruppendialoge und Kanäle. Führen Sie private Diskussionen mit einer Gruppe von Personen in einer einheitlichen Umgebung, ohne zwischen verschiedenen Dialogen zu wechseln, und erstellen Sie Kanäle entsprechend Ihren Interessen und Sprachen. Kommunizieren Sie mit Kollegen und Freunden in der MQL5.community, ohne die Website zu besuchen.

    Gruppenchats und Kanäle können öffentlich oder privat sein. Ihre Ersteller entscheiden, ob es möglich ist, ihnen frei oder nur auf Einladung beizutreten. Sie können den Kanälen und Chats auch Moderatoren zuweisen, um die Kommunikation zusätzlich zu kontrollieren.



  3. Terminal: Unterstützung für erhöhte Volumengenauigkeit beim Handel mit Kryptowährungen wurde hinzugefügt. Das minimal mögliche Handelsvolumen beträgt nun 0,00000001 Lots. Die Markttiefe, die Zeit und die Verkäufe sowie andere Schnittstellenelemente bieten nun die Möglichkeit, Volumen mit einer Genauigkeit von 8 Dezimalstellen anzuzeigen.

    Das Mindestvolumen und sein Änderungsschritt hängen von den Einstellungen des Finanzinstruments auf der Seite des Brokers ab.




  4. Terminal: Die Registerkarte der auf MQL5.community veröffentlichten Artikel wurde zum Toolbox-Fenster hinzugefügt. Mehr als 600 detaillierte Materialien über die Entwicklung von Handelsstrategien in MQL5 sind jetzt verfügbar, ohne dass Sie das Terminal verlassen müssen. Neue Artikel werden wöchentlich veröffentlicht.



  5. Terminal: Unterstützung für erweiterte Authentifizierung mit Zertifikaten bei der Arbeit unter Wine wurde hinzugefügt.
  6. Terminal: Die Anzeige der Markttiefe wurde korrigiert, wenn sie auf eine Ebene begrenzt ist.
  7. Terminal: Hinzufügen des Befehls "Als Bild speichern" zur Standardsymbolleiste. Jetzt ist es viel einfacher, Bilder von Charts zu machen und sie in der Community zu teilen.




  8. Terminal: Die Anwendung der Zeitverschiebung beim Importieren von Balken und Ticks wurde korrigiert. Zuvor wurde die Verschiebung in einigen Fällen nicht angewendet.



  9. MQL5: Native Unterstützung für .NET-Bibliotheken mit "intelligentem" Funktionsimport hinzugefügt. Jetzt können .NET-Bibliotheken verwendet werden, ohne dass spezielle Wrapper geschrieben werden müssen - MetaEditor macht das von alleine.

    Um mit .NET-Bibliotheksfunktionen zu arbeiten, importieren Sie einfach die DLL selbst, ohne spezifische Funktionen zu definieren. MetaEditor importiert automatisch alle Funktionen, mit denen man arbeiten kann:
    • Einfache Strukturen (POD, plain old data)
    • Strukturen mit einfachen Datentypen
    • Öffentliche statische Funktionen mit Parametern, in denen nur einfache Typen und POD-Strukturen oder deren Arrays verwendet werden

    Um Funktionen aus der Bibliothek aufzurufen, importieren Sie sie einfach:
    #import "TestLib.dll"
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int x=6;
       TestClass::Inc(x);
       Print(x);
      }
    Der C#-Code der Inc-Funktion der TestClass sieht wie folgt aus:
    public class TestClass
    {
       public static void Inc(ref int x)
       {
        x++;
       }
    }
    Als Ergebnis der Ausführung gibt das Skript den Wert 7 zurück.

  10. MQL5: Unterstützung für Inline-, __inline- und __forceinline-Spezifizierer beim Parsen von Code hinzugefügt. Das Vorhandensein der Spezifizierer im Code verursacht keine Fehler und hat keinen Einfluss auf die Kompilierung. Im Moment vereinfacht diese Funktion die Übertragung von С++-Code nach MQL5.
    Weitere Informationen über Spezifizierer finden Sie in MSDN.

  11. MQL5: Deutlich optimierte Ausführung von MQL5-Programmen. In einigen Fällen kann die Leistungsverbesserung 10 % erreichen. Kompilieren Sie Ihre Programme in der neuen MetaEditor-Version neu, damit sie schneller laufen.
    Leider werden neue Programme aufgrund dieser zusätzlichen Optimierung nicht mit früheren Terminalversionen kompatibel sein. Programme, die in MetaEditor Version 1910 und später kompiliert wurden, können nicht in Terminalversionen unter 1880 gestartet werden. Programme, die in früheren MetaEditor-Versionen kompiliert wurden, können in neuen Terminals ausgeführt werden.

  12. MQL5: Mehrere MQL5-Funktionen wurden erheblich optimiert.
  13. MQL5: Hinzufügen neuer Eigenschaften zum Anhängen/Abziehen von Diagrammen aus dem Terminal-Hauptfenster und zur Verwaltung ihrer Position.

    Hinzufügen der folgenden Eigenschaften zur Aufzählung ENUM_CHART_PROPERTY_INTEGER:

    • CHART_IS_DOCKED - das Diagrammfenster ist angedockt. Wenn auf 'false' gesetzt, kann das Diagramm außerhalb des Terminalbereichs gezogen werden.
    • CHART_FLOAT_LEFT - die linke Koordinate des nicht angedockten Diagrammfensters relativ zum virtuellen Bildschirm.
    • CHART_FLOAT_TOP - die obere Koordinate des abgedockten Diagrammfensters in Bezug auf den virtuellen Bildschirm.
    • CHART_FLOAT_RIGHT - die rechte Koordinate des abgedockten Diagrammfensters in Bezug auf den virtuellen Bildschirm.
    • CHART_FLOAT_BOTTOM - die untere Koordinate des abgedockten Diagrammfensters in Bezug auf den virtuellen Bildschirm.

    Die Aufzählung ENUM_TERMINAL_INFO_INTEGER wurde um die folgenden Funktionen erweitert:

    • TERMINAL_SCREEN_LEFT - die linke Koordinate des virtuellen Bildschirms. Ein virtueller Bildschirm ist ein Rechteck, das alle Monitore abdeckt. Wenn das System über zwei Monitore verfügt, die von rechts nach links angeordnet sind, kann die linke Koordinate des virtuellen Bildschirms an der Grenze zwischen zwei Monitoren liegen.
    • TERMINAL_SCREEN_TOP - die obere Koordinate des virtuellen Bildschirms.
    • TERMINAL_SCREEN_WIDTH - Breite des Terminals.
    • TERMINAL_SCREEN_HEIGHT - Höhe des Terminals.
    • TERMINAL_LEFT - die linke Koordinate des Terminals in Bezug auf den virtuellen Bildschirm.
    • TERMINAL_TOP - die obere Koordinate des Terminals in Bezug auf den virtuellen Bildschirm.
    • TERMINAL_RIGHT - die rechte Koordinate des Terminals in Bezug auf den virtuellen Bildschirm.
    • TERMINAL_BOTTOM - die untere Koordinate des Terminals in Bezug auf den virtuellen Bildschirm.

  14. MQL5: Das Feld volume_real wurde zu den Strukturen MqlTick und MqlBookInfo hinzugefügt. Es wurde entwickelt, um mit Volumen mit erhöhter Genauigkeit zu arbeiten. Der volume_real Wert hat eine höhere Priorität als 'volume'. Der Server wird diesen Wert verwenden, wenn er angegeben ist.

    struct  MqlTick
      {
       datetime         time;          // Last price update time
       double           bid;           // Current Bid price
       double           ask;           // Current Ask price
       double           last;          // Current price of the Last trade
       ulong            volume;        // Volume for the current Last price
       long             time_msc;      // Last price update time in milliseconds
       uint             flags;         // Tick flags
       double           volume_real;   // Volume for the current Last price with greater accuracy
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;            // order type from the ENUM_BOOK_TYPE enumeration
       double           price;           // price
       long             volume;          // volume
       double           volume_real;     // volume with greater accuracy
      };

  15. MQL5: Neue Eigenschaften zur ENUM_SYMBOL_INFO_DOUBLE Aufzählung hinzugefügt:

    • SYMBOL_VOLUME_REAL - das Volumen des zuletzt ausgeführten Geschäfts;
    • SYMBOL_VOLUMEHIGH_REAL - das höchste Geschäftsvolumen des aktuellen Tages;
    • SYMBOL_VOLUMELOW_REAL - das niedrigste Geschäftsvolumen für den aktuellen Tag;

    Verwenden Sie die Funktion SymbolInfoDouble, um diese Eigenschaften zu erhalten.

  16. MQL5: Hinzufügen der Eigenschaft MQL_FORWARD zur Aufzählung ENUM_MQL_INFO_INTEGER - Flagge für Vorwärtstestmodus.
  17. MQL5: Gelockerte Anforderungen für das Casting von Aufzählungen. Im Falle eines impliziten Castings ersetzt der Compiler automatisch den Wert einer korrekten Aufzählung und zeigt eine Warnung an.

    Für den folgenden Code:
    enum Main
      {
       PRICE_CLOSE_,
       PRICE_OPEN_
      };
    
    input Main Inp=PRICE_CLOSE;
    //+------------------------------------------------------------------+
    //| Start function                                                   |
    //+------------------------------------------------------------------+
    void OnStart()
      {
      }
    Der Compiler zeigt die Warnung an:
    implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main'
    'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
    Zuvor wurde in diesem Fall der folgende Fehler erzeugt:
    'PRICE_CLOSE' - cannot convert enum
    Der Compiler zeigt weiterhin den Fehler an, wenn Aufzählungen in den Funktionsparametern falsch verwendet werden.

  18. MQL5: Die Kompilierung von Template-Funktionen wurde korrigiert. Bei der Verwendung von überladenen Template-Funktionen wird jetzt nur noch die notwendige Überladung instanziiert, nicht mehr alle vorhandenen.
    class X {  };
    
    void f(int)  {  }
      
    template<typename T>
    void a(T*) { new T(2); }  // previously, the compiler generated the error here
      
    template<typename T>
    void a()  { f(0); }
      
      
    void OnInit()  { a<X>(); }  
    
  19. MQL5: Einige Fälle des Zugriffs auf die Tick-Historie über die Funktion CopyTicks* wurden optimiert.
  20. Tester: Die Berechnung der Genauigkeit der Einzahlungswährung beim Testen/Optimieren und Generieren der entsprechenden Berichte wurde korrigiert.
  21. Tester: Optimiert und beschleunigt den Betrieb des Strategietesters.
  22. MetaEditor: Die Suche nach ganzen Wörtern wurde korrigiert. Bei der Suche wird der Unterstrich jetzt als reguläres Zeichen und nicht mehr als Worttrennzeichen gezählt.
  23. Aktualisierte Dokumentation.

 

Gutes Thema wurde gestartet -Wie man mit MQL5 anfängt

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Wie fange ich mit MQL5 an?

Vladimir Karputov, 2018.12.24 20:34

In diesem Thread geht es um MQL5-Codebeispiele. Es wird Beispiele dafür geben, wie man Daten von Indikatoren erhält, wie man Advisors programmiert ... im Allgemeinen alle Fragen von Anfängern zur MQL5-Sprache.


Wenn Sie gerade erst anfangen, sich mit dem MetaTrader 5-Terminal vertraut zu machen, dann kann ich Ihnen die folgenden Themen empfehlen:

 

Es gibt einen Artikel, den jeder Verkäufer auf dem Markt lesen sollte: Es geht um die Validierung der Marktprodukte -

----------------

Die Prüfungen, die ein Handelsroboter vor der Veröffentlichung auf dem Markt bestehen muss

Why products are checked before they are published in the Market 

Bevor ein Produkt auf dem Markt veröffentlicht wird, muss es einer obligatorischen Vorprüfung unterzogen werden, da ein kleiner Fehler in der Logik des Experten oder Indikators zu Verlusten auf dem Handelskonto führen kann. Aus diesem Grund haben wir eine Reihe von grundlegenden Prüfungen entwickelt, um das erforderliche Qualitätsniveau der Marktprodukte zu gewährleisten.

Wenn die Marktmoderatoren bei der Überprüfung Ihres Produkts Fehler feststellen, müssen Sie alle beheben. Dieser Artikel befasst sich mit den häufigsten Fehlern, die von Entwicklern in ihren Handelsrobotern und technischen Indikatoren gemacht werden. Wir empfehlen auch die Lektüre der folgenden Artikel:

 

Danke Mann...

Sehr hilfreich, tolle Leistung...

 

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Neue MetaTrader 5-Plattform, Build 2005: Wirtschaftskalender, MQL5-Anwendungen als Dienste und R-Sprach-API

MetaQuotes Software Corp. , 2019.02.20 17:20

Das Update der MetaTrader 5-Plattform wird am 21. Februar 2019 veröffentlicht. Die neue Version enthält die folgenden Änderungen:

  1. Terminal: Vollständig überarbeiteter integrierter Wirtschaftskalender.

    Der Wirtschaftskalender ist unsere proprietäre Lösung. Darin finden Sie über 600 Finanznachrichten und Indikatoren zu den 13 größten Volkswirtschaften der Welt: USA, Europäische Union, Japan, Großbritannien, Kanada, Australien, China und andere. Relevante Daten werden in Echtzeit aus offenen Quellen gesammelt.

    Die neue Version bietet aktualisierte Inhalte und erweiterte Ereignisfilter: nach Zeit, Priorität, Währungen und Ländern.

    Auf die Kalenderdaten kann jetzt von MQL5-Programmen aus zugegriffen werden. Einzelheiten finden Sie weiter unten.




  2. Terminal: Neue Art von MQL5-Anwendungen hinzugefügt — Dienste. Dieser neue Typ ermöglicht die Erstellung von benutzerdefinierten Preis-Feeds für das Terminal, dh die Implementierung von Preislieferungen von externen Systemen in Echtzeit, so wie es auf Handelsservern von Brokern implementiert ist.

    Im Gegensatz zu Expert Advisors, Indikatoren und Skripten sind Dienste nicht mit einem bestimmten Chart verknüpft. Solche Anwendungen laufen im Hintergrund und werden automatisch gestartet, wenn das Terminal gestartet wird (es sei denn, eine solche App wurde zwangsweise beendet).

    Dienste können über einen neuen Abschnitt im Navigatorfenster verwaltet werden:





    So erstellen Sie Dienste
    Um eine Dienstvorlage zu erstellen, verwenden Sie die entsprechende Option des MQL5-Assistenten . Dienste haben einen OnStart- Einstiegspunkt, ähnlich wie Skripts. An diesem Punkt können Sie mithilfe von Netzwerkfunktionen einen endlosen Datenempfangs- und -verarbeitungszyklus implementieren.

    So starten Sie Dienste
    Um mehrere Expert Advisor- oder Indikatorkopien mit unterschiedlichen Parametern auszuführen, sollten Sie sie auf unterschiedlichen Charts starten. Dabei werden verschiedene Programminstanzen erstellt, die dann eigenständig arbeiten. Dienste sind nicht mit Diagrammen verknüpft, daher wurde ein spezieller Mechanismus zum Erstellen von Dienstinstanzen implementiert.

    Wählen Sie im Navigator einen Dienst aus und klicken Sie in dessen Kontextmenü auf "Dienst hinzufügen". Dies öffnet einen standardmäßigen MQL5-Programmdialog, in dem Sie den Handel aktivieren/deaktivieren und auf Signaleinstellungen zugreifen sowie verschiedene Parameter einstellen können.




    Eine Dienstinstanz kann über das entsprechende Instanzmenü gestartet und gestoppt werden. Um alle Instanzen zu verwalten, verwenden Sie das Servicemenü.

  3. Terminal: Ein Lernprogramm wurde hinzugefügt.

    Die neue Funktion hilft Anfängern beim Erlernen der Interaktion mit der Plattform. Wir haben über 100 interaktive Tipps zu den wichtigsten Plattformfunktionen hinzugefügt.

    • Tipps werden nahtlos als Fortschrittsbalken in der Symbolleiste angezeigt und lenken den Benutzer somit nicht ab.
    • Tipps erscheinen nur für Aktionen, die Sie noch nie auf der Plattform ausgeführt haben.
    • Alle Tipps enthalten interaktive Links, über die Sie zu den relevanten Oberflächenelementen navigieren können. So kann beispielsweise direkt aus dem Tipp heraus ein Handelsdialog oder ein Menü mit dem gewünschten Programm gestartet werden.

    Der gefüllte Bereich des Fortschrittsbalkens wird immer größer, wenn Sie entsprechende Aktionen ausführen und das Training fortsetzen.




  4. Terminal: Der Verlauf des Handelskontos kann als Positionen dargestellt werden. Die Plattform sammelt Daten zu Geschäften im Zusammenhang mit der Position (Eröffnung, Volumenerhöhung, teilweiser oder vollständiger Abschluss) und gruppiert die Informationen in einem einzigen Datensatz. So können Sie auf Positionsdetails zugreifen: Öffnungs- und Schließzeit, Volumen, Preis und Ergebnis. Diese effiziente Präsentationsform ist jetzt in Verlaufsberichten verfügbar, die in Dateien exportiert werden.




  5. Terminal: Neue API hinzugefügt, die die Abfrage von MetaTrader 5-Terminaldaten durch Anwendungen ermöglicht, die die R-Sprache verwenden .

    Wir haben ein spezielles MetaTrader-Paket vorbereitet. Es enthält DLL für Interaktionen zwischen R und dem MetaTrader 5-Terminal, Dokumentation und zusätzliche r-Dateien. Wir schließen die Paketregistrierung im CRAN -Repository ab, danach steht es zum Download und zur Installation zur Verfügung.




    Das Paket kann mit einem speziellen Befehl installiert werden:
    R CMD INSTALL --build MetaTrader

    Die folgenden Befehle für die Datenanforderung sind verfügbar:

    • MT5Initialize initialisiert und stellt eine Verbindung mit dem MetaTrader 5-Terminal her. Bei Bedarf wird das Terminal während der Befehlsausführung gestartet.
    • MT5Shutdown wird deinitialisiert und trennt sich von MetaTrader 5.
    • MT5Version erhält die Terminalversion von MetaTrader 5.
    • MT5TerminalInfo erhält den Status und die Parameter der Terminalverbindung zum Server eines Brokers (Kontonummer und Serveradresse).
    • MT5WaitTerminal wartet darauf, dass sich das MetaTrader 5-Terminal mit dem Server eines Brokers verbindet.
    • MT5CopyTicksFrom(symbol, from, count, flags) kopiert die angegebene Anzahl von Ticks ab dem angegebenen Datum. Das Datum wird in Millisekunden seit dem 01.01.1970 angegeben.
    • MT5CopyTicksRange(symbol, from, to, flags) kopiert Ticks innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Millisekunden seit dem 01.01.1970.
    • MT5CopyRatesFrom(symbol, timeframe, from, count) kopiert die angegebene Anzahl von Ein-Minuten-Balken ab dem angegebenen Datum. Das Datum wird in Sekunden seit dem 01.01.1970 angegeben.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) kopiert Ein-Minuten-Balken von der angegebenen Position relativ zum letzten Balken.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) kopiert Balken innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Sekunden seit dem 01.01.1970.

    Die Liste der unterstützten Befehle wird weiter ausgebaut.

  6. Terminal: Optimierter Close By -Dialog, der zum Schließen einer Position durch eine Gegenposition verwendet wird. Jetzt wird der Dialog auch bei einer großen Anzahl offener Positionen nicht verlangsamt.
  7. Terminal: Fehler bei der Berechnung synthetischer Symbole behoben, durch die Daten gelegentlich übersprungen werden konnten.
  8. Terminal: Wenn ein benutzerdefiniertes Symbol gelöscht wird, werden auch Dateien gelöscht, in denen sein Tick- und Balkenverlauf gespeichert ist. Dadurch wird vermieden, dass sich ungenutzte Daten auf der Festplatte ansammeln.
  9. Terminal: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
  10. MQL5: Zugriff auf Wirtschaftskalenderdaten aus MQL5-Programmen implementiert.

    Neue Funktionen

    CalendarCountryById — Ruft die Länderbeschreibung nach Kennung ab.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — Ruft Ereignisbeschreibung nach Kennung ab.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — Ruft die Beschreibung des Ereigniswerts nach Kennung ab.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry — Ruft das Array der verfügbaren Ereignisse für das Land ab.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency — Ruft das Array verfügbarer Ereignisse für die betroffene Währung ab.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — Ruft das Array von Werten für den angegebenen Zeitraum nach Ereigniskennung ab.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory — Ruft das Array von Werten für den angegebenen Zeitraum für alle Ereignisse ab, gefiltert nach Land und/oder Währung.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent — Ruft ein Array der letzten Ereigniswerte nach Kennung ab. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Für diese Operation wird zusätzlich der Durchgangsparameter „change_id“ verwendet.

    Jedes Mal, wenn sich die Kalenderdatenbank ändert, wird die Eigenschaft "change_id" (die Kennung der letzten Änderung) aktualisiert. Während der Datenanforderung geben Sie "change_id" an und das Terminal gibt Ereignisse zurück, die nach dieser Zeit aufgetreten sind, sowie den aktuellen "change_id"-Wert, der für die nächste Anforderung verwendet werden kann. Geben Sie beim ersten Funktionsaufruf die Null "change_id" an: Die Funktion gibt keine Ereignisse zurück, gibt aber bei weiteren Anfragen die aktuelle "change_id" zurück.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — Ruft das Array der letzten Werte für alle Ereignisse ab, gefiltert nach Land und/oder Währung. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Ähnlich wie bei CalendarValueLastByEvent wird die Eigenschaft „change_id“ für die Anfrage verwendet.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    Neue Strukturen

    MqlCalendarCountry — Länderbeschreibung.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — Ereignisbeschreibung.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — Beschreibung des Ereigniswerts.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    Neue Aufzählungen

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    Neue Fehlercodes

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: Korrekturen und Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit der Tick- und Balkenhistorie.
  12. MQL5: Korrekturen und signifikante Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit Funktionen zur Änderung des Verlaufs von Ticks und Balken von benutzerdefinierten Handelssymbolen, CustomTicks* und CustomRates* .
  13. MQL5: Neue Datenkonvertierungsfunktionen.

    CharArrayToStruct kopiert ein uchar-Array in eine POD-Struktur.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray kopiert eine POD-Struktur in ein uchar-Array.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. MathSwap- Funktion zum Ändern der Byte-Reihenfolge in ushort-, uint- und ulong-Werten hinzugefügt.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: Netzwerkfunktionen zum Erstellen von TCP-Verbindungen zu entfernten Hosts über System-Sockets hinzugefügt:

    • SocketCreate erstellt einen Socket mit angegebenen Flags und gibt sein Handle zurück
    • SocketClose schließt den Socket
    • SocketConnect stellt eine Verbindung zum Server her, mit Timeout-Steuerung
    • SocketIsConnected prüft, ob der Socket aktuell verbunden ist
    • SocketIsReadable liefert die Anzahl der Bytes, die vom Socket gelesen werden können
    • SocketIsWritable prüft, ob das Schreiben von Daten in diesen Socket zum aktuellen Zeitpunkt möglich ist
    • SocketTimeouts legt Zeitüberschreitungen für das Empfangen und Senden von Daten für das System-Socket-Objekt fest
    • SocketRead liest Daten aus einem Socket
    • SocketSend schreibt Daten in einen Socket
    • SocketTlsHandshake initiiert mithilfe des TLS-Handshake-Protokolls eine sichere TLS-Verbindung (SSL) mit dem angegebenen Host
    • SocketTlsCertificate erhält Informationen über das Zertifikat, das für die sichere Netzwerkverbindung verwendet wird
    • SocketTlsRead liest Daten aus einer sicheren TLS-Verbindung
    • SocketTlsReadAvailable liest alle verfügbaren Daten aus einer sicheren TLS-Verbindung
    • SocketTlsSend sendet Daten über eine sichere TLS-Verbindung

    Die Adresse des Hosts, zu dem eine Verbindung über Netzwerkfunktionen aufgebaut wird, muss explizit in die Liste der erlaubten Adressen in den Terminaleinstellungen aufgenommen werden.

    Für Operationen mit Netzwerkfunktionen wurden neue Fehlercodes hinzugefügt:

    • ERR_NETSOCKET_INVALIDHANDLE (5270): Ungültiges Socket-Handle an die Funktion übergeben
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271): zu viele Sockets offen (maximal 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): Fehler beim Verbinden mit dem Remote-Host
    • ERR_NETSOCKET_IO_ERROR (5273): Fehler beim Senden/Empfangen von Daten vom Socket
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274): Fehler beim sicheren Verbindungsaufbau (TLS Handshake)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — keine Daten über das für die sichere Verbindung verwendete Zertifikat

  16. MQL5: Neue Funktionen für String-Operationen hinzugefügt:

    StringReserve reserviert für einen String den Speicherpuffer der angegebenen Größe.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength setzt die angegebene Zeichenfolgenlänge in Zeichen.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: Neue Funktion für Array-Operationen hinzugefügt:

    ArrayRemove entfernt aus einem Array die angegebene Anzahl von Elementen beginnend mit dem angegebenen Index.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert fügt die angegebene Anzahl von Elementen aus dem Quellarray in ein Empfängerarray ein, beginnend mit dem angegebenen Index.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse kehrt in einem Array die angegebene Anzahl von Elementen ab dem angegebenen Index um.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: Der neue Parameter "uint count" wurde in den Funktionen CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd und CustomTicksReplace hinzugefügt . Es ermöglicht die Angabe der Anzahl der Elemente des übergebenen Arrays, die für diese Funktionen verwendet werden. Der Wert WHOLE_ARRAY wird standardmäßig für den Parameter verwendet. Dies bedeutet, dass das gesamte Array verwendet wird.
  19. MQL5: CustomBookAdd- Funktion hinzugefügt, um den Status der Markttiefe für ein benutzerdefiniertes Symbol zu übergeben. Die Funktion ermöglicht die Übertragung der Markttiefe, als ob die Preise vom Server eines Brokers kommen.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: Überladen der CustomSymbolCreate- Funktion hinzugefügt. Dies ermöglicht die Erstellung eines benutzerdefinierten Handelssymbols auf der Grundlage eines vorhandenen. Nach der Erstellung kann jede Symboleigenschaft mit entsprechenden Funktionen bearbeitet werden.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    Der Name des Symbols, von dem die Eigenschaften für das benutzerdefinierte Symbol kopiert werden sollen, wird im Parameter "symbol_origin" angegeben.

  21. Die StringToTime- Funktion, die den String mit Datum/Uhrzeit in einen datetime-Wert umwandelt, wurde aktualisiert. Jetzt unterstützt es die folgenden Datumsformate:

    • jjjj.mm.tt [hh:mi]
    • jjjj.mm.tt [hh:mi:ss]
    • jjjjmmtt [hh:mi:ss]
    • jjjjmmtt [hhmiss]
    • jjjj/mm/tt [hh:mi:ss]
    • jjjj-mm-tt [hh:mi:ss]

  22. MQL5: Neue Eigenschaft TERMINAL_VPS in der Aufzählung ENUM_TERMINAL_INFO_INTEGER ; es zeigt, dass das Terminal auf dem MetaTrader Virtual Hosting Server (MetaTrader VPS) läuft. Wenn eine Anwendung auf einem Hosting-Server läuft, können Sie alle visuellen Funktionen deaktivieren, da der virtuelle Server keine grafische Benutzeroberfläche hat.
  23. MQL5: Neue Eigenschaft SYMBOL_EXIST in der Aufzählung ENUM_SYMBOL_INFO_INTEGER , bedeutet, dass das Symbol unter diesem Namen existiert.
  24. MQL5: Fehler bei der Verwendung von Vordeklarationen für Vorlagenfunktionen behoben.
  25. MQL5: Neuinitialisierung von Indikatoren hinzugefügt, wenn ein Handelskonto geändert wird.
  26. MQL5: Optimierte StringSplit- Funktion.
  27. MQL5: Fehler in der Standardbibliotheksoperation behoben.
  28. Tester: TesterStop- Funktion hinzugefügt – routinemäßiges vorzeitiges Herunterfahren eines Expert Advisors auf einem Testagenten. Jetzt können Sie das Testen zwangsweise beenden, nachdem Sie die angegebene Anzahl von Verlusttrades, ein voreingestelltes Drawdown-Level oder ein anderes Kriterium erreicht haben.

    Ein mit dieser Funktion abgeschlossener Test gilt als erfolgreich. Nach dem Funktionsaufruf werden die beim Testen erhaltene Handelshistorie und alle Handelsstatistiken an das Terminal übergeben.

  29. Tester: Deaktivierte Fähigkeit, Expert Advisors über das MQL5 Cloud Network im Real-Tick-Modus zu testen und zu optimieren. Dieser Modus kann nur auf lokalen Agenten und lokalen Netzwerkfarmen verwendet werden.
  30. Tester: Verbesserte Arbeit mit Indikatoren beim visuellen Testen. Jetzt werden das Preisdiagramm und die Indikatorlinien synchron gezeichnet, selbst bei maximaler Visualisierungsgeschwindigkeit.
  31. Tester: Optimiertes und deutlich beschleunigtes Testen und Optimieren.
  32. Tester: Das Debuggen von Indikatoren für historische Daten wurde korrigiert. Jetzt können die Indikatorfunktionen OnInit und OnDeinit korrekt debuggt werden.
  33. Tester: Schnellerer Zugriff auf historische Daten beim Testen von Expert Advisors mit mehreren Währungen implementiert.
  34. Tester: Das gelegentliche Einfrieren des visuellen Testers während des Debuggens auf historischen Daten wurde behoben.
  35. Tester: Schnellerer Start von Optimierungsdurchläufen bei der Bearbeitung eines Aufgabenpakets durch einen Agenten implementiert.
  36. Tester: Geänderte Richtlinie zum Verteilen von Aufgabenpaketen an Testagenten. Die Paketgröße wurde erhöht und damit der Ressourcenverbrauch im Netzwerkbetrieb deutlich reduziert.
  37. Tester: Geändertes Verhalten von Optionen, die die Verwendung von lokalen, Netzwerk- und Cloud-Agenten ermöglichen. Wenn Sie die Optionen jetzt ausschalten, beenden die Agenten die Bearbeitung empfangener Aufgaben, während ihnen keine neuen Aufgaben mehr zugeteilt werden. In früheren Versionen ähnelte das Verhalten dem Befehl „Deaktivieren“, der den Agentenbetrieb sofort stoppte.




  38. MetaEditor: Unterstützung für Nicht-ANSI-Zeichen im Debugger hinzugefügt. Jetzt werden die Ausdrücke auch dann korrekt angezeigt, wenn der Variablenname in Kyrillisch angegeben ist.
  39. MetaEditor: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
  40. Übersetzung der Benutzeroberfläche ins Kroatische hinzugefügt.
  41. Dokumentation wurde aktualisiert.
Das Update wird über das LiveUpdate-System verfügbar sein.

 

Hallo.

Muss ich meinen Build 1940 entfernen, bevor ich dieses 2005 installiere?
Ich habe es ohne Deinstallation versucht und nach der Installation ist es derselbe 1940 wie vorher.
Außerdem kann ich seit letztem Jahr nicht mehr aktualisieren, gibt es dafür einen Grund?
Sollte ich alles entfernen und es erneut versuchen?


Danke...

 
nützlich für Anfänger