Das MQL5-Kochbuch: Entwicklung eines mehrwährungsfähigen Kursschwankungsindikators in MQL5
In diesem Beitrag befassen wir uns mit der Entwicklung eines mehrwährungsfähigen Kursschwankungsindikators. Jemanden, der gerade erst beginnt, in MQL5 zu programmieren, kann die Entwicklung von Indikatoren für mehrere Währungen vor einige Schwierigkeiten stellen, aber nach der Lektüre dieses Beitrages sollte alles wesentlich einfacher sein. Die grundlegenden Fragen bei der Entwicklung mehrwährungsfähiger Indikatoren beziehen sich auf die Abstimmung der Daten anderer Kürzel auf die des aktuellen Kürzels, die Lösung des Problems des Nichtvorhandenseins eines Teils der Indikatordaten sowie auf die Ermittlung des Anfangs der „echten“ Balken des jeweiligen Zeitraums. All das wird in dem hier vorliegenden Beitrag ausführlich behandelt.
Faulheit ist der Reiz zum Fortschritt. Halbautomatische Markierung einer Vorlage
Unter den Dutzenden von Beispielen wie man mit Chart arbeitet, gibt es eine Methode der manuellen Markierung einer Vorlage. Trendlinien, Kanäle, Unterstützung/Widerstandsebenen, usw. werden einem Chart auferlegt. Sicher, es gibt einige spezielle Programme für diese Art von Arbeit. Jeder entscheidet für sich selbst, welche Methode er/sie verwendet. In diesem Artikel biete ich Ihnen für Ihre Betrachtung die Methoden der manuellen Markierung mit nachfolgendem Automatisieren einiger Elemente wiederholter Routine-Aktionen.
Grafiken in der Bibliothek DoEasy (Teil 85): Grafische Objektkollektion - Hinzufügen neu erstellter Objekte
In diesem Artikel werde ich die Entwicklung der abgeleiteten Klassen der abstrakten grafischen Objektklasse abschließen und mit der Implementierung der Möglichkeit beginnen, diese Objekte in der Klasse Kollektion zu speichern. Insbesondere werde ich die Funktionalität für das Hinzufügen von neu erstellten grafischen Standardobjekten in die Kollektionsklasse erstellen.
Irrtümer, Teil 2. Statistiken sind eine Pseudo-Wissenschaft, oder eine Chronik des Nase Eintauchen in Brot und Butter
Zahlreiche Versuche statistische Methoden an der objektiven Realität anzuwenden, das heißt an Finanzreihen, stürzen ab wenn sie auf die Nichtstationarität von Verfahren treffen, "Fat Tails" begleitender Wahrscheinlichkeitsverteilungen und unzureichendes Volumen von Finanzdaten. In dieser Veröffentlichung werde ich versuchen nicht auf die Finanzreihe als solches zu beziehen, sondern auf ihre subjektive Darstellung - in diesem Fall, auf die Art, wie ein Trader versucht die Reihen zu halftern, d.h. auf das Handelssystem. Die Bildung von statistischen Regelmäßigkeiten des Handelsergebnis-Verfahren ist eine ziemlich fesselnde Aufgabe. In einigen Fällen können durchaus wahre Schlüsse über das Modell dieses Verfahren gezogen werden, und diese können an dem Handelssystem angewandt werden.
Versetzen Sie Ihre MQL5-Kunden mit einem Mix an verschiedenen Technologien ins Staunen!
MQL 5 versorgt Programmierer mit einem sehr umfassenden Set an Funktionen und objektorientierten Anwendungsprogrammschnittstellen, die ihnen eine - eine MetaTrader-Umgebung vorausgesetzt - nahezu unendliche Handlungsfreiheit verleihen. Web-Technologien stellen heute ein äußerst mächtiges Instrument dar, das Ihnen in vielen verschiedenen Situationen gute Dienste kann - wenn Ihnen beispielsweise die Zeit fehlt, einen bestimmten Teil der MT5-Standard-Library zu meistern - bzw. das Ihnen dabei hilft, Ihre Kunden einfach nur ins Staunen zu versetzen. Die heutige Übung soll Ihnen als ein praktisches Beispiel dafür dienen, wie Sie Ihre Entwicklungszeit beschleunigen, als auch einen wahren Cocktail an Technologien hervorbringen können.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil IX): Kompatibilität mit MQL4 - Datenvorbereitung
In den vorherigen Artikeln haben wir begonnen, eine große plattformübergreifende Bibliothek zu erstellen, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im achten Teil haben wir die Klasse zur Verfolgung von Ereignissen der Auftrags- und Positionsänderung implementiert. Hier werden wir die Bibliothek verbessern, indem wir die vollständige Kompatibilität mit MQL4 herstellen.
Effektive Alogrithmen mit minimaler Verzögerung zur Mittelwertbildung: Zur Verwendung in Indikatoren und Expert Advisors
Der Artikel beschreibt benutzerdefinierte Funktionen höherer Qualität, die zur Mittelwertbildung eingesetzt werden und vom Autor entwickelt wurden: JJMASeries(), JurXSeries(), JLiteSeries(), ParMASeries(), LRMASeries(), T3Series() und MASeries(). Der Autor erwägt den Einsatz dieser Funktionen in Indikatoren, indem er sie über die Funktion SmoothXSeries() aufruft.
Algorithmen zur Optimierung mit Populationen: Nelder-Mead- oder Simplex-Suchverfahren (NM)
Der Artikel stellt eine vollständige Untersuchung der Nelder-Mead-Methode vor und erklärt, wie das Simplex (Funktionsparameterraum) bei jeder Iteration geändert und neu angeordnet wird, um eine optimale Lösung zu erreichen, und beschreibt, wie die Methode verbessert werden kann.
Graphisches Interface X: Textauswahl im mehrzeiligen Textfeld (build 13)
In diesem Artikel erreichen wir, Text mittels verschiedener Tasten auszuwählen, und markierten Text zu löschen, genau so, wie man das von einem Texteditor kennt. Zusätzlich wird der Code weiter optimiert, und es werden die Klassen für die zweite Stufe in Richtung der endgültigen Version der Bibliothek vorbereitet, die alle Elemente als Einzelbilder vor einem Hintergrund darstellt.
Fractal Analyse von Gemeinschaften Währungsbewegungen
Wie unabhängig sind Währungskurse? Sind ihre Bewegungen koordiniert oder sagt die Bewegung einer Währung nichts aus über die Bewegung einer anderen? Der Artikel beschreibt einen Versuch dieses Problem in Angriff mit nicht-linearer Dynamik und Fraktal-Geometrie-Methoden in Angriff zu nehmen.
Äquivolumen-Chart-Erstellung: Eine Neubetrachtung
Dieser Artikel beschreibt eine Methode zur Erstellung von Charts, bei der jeder einzelne Balken aus einer gleichen Anzahl von Ticks besteht.
Grafische Interfaces X: Neue Möglichkeiten der Tabellendarstellung (build 9)
Bis heute war CTable die fortschrittlichste Tabellenart überhaupt in der Bibliothek. Diese Tabelle ist zusammengestellt aus editierbaren Boxen des Typs OBJ_EDIT Typ, aber eine weitere Entwicklung ist problematisch. Mit dem Ziel einer maximale Leistungsfähigkeit, wäre es besser, eine andere Tabellendarstellung vom Typ CCanvasTable zu entwickeln, auch beim augenblicklichen Entwicklungsstand der Bibliothek. Die aktuelle Version ist völlig starr, aber ab diesem Artikel werden wir versuchen, die Situation zu beheben.
PairPlot basiert auf CGraphic dient der Analyse von Korrelationen zwischen Datenarrays (Zeitreihen)
Der Vergleich mehrerer Zeitreihen während einer technischen Analyse ist eine recht häufige Aufgabe, die entsprechende Werkzeuge erfordert. In diesem Artikel schlage ich vor, ein Werkzeug für die grafische Analyse zu entwickeln und Korrelationen zwischen zwei oder mehr Zeitreihen zu erkennen.
Grafische Interfaces II: Einrichtung des Eventhandlers für die Bibliothek (Kapitel 3)
Der vorherige Artikel beinhaltet die Implementation der Klassen für das Erzeugen der Bestandteile des Hauptmenüs. Nun ist es an der Zeit, dass wir uns die Eventhandler in den Basisklassen und in den Klassen für die Controls näher betrachten. Wir werden unsere Aufmerksamkeit auch auf das Verwalten des Status des Charts, in Abhängigkeit der Position des Mauszeigers, richten.
Growing Neural Gas: Umsetzung in MQL5
In diesem Artikel wird ein Beispiel für die Entwicklung eines MQL5-Programms zur Umsetzung des als Growing Neural Gas (GNG) bezeichneten adaptiven Clustering-Algorithmus vorgestellt. Dieser Beitrag richtet sich an Anwender, die die Dokumentation zu dieser Programmiersprache gelesen haben und über gewisse Erfahrungen und Grundkenntnisse im Bereich Neuroinformatik verfügen.
Die Realisierung der dreifarbigen Indikatoren und einige Möglichkeiten für eine maximale Vereinfachung des Indikatoren-Schreibens
In diesem Artikel betrachtet der Autor einige Methoden zur Erhöhung der Informativität für visuelles Trading. Der Autor analysiert die Realisierung der dreifarbigen Indikatoren, bei deren Aufbau die Daten aus anderen Zeitrahmen verwendet werden, und geht weiter auf die Bibliothek der Indikatoren ein, die bereits im Artikel "Effektive Mittelwertbildungsalgorithmen mit minimalen Lags und ihre Verwendung in Indikatoren" erwähnt wurde.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXIII): Handelsklassen - Verifikation der Parameter
In dem Artikel setzen wir die Entwicklung der Handelsklasse fort, indem wir die Kontrolle über fehlerhafte Parameterwerte von Handelsaufträgen und die Audiosignale von Handelsereignissen implementieren.
Verwendung der Crashlogs, um eigene dll einzurichten
25-30% von allen Crashlogs, die vom Benutzer kommen, entstehen durch die Ausführungsfehler der Funktion, die aus dem benutzerdefinierten dll importiert werden.
Graphische Interfaces XI: Überarbeitung des Bibliothekscodes (build 14.1)
Wenn die Bibliothek wächst, muss ihr Programmcode wiederholt optimiert werden, um die Größe zu verringern. Die Version der in diesem Artikel beschriebenen Bibliothek ist nun auch in Teilen objektorientiert. Dadurch ist der Code leichter zu verstehen. Mit der detaillierten Beschreibung der letzten Änderungen kann der Leser auf Basis dieser Bibliothek seine eigenen Ziele umsetzen.
Tracing, Debugging und strukturelle Analyse von Quellcodes
Die gesamte Problematik der Erstellung einer Struktur eines auszuführenden Codes und dessen Tracing lässt sich ohne ernsthafte Schwierigkeiten lösen. Diese Möglichkeit trat mit MetaTrader 5 dank einer neuen Funktion der MQL5-Sprache in Erscheinung: der automatischen Erstellung von Variablen eines komplexen Datentyps (Strukturen und Klassen) und deren Beseitigung beim Verlassen des lokalen Umfelds. Dieser Beitrag beschreibt die Methoden und liefert ein vorgefertigtes Tool.
Grafische Kontrolle der Externen Parameter von Indikatoren
Externe Variablen von Indikatoren werden über ein spezielles Fenster gesteuert, in dem Parameter geändert werden können und der Indikator wieder gestartet wird. Der offensichtliche Nachteil dieser Bearbeitung, ergibt sich aus der Notwendigkeit die benötigten Parameter auf dem Bildschirm anzuzeigen und den Indikator grafisch zu steuern.
Ein Non-Trading EA Indikatoren Test
Alle Indikatoren können in zwei Gruppen unterteilt werden: statische Indikatoren, deren Anzeige, einmal angezeigt, immer die gleiche in der Historie bleibt und sich nicht mit neu hereinkommenden Kursen ändert, und dynamische Indikatoren, die ihren Zustand nur für den aktuellen Augenblick anzeigen und vollständig neu gezeichnet werden, wenn ein neuer Kurs kommt. Die Effizienz eines statischen Indikators ist direkt auf den Chart sichtbar. Aber wie können wir prüfen, ob ein dynamischer Indikator richtig arbeitet? Dieser Frage ist der Artikel gewidmet.
Grafische Interfaces II: Das Hauptmenü Element (Kapitel 4)
Dieses ist das letzte Kapitel des zweiten Teils der Serie über die grafischen Interfaces. Hier betrachten wir die Erzeugung des Hauptmenüs. Hier demonstrieren wir die Entwicklung dieses Controls und das Einrichten der Eventhandler innerhalb der Bibliotheks-Klasse, damit später die Anwendung korrekt auf die Aktionen des Users reagiert. Wir besprechen hier zudem, wie man Kontextmenüs dem Hauptmenü hinzufügt. Zudem werden wir noch besprechen, wie man inaktive Elemente blockiert.
Besser Programmieren (Teil 07): Tipps, um ein erfolgreicher freiberuflicher Entwickler zu werden
Möchten Sie ein erfolgreicher Freelance-Entwickler auf MQL5 werden? Wenn die Antwort ja lautet, ist dieser Artikel genau das Richtige für Sie.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XVIII): Interaktivität des Kontos und aller anderen Bibliotheksobjekte
Der Artikel reiht die Arbeit eines Kontoobjekts in ein neues Basisobjekt aller Bibliotheksobjekte ein, verbessert das Basisobjekt CBaseObj und testet die Einstellung von verfolgten Parametern sowie das Empfangen von Ereignissen für alle Bibliotheksobjekte.
Grafische Interfaces X: Elemente der Zeit, Listen von Kontrollkästchen und das Sortieren von Tabellen (build 6)
Weiterentwicklung der Bibliothek zum Erstellen grafischer Benutzeroberflächen. Zeit und Listen von Kontrollkästchen werden diesmal behandelt. Weiters verfügt die Klasse CTable jetzt über die Möglichkeit, Daten auf- oder absteigend zu sortieren.
Grafiken in der Bibliothek DoEasy (Teil 75): Methoden zur Handhabung von Primitiven und Text im grafischen Grundelement
In diesem Artikel werde ich die Entwicklung der grundlegenden grafischen Elementklasse aller grafischen Objekte der Bibliothek fortsetzen, die von der Klasse CCanvas aus der Standardbibliothek angetrieben werden. Ich werde die Methoden zum Zeichnen grafischer Primitive und zum Anzeigen eines Textes auf einem grafischen Elementobjekt erstellen.
Brute-Force-Ansatz zur Mustersuche (Teil VI): Zyklische Optimierung
In diesem Artikel zeige ich den ersten Teil der Verbesserungen, die es mir ermöglicht haben, nicht nur die gesamte Automatisierungskette für den Handel mit MetaTrader 4 und 5 zu schließen, sondern auch etwas viel Interessanteres zu tun. Von nun an ermöglicht mir diese Lösung, sowohl die Erstellung von EAs als auch die Optimierung vollständig zu automatisieren und die Arbeitskosten für das Finden effektiver Handelskonfigurationen zu minimieren.
Grafische Interfaces X: Erweitertes Management von Listen und Tabellen Code Optimierung (build 7)
Der Code der Bibliothek muss optimiert werden: Er sollte besser dem Standard folgen, das heißt — leichter lesbar und schneller zu verstehen. Weiters werden wir die als letztes entwickelten Kontrollelemente weiterentwickeln: Listen, Tabellen und Bildlaufleisten.
Wie man einen einfachen EA für mehrere Währungen mit MQL5 erstellt (Teil 2): Indikator-Signale: Multi-Zeitrahmen Parabolic SAR Indikator
Der Expert Advisor für mehrere Währungen in diesem Artikel ist ein Expert Advisor oder Handelsroboter, der handeln kann (z.B. Aufträge öffnen, schließen und verwalten, Trailing Stop Loss und Trailing Profit) für mehr als 1 Symbolpaar von nur einem Symbolchart aus. Dieses Mal werden wir nur 1 Indikator verwenden, nämlich den Parabolic SAR oder iSAR in mehreren Zeitrahmen von PERIOD_M15 bis PERIOD_D1.
Zeitreihen in der Bibliothek DoEasy (Teil 38): Kollektion von Zeitreihen - Aktualisierungen in Echtzeit und Datenzugriff aus dem Programm
Der Artikel befasst sich mit der Echtzeit-Aktualisierung von Zeitreihendaten und dem Senden von Meldungen über das Ereignis "New bar" an die Kontrollprogramm auf dem Chart aus allen Zeitreihen aller Symbole, um diese Ereignisse in benutzerdefinierten Programmen handhaben zu können. Die Klasse "New tick" wird verwendet, um die Notwendigkeit der Aktualisierung der Zeitreihen von Symbolen und Perioden zu bestimmen, die nicht dem aktuellen Chart entsprechen.
Anlegen eines Spektrumanalysators
Der hier vorliegende Beitrag möchte seine Leser mit einer möglichen Variante der Verwendung der grafischen Objekte der Programmiersprache MQL5 vertraut machen. Es wird ein Indikator analysiert, der mithilfe grafischer Objekte ein Feld zur Steuerung eines einfachen Spektrumanalysators anlegt. Der Beitrag richtet sich an Leser mit Grundkenntnissen in MQL5.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXIX): Schwebende Handelsanfrage - die Klasse der Anfrageobjekte
In den vorhergehenden Artikeln haben wir das Konzept der schwebenden Handelsanfragen geprüft. Eine schwebende Anfrage ist in der Tat ein gewöhnlicher Handelsauftrag, der unter einer bestimmten Bedingung ausgeführt wird. In diesem Artikel werden wir vollwertige Klassen von Objekten für hängige Anfragen erstellen — ein Objekt für eine Basisanfrage und seine Nachkommen.
Ein System von Sprachbenachrichtigungen für Ereignisse und Signale im Handel
Heutzutage spielen Sprachassistenten eine herausragende Rolle im menschlichen Leben, da wir häufig Navigatoren, Sprachsuche und Übersetzer einsetzen. In diesem Artikel werde ich versuchen, ein einfaches und nutzerfreundliches System von Sprachbenachrichtigungen für verschiedene Handelsereignisse, Marktzustände oder durch Handelssignale erzeugte Signale zu entwickeln.
Das Start des Client-Terminalen MetaTrader 4 auf dem Linux-desktop
Es wurde Schritt um Schritt die Vorbereitung des Linux-desktops mit der Verwendung des nicht-Emulators wine beschrieben, um den Client-Terminal MetaTrader 4 auf ihm zu starten.
Wie man einen einfachen Multi-Currency Expert Advisor mit MQL5 erstellt (Teil 6): Zwei RSI-Indikatoren kreuzen ihre Linien
Der Multi-Currency Expert Advisor in diesem Artikel ist ein Expert Advisor oder Handelsroboter, der zwei RSI-Indikatoren mit sich kreuzenden Linien verwendet, den Fast RSI, der sich mit dem Slow RSI kreuzt.
Grafiken in der Bibliothek DoEasy (Teil 88): Grafische Objektkollektion — zweidimensionales dynamisches Array zur Speicherung der sich dynamisch ändernden Objekteigenschaften
In diesem Artikel werde ich eine dynamische mehrdimensionale Array-Klasse erstellen, die die Möglichkeit bietet, die Datenmenge in jeder Dimension zu ändern. Auf der Grundlage der erstellten Klasse werde ich ein zweidimensionales dynamisches Array erstellen, um einige dynamisch veränderte Eigenschaften von grafischen Objekten zu speichern.
Fertige Vorlagen für die Einbindung von Indikatoren in Expert Advisors (Teil 2): Volumen- und Bill-Williams-Indikatoren
In diesem Artikel werden wir uns mit den Standardindikatoren der Kategorie Volumen und den Indikatoren von Bill Williams beschäftigen. Wir werden gebrauchsfertige Vorlagen für die Verwendung von Indikatoren in EAs erstellen - Deklaration und Einstellung von Parametern, Initialisierung und Deinitialisierung von Indikatoren sowie Empfang von Daten und Signalen aus Indikatorpuffern in EAs.
Grafiken in der Bibliothek DoEasy (Teil 84): Abgeleitete Klassen des abstrakten grafischen Standardobjekts
In diesem Artikel geht es um das Erstellen von Nachfolgeobjekten für das abstrakte grafische Standardobjekt Terminal. Das Klassenobjekt beschreibt die Eigenschaften, die allen grafischen Objekten gemeinsam sind. Es ist also einfach eine Art grafisches Objekt. Um seine Zugehörigkeit zu einem realen grafischen Objekt zu verdeutlichen, müssen wir die Eigenschaften, die diesem speziellen grafischen Objekt eigen sind, in der Klasse des Nachfolgeobjekts festlegen.
Nutzung von Pseudo-Templates als Alternative für C++-Templates
Dieser Beitrag beschreibt eine Art der Programmierung ohne Templates, allerdings unter Beibehaltung des ihnen eigenen Programmierstils. Er schildert die Implementierung von Templates mithilfe von benutzerdefinierten Methoden und bietet ein vorgefertigtes, angehängtes Script zur Erstellung eines Codes auf Basis festgelegter Templates.