Dieser Beitrag behandelt leistungsfähige adaptive Indikatoren und ihre Umsetzung in MQL5. Die Indikatoren Adaptive Cyber Cycle, Adaptive Center of Gravity und Adaptive RVI wurden alle ursprünglich von John F. Ehlers in „Kybernetische Analyse für Wertpapiere und Terminkontrakte“ (Cybernetic Analysis for Stocks and Futures) vorgestellt.
Analyse und Beispiele, wie eine Handelsanalyse auf der Plattform MetaTrader5 gemacht, aber von MetaTrader4 ausgeführt wird. In diesem Artikel wird besprochen, wie man einen einfachen Signalgeber in MetaTrader5 entwirft und mehrere Clients verbindet, auch wenn man MetaTrader4 laufen lässt. Sie werden auch herausfinden, wie Sie den Teilnehmern der Automated Trading Championship mit Ihrem realen MetaTrader4-Account folgen können.
Sehen Sie sich Ihr Handelsterminal an. Welche Mittel zur Darstellung von Preisen können Sie sehen? Balken, Kerzen, Linien. Wir jagen Zeit und Preisen hinterher, während wir nur von Preisen profitieren können. Sollen wir nur auf Preise achten, wenn wir den Markt analysieren? Dieser Beitrag schlägt einen Algorithmus und ein Script für Punkt- und Zeichendiagramme ("X und O") vor. Es werden unterschiedliche Preismuster betrachtet, deren praktische Anwendung in den bereitgestellten Empfehlungen erläutert wird.
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.
Dieser Beitrag beschäftigt sich mit den dEtailös der Interaktion zwischen MetaTrader 5 und dem MatLab Mathematik-Paket. Er erklärt die Mechanismen der Datenkonvertierung, den Entwicklungsprozess einer universellen Library, die mit dem MATLAB-Desktop interagieren kann. Zudem wird auch die Verwendung von DLL erklärt, die durch die MatLab Umgebung erzeugt werden. Dieser Beitrag richtet sich an bereits erfahrene Leser, die C++ und MQL5 kennen.
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.
Die Erstellung verschiedener Typen von Diagrammen ist ein wesentlicher Bestandteil der Analyse der Marktsituation und der Tests eines Handelssystems. Um ein ansehnliches Diagramm erstellen zu können, muss die Datenausgabe häufig in einer Datei organisiert werden, die daraufhin in Anwendungen wie MS Excel verwendet wird. Das ist nicht sehr praktisch und nimmt uns die Möglichkeit, die Daten dynamisch zu aktualisieren. Die Google Charts API stellt die Instrumente für die Erstellung von Diagrammen online durch Senden einer speziellen Anfrage an den Server bereit. In diesem Beitrag werden wir versuchen, den Prozess der Erstellung einer solchen Anfrage zu automatisieren und ein Diagramm vom Google-Server abzurufen.
Dieser Beitrag befasst sich mit dem Mechanismus zur Erstellung eines DLL-Moduls mithilfe der beliebten Programmiersprache ObjectPascal innerhalb einer Delphi-Programmierumgebung. Die Inhalte dieses Beitrags richten sich mit der Einbindung äußerer DLL-Module vorrangig an Neueinsteiger in der Programmierung, die mit Problemen kämpfen, die die Grenzen der eingebetteten Programmiersprache MQL5 sprengen.
Dieser Beitrag beschreibt die Kodierung von Informationen mithilfe der magischen Identifikation sowie die Trennung, den Aufbau und die Synchronisierung des automatischen Handelns verschiedener Expert Advisors. Dieser Beitrag ist für Neueinsteiger ebenso interessant wie für erfahrenere Händler, weil er das Thema virtuelle Positionen behandelt, die bei der Implementierung komplexer Synchronisierungssysteme von Expert Advisors und diverser Strategien hilfreich sind.
Einige Händler führen all ihre Handel automatisch aus und einige arbeiten sowohl mit automatischen als auch manuellem Handeln auf Grundlage der Ergebnisse verschiedener Indikatoren. Da ich zur zweiten Gruppe gehöre, wollte ich ein interaktives Tool, mit dem ich Risiko- und Prämien-Levels direkt vom Chart aus dynamisch abschätzen kann. In diesem Beitrag wird erläutert, wie man einen interaktiven, halb-automatischen Expert Advisor mit vorab festgelegten Eigenkapitalrisiko und einem R/R-Verhältnis (relatives Risiko) implementiert. Das Expert Advisor Risiko sowie die Parameter für relativer Risiko und die Postengrößen können während der EA-Laufzeit in seinem Bedienfeld verändert werden.
Dieser Beitrag beschreibt eine Klasse eines dynamischen zweidimensionalen Arrays, die in ihrer ersten Dimension Daten verschiedener Typen enthält. Diese Daten in Form einer Tabelle abzulegen, ist zur Lösung von vielen Problemen bei der Anordnung, Speicherung und der Arbeit mit gebundenen Informationen unterschiedlicher Arten sehr bequem. Der Quellcode der Klasse, die Funktionalität mit Tabellen arbeiten zu können, implementiert, ist an diesen Beitrag angehängt.
Im nachfolgenden Beitrag beschreibe ich einen Prozess für die Umsetzung des Indikators Moving Mini-Max auf Basis der Arbeit 'Moving Mini-max: a new indicator for technical analysis' von Z.G. Silagadze. Die Idee hinter dem Indikator basiert auf einer Simulation von Quantentunnel-Phänomenen, die von G. Gamov in der Theorie des Alphazerfalls vorgeschlagen wurde.
In diesem Artikel werden wir uns weiterhin mit den Grundlagen von internetbasierten HTTP-Anfragen und dem Informationsaustausch mit Servern befassen. Es werden neue Funktionen der CMqINet-Klasse, Methoden der Informationsübertragung mit Formularen, das Senden von Dateien mit POST-Anfragen sowie Autorisierungen auf Webseiten mit Ihrem Login unter Verwendung von Cookies behandelt.
Es ist nun schon mehr als ein Jahr her, dass MQL5 OpenCL unterstützt. Allerdings haben noch nicht sehr viele Benutzer den wahren Wert von paralleler Datenverarbeitung (Parallel Computing) bezüglich Expert Advisors, Indikatoren oder Skripten erkannt. Dieser Artikel soll Ihnen dabei helfen, OpenCL auf Ihrem Computer zu installieren als auch einzurichten, so dass Sie diese Technologie in Ihrem MetaTrader-5-Handelsterminal verwenden können.
Das Marktprofil wurde von Peter Steidlmayer, einem wahrhaft brillanten Denker, entwickelt. Er schlug die alternative Darstellung von Informationen über "horizontale" und "vertikale" Marktbewegungen vor, die eine völlig neue Reihe von Modellen ermöglicht. Er stellte die These auf, dass dem Markt ein Puls oder ein grundlegendes Muster namens Zyklus des Gleichgewichts und Ungleichgewichts zugrunde liegen muss. In diesem Beitrag werde ich auf das Preishistogramm eingehen, ein vereinfachtes Modell des Marktprofils, und beschreibe seine Umsetzung in MQL5.
Die MQL5-Standardbibliothek erleichtert Ihnen das Leben als Entwickler. Dennoch geht sie nicht auf die Bedürfnisse aller Entwickler auf der Welt ein. Wenn Sie also das Gefühl haben, dass Sie mehr benutzerdefinierte Funktionen brauchen, können Sie einen Schritt weitergehen und die Bibliothek erweitern. Dieser Beitrag begleitet Sie durch die Integration des technischen Indikators ZigZag von MetaQuotes in die Standardbibliothek. Wir lassen uns durch die Designphilosophie von MetaQuotes inspirieren, um unser Ziel zu erreichen.
Sie müssen nicht unbedingt wissen, was Polymorphismus, Kapselung usw. im Zusammenhang mit objektorientierter Programmierung (OOP) sind... Sie können diese Funktionen einfach nutzen. Dieser Beitrag behandelt die Grundlagen der OOP mit praktischen Beispielen.
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.
Es gibt viele verschiedene Charttypen, die Informationen zur aktuellen Marktsituation anzeigen. Viele von Ihnen - wie beispielsweise Point-&-Figure-Charts - sind die Hinterlassenschaften einer weit zurückliegenden Vergangenheit. Dieser Artikel beschäftigt sich mit dem Zeichnen von Point-&-Figure-Charts mithilfe von Echtzeitindikatoren.
Der Verfasser behandelt in diesem Beitrag evolutionäre Berechnungen mit Hilfe eines persönlich entwickelten, genetischen Algorithmus. Er zeigt die Funktionsweise dieses Algorithmus anhand von Beispielen und gibt praktische Empfehlungen für seine Verwendung.
Viele Trader machen sich keine Gedanken darüber, wie schnell ihre Order die Börse erreicht, wie schnell sie da ausgeführt wird und wie viel Zeit das Terminal braucht, um das Ergebnis zu erhalten. Wir uns vorgenommen, die Geschwindigkeit der Ausführung von Transaktionen zu vergleichen, denn noch keiner hat vor uns solche Messungen mithilfe von MQL5- und QLUA-Programmen durchgeführt.
Dieser Beitrag behandelt Verteilungen von Wahrscheinlichkeiten (normal, lognormal, binomial, logistisch, Cauchy-Verteilung, Studentsche t-Verteilung, Laplace-Verteilung, Poisson-Verteilung, Secans-Hyperbolicus-Verteilung, Beta- und Gamma-Verteilung) zufälliger Statistiken in der angewandten Statistik. Er nennt ebenfalls Klassen für den Umgang mit diesen Verteilungen.
Nicht allzu viele Entwickler erinnern sich noch daran, wie eine simple DLL geschrieben wird und was die Besonderheiten der unterschiedlichen Systemanbindungen sind. Anhand mehrerer Beispiele werde ich versuchen, Ihnen den gesamten Prozess zur Erstellung einer simplen DLL in 10 Minuten zu zeigen, sowie einige technische Einzelheiten der Umsetzung unserer Anbindung zu besprechen. Ich zeige Ihnen den Prozess der DLL-Erstellung in Visual Studio Schritt für Schritt mit Beispielen für den Austausch unterschiedlicher Typen von Variablen (Zahlen, Arrays, Strings usw.). Außerdem erkläre ich, wie Sie Ihr Client Terminal vor Abstürzen in benutzerdefinierten DLLs schützen können.
Dieser Beitrag beschreibt die Umsetzung der Interprozesskommunikation zwischen Client Terminals von MetaTrader 5 mithilfe von Named Pipes. Für die Nutzung von Named Pipes wird die Klasse CNamedPipes entwickelt. Um sie zu testen und um den Durchsatz der Verbindung zu messen, werden die Scripts für den Tick-Indikator, den Server und den Client vorgestellt. Die Nutzung von Named Pipes ist für Echtzeitgebote geeignet.
Seit Anbeginn der Menschheit ist Zeit von unschätzbarem Wert und wir tun alles, um sie nicht unnötig zu vergeuden. In diesem Sinne beschreibt Ihnen dieser Beitrag, wie Sie die Arbeit Ihres Expert Advisors beschleunigen können, wenn Ihr Computer über einen Mutli-Core Prozessor verfügt. Zudem verlangt die Implementierung der vorgeschlagenen Methode keine Kenntnisse anderer Programmiersprachen außer MQL5.
In diesem Beitrag wird ein Indikator für ein Kagi-Diagramm nebst unterschiedlicher Darstellungsvarianten und Zusatzfunktionen vorgestellt. Darüber hinaus werden die Abbildungsgrundlagen des Indikators sowie die Möglichkeiten zu seiner Umsetzung in MQL5 betrachtet. Die verbreitetsten Fälle seiner Umsetzung im Börsenhandel werden ebenfalls aufgeführt: die Strategie zum Wechsel von Yin und Yang, das „Abstoßen“ von der Trendlinie sowie die anhaltende Verbreiterung der „Schultern“ / Verjüngung der „Taillen“.
Die neue Version der Programmiersprache für die Entwicklung von Handelsstrategien, MQL [MQL5], liefert im Vergleich zur Vorgängerversion [MQL4] leistungsstärkere und effektivere Features. Der Vorteil besteht im Wesentlichen aus den Merkmalen der objektorientierten Programmierung. In diesem Beitrag wird die Möglichkeit betrachtet, komplexe benutzerdefinierte Datentypen wie Knoten und Listen zu verwenden. Außerdem liefert der Beitrag ein Anwendungsbeispiel für die Verwendung von Listen in der praktischen Programmierung in MQL5.
Dieser Beitrag beschreibt ein Beispiel für Renko-Diagramme und dessen Umsetzung als Indikator in MQL5. Dieser Indikator unterscheidet sich durch Modifikationen von einem herkömmlichen Diagramm. Er kann sowohl im Indikatorfenster als auch im Hauptdiagramm konstruiert werden. Außerdem gibt es noch den ZigZag-Indikator. Sie können einige Beispiele für die Umsetzung des Diagramms finden.
Dieser Beitrag richtet sich an Entwickler, die in ihren Projekten gerne SQL verwenden möchten. Er erklärt die Funktionsweise und Vorteile von SQLite. Für diesen Beitrag sind keine speziellen Kenntnisse der SQLite-Funktionen nötig, doch ein Grundverständnis von SQL wäre durchaus hilfreich.
Der Artikel befasst sich mit dem Zeichen der Charts "Spindels" (spindles), auch mit seiner Verwendung in Handelsstrategien und Expert-Advisors. Zunächst betrachten wir die Erscheinung des Charts, sein Zeichen und seine Verbindung mit den japanischen Kerzen. Als nächstes analysieren wir die Realisierung der Indikatoren im Code in MQL5. Wir testen auch den Experten, der auf dem Indikator basierend ist und formulieren eine Trading-Strategie.
Die Fuzzylogik geht über die üblichen Grenzen der mathematischen Logik und der Mengentheorie hinaus. Der vorliegende Artikel erläutert die Hauptprinzipien dieser Theorie und beschreibt die Inferenz-Systeme vom Typ Mamdani und Sugeno. Darüber hinaus werden im Artikel Beispiele zur Umsetzung unscharfer Modelle anhand dieser zwei Systeme durch die Mittel der FuzzyNet Bibliothek für MQL5 angeführt.
Wenn der Funktionsumfang der Programmiersprache MQL5 zur Erfüllung bestimmter Aufgaben nicht ausreicht, muss sich ein MQL5-Programmierer weiterer Hilfsmittel bedienen. Ein Weg besteht im Wechsel zu einer anderen Programmiersprache und dem Anlegen einer zwischengelagerten dynamischen Programmbibliothek (DLL). MQL5 bietet die Möglichkeit, unterschiedliche Datenarten abzubilden und sie an eine Programmierschnittstelle (API) weiterzugeben, leider ist MQL5 jedoch nicht in der Lage, das Problem des Auszugs von Daten aus einer zugelassenen Speicheradresse zu lösen. In diesem Beitrag wollen wir auf jedes „i“ einen Punkt setzen und einige einfache Mechanismen für den Austausch und die Arbeit mit komplexen Datenarten vorstellen.
Ganz egal, welche Handelsstrategie Sie anwenden, wird immer die Frage bestehen, welche Parameter gewählt werden sollen, um zukünftige Gewinne zu sichern. Dieser Beitrag liefert ein Beispiel für einen Expert Advisor mit der Möglichkeit, mehrere Symbolparameter gleichzeitig zu optimieren. Diese Methode dient dazu, die Auswirkungen der Überanpassung von Parametern abzuschwächen und mit Situationen umzugehen, in denen die Daten aus einem einzelnen Symbol nicht für eine eingehende Betrachtung ausreichen.
Viele Entwickler sehen sich mit demselben Problem konfrontiert: Wie kreiert man eine Sandboxumgebung für ein Handelsterminal ohne unsichere DLLs zu benutzen. Eine der leichtesten und zugleich sichersten Methoden besteht in der Verwendung standardisierter Named Pipes, die normale Dateioperationen gewährleisten. Diese ermöglichen eine Interprozessor-Client-Server basierte Kommunikation zwischen Programmen. Werfen Sie einen Blick auf die praktischen C++- und MQL5-Beispiele, einschließlich Server, Client, den Datenaustausch zwischen beiden sowie den Benchmark-Test.
Es ist heutzutage schwierig, einen Computer zu finden, auf dem kein Web-Browser installiert ist. Browser werden seit langer Zeit weiterentwickelt und ständig verbessert. In diesem Beitrag wird eine einfache und sichere Art der Erstellung von Diagrammen auf Basis von Informationen aus dem MetaTrader 5 Client Terminal besprochen, die im Browser angezeigt werden.
Ende Januar 2012 kündigte die Softwareentwicklungsfirma, die hinter der Entwicklung von MetaTrader 5 steht, die native Unterstützung von OpenCL in MQL5 an. Dieser Beitrag legt anhand eines anschaulichen Beispiels die Programmiergrundsätze für OpenCL in der MQL5-Umgebung dar und liefert einige Beispiele für die "naive" Optimierung des Programms, um die Betriebsgeschwindigkeit zu erhöhen.
Wir möchten eine Umgebung erschaffen, die den Zugriff auf Daten von Indikatoren ermöglicht, die an ein Diagramm angehängt sind, und deshalb die folgenden Eigenschaften aufweist: kein Kopieren von Daten; minimale Veränderung des Codes verfügbarer Methoden, wenn wir sie nutzen müssen; MQL-Code ist zu bevorzugen (natürlich müssen wir DLL nutzen, doch wir verwenden nur ein Dutzend Strings C++-Code). Dieser Beitrag beschreibt eine einfache Methode zur Entwicklung einer Programmumgebung für das MetaTrader-Terminal, die eine Zugriffsmöglichkeit auf Indikatorpuffer aus anderen MQL-Programmen bietet.
Die meisten Personen, die Codes in Java anlegen, kennen bestimmt die automatisch generierte Dokumentation, die zusammen mit JavaDocs erstellt werden kann. Hierbei geht es um die Ergänzung des Codes durch Anmerkungen auf semi-strukturierte Weise, die dann in eine leicht zu navigierende Hilfe-Datei extrahiert werden können. In der C++ Welt gibt es ebenfalls einige automatische Dokumentations-Generatoren, von denen SandCastle und Doxygen von Microsoft die beiden Spitzenreiter sind. Dieser Beitrag beschreibt die Verwendung von Doxygen zur Erzeugung einer HTML Hilfe-Datei auf Basis strukturierter Anmerkungen im MQL5-Code. Der Versuch hat prima funktioniert und ich glaube, dass die Hilfs-Dokumentation, die Doxygen aus dem MQL5-Code liefert ganz erheblichen Mehrwert mit sich bringt.
Reguläre Ausdrücke (eng. regular expressions) stellen eine spezielle Sprache für die Textverarbeitung nach einer vorbestimmten Regel dar, die auch als Muster bezeichnet wird oder die Maske eines regulären Ausdrucks. In diesem Artikel zeigen wir Ihnen, wie Sie den Handelsbericht mit Hilfe von der Bibliothek RegularExpressions für MQL5 verarbeiten können, auch werden die Ergebnisse der Optimierung mit ihrer Anwendung demonstriert.
Der Artikel befasst sich mit einem Beispiel für die Anwendung der Fuzzy-Logik, um ein einfaches Handelssystem unter Verwendung der Fuzzy-Bibliothek zu erstellen. Es werden Varianten zur Verbesserung des Systems durch Kombination von Fuzzy-Logik, genetischen Algorithmen und neuronalen Netzen vorgeschlagen.