Algorithmisches Trading: MetaTrader4 | MQL4
()
About this ebook
Related to Algorithmisches Trading
Related ebooks
Trading und Social Trading: Ein lukrativer Nebenjob Rating: 0 out of 5 stars0 ratingsIhre Chance zur Finanziellen Unabhängigkeit: Meine Erfahrungen als Copy-Trader zum Kopieren Rating: 0 out of 5 stars0 ratingsGeld verdienen mit Devisenhandel Forex Trading Rating: 0 out of 5 stars0 ratingsKünstliche Intelligenz für Business Analytics: Algorithmen, Plattformen und Anwendungsszenarien Rating: 0 out of 5 stars0 ratingsDaytrading für Beginner: Schritt für Schritt zum erfolgreichen Daytrader: Börse & Finanzen, #3 Rating: 0 out of 5 stars0 ratingsProfessionelles Partnermanagement im Lösungsvertrieb: In 35 Schritten zur nachhaltig erfolgreichen Geschäftsbeziehung Rating: 0 out of 5 stars0 ratingsBinäre Optionen TOP-GOLD Trading Signale Rating: 0 out of 5 stars0 ratingsDas Börsenabitur - Grundkurs: Die Grundlagen des Investierens verstehen und anwenden lernen Rating: 0 out of 5 stars0 ratingsLösungsorientiert verhandeln im Technischen Vertrieb: Grundlagen, Strategien und Tipps für faire Geschäfte Rating: 0 out of 5 stars0 ratingsDas Praxisbuch Xiaomi Redmi Note 9T - Anleitung für Einsteiger Rating: 0 out of 5 stars0 ratingsNetwork Hacks - Intensivkurs: Angriff und Verteidigung mit Python 3 Rating: 0 out of 5 stars0 ratingsDigitales Shopfloor Management in SAP-Systemumgebungen: Roadmap und Lösungsalternativen für die Umsetzung Rating: 0 out of 5 stars0 ratingsJavaMoney: Einführung in den JSR-354-Standard Rating: 0 out of 5 stars0 ratingsLogging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsTradingProjekt: 1 Million Gewinn oder Totalverlust? 7 Grundprinzipien bestimmen den Trading-Erfolg! Rating: 0 out of 5 stars0 ratingsAgile Softwareentwicklung: Ein Leitfaden für Manager Rating: 0 out of 5 stars0 ratingsTechnische Indikatoren - simplified Rating: 0 out of 5 stars0 ratingsDas Praxisbuch Xiaomi Mi 11 - Anleitung für Einsteiger Rating: 0 out of 5 stars0 ratingsAufsetzen, Testen und Betrieb einer Android-App Rating: 0 out of 5 stars0 ratingsBug Bounty Hunting mit Kali-Linux oder Parrot Security OS: Hacking als Hautberuf oder Nebenjob Rating: 3 out of 5 stars3/5Das Praxisbuch Xiaomi Redmi Note 10 & Redmi Note 10 Pro - Anleitung für Einsteiger Rating: 0 out of 5 stars0 ratingsDer Krypto Kompass: Finde deinen Weg in der Kryptowelt Rating: 0 out of 5 stars0 ratingsAgile Softwareentwicklung mit C# (Microsoft Press): Best Practices und Patterns für flexiblen und adaptiven C#-Code Rating: 0 out of 5 stars0 ratingsTrading King - vom Anfänger zum Millionär Rating: 0 out of 5 stars0 ratings
Finance & Money Management For You
Rich Dad Poor Dad: Was die Reichen ihren Kindern über Geld beibringen Rating: 4 out of 5 stars4/5Das Trojanische Pferd der Freiheit: Bitcoin als Chance im Kampf um Selbstbestimmung und Menschenrechte Rating: 0 out of 5 stars0 ratingsDer Bitcoin-Standard: Die dezentrale Alternative zum Zentralbankensystem Rating: 5 out of 5 stars5/5200 Duas für Muslim Rating: 5 out of 5 stars5/5Crash-Kurs Finanzanalyse Rating: 0 out of 5 stars0 ratings101 ganz legale Börsentipps und -tricks: Vermögensaufbau mit Aktien ist einfach Rating: 0 out of 5 stars0 ratingsMagic Future Money: (Un)mögliche Geschichten vom Geld der Zukunft Rating: 0 out of 5 stars0 ratingsTrading Psychologie für Anfänger: Tradingstrategien lernen: Mit Tradingpsychologie zu mehr Erfolg beim Investieren Rating: 0 out of 5 stars0 ratingsKryptowährungen verstehen: Von Bitcoin bis zur globalen Finanzrevolution Rating: 0 out of 5 stars0 ratingsKosten- und Leistungsrechnung für Fachwirte: mit Übungsaufgaben und Lösungen Rating: 0 out of 5 stars0 ratingsDas deutsche Gesundheitssystem - unheilbar krank?: Wie das Gesundheitssystem funktioniert und wie es erneuert werden muss Rating: 0 out of 5 stars0 ratingsPlädoyer für eine Jobgarantie Rating: 0 out of 5 stars0 ratings
Reviews for Algorithmisches Trading
0 ratings0 reviews
Book preview
Algorithmisches Trading - Andrey Bulezyuk
Kapitel 1
Einleitung in die Programmierung
1.1 MetaTrader4 und Installation
Sie sind mit Sicherheit mit unterschiedlichen Trading Plattformen vertraut. Dieses Buch basiert auf der MetaTrader 4 Trading Plattform. Diese Software ist sehr bekannt unter privaten Börsenhändlern im europäischem und asiatischem Raum. Mit MetaTrader 4 (auch „MT4") kann man prinzipiell alle möglichen Instrumente handeln – CFDs, Aktien, Forex, Metalle und so weiter. MetaTrader4 ist kostenlos und kann problemlos im Internet heruntergeladen werden. Bekannt wurde MT4 vor allem durch die einfache Möglichkeit
• Expert Advisors (vollautomatisierte Handelssysteme),
• angepasste Indikatoren (Linien, Objekte, Signale und Texte)
und
• Skripte (einmalige Ausführung eines Befehls) zu entwickeln.
Die beiden Wörter „Expert Advisor werden wir öfter mit „EA
abkürzen. Dieses Kapitel dient als Grundlage für die nächsten Kapitel. Im zweitem Kapitel wird detailliert beschrieben, wie Sie als privater Börsenhändler, ein vollautomatisiertes Handelssystem programmieren können. Im drittem Kapitel wird das Programmieren eines angepassten Indikator erläutert. Zudem besitzt MetaTrader4 über ein ausgeprägtes Backtesting-System, welches wir uns abschließend (Kapitel 4) anschauen werden.
Download
Gehen Sie auf http://www.metatrader4.com/de/ und klicken Sie auf „Herunterladen". Je nach Browser wird ein Fenster mit der heruntergeladenen Datei erscheinen. Falls dieses Fenster nicht erscheint, müssen Sie ihre Browser- bzw. Firewall-Einstellungen überprüfen.³
Installation unter Windows
Öffnen Sie die Datei und klicken Sie auf „Fortfahren", bis Sie den Zielordner für die Installation bestimmten können. Im 4. Kapitel werden wir zum Unterschied zwischen der Plattform für das Handeln und der Plattform für das Backtesten kommen. Für das manuelle Trading und algorithmische Trading, reicht relativ wenig Speicherplatz aus. Für ausgeprägte Backtests brauchen Sie viel Speicherplatz (mehrere Gigabytes) auf ihrer Festplatte.
Installation unter Linux
Auch ist es möglich MetaTrader 4 unter dem kostenlosem Betriebssystem Linux zu verwenden. Dafür braucht man eine zusätzliche Software: „Wine". Wine ist ein kostenloses Programm für Linux, welches Windows-Programme ausführen kann. Dabei wird die Funktionalität der Handelsplattform nicht eingeschränkt.⁴ Die Abbildungen bzw. Screenshots in diesem Buch wurden übrigens sowohl unter Windows 7 als auch unter Ubuntu 14.04 LTS erstellt. Es gab weder Schwierigkeiten mit der MetaTrader4 Station, noch mit dem MetaEditor.
Erstellen eines Handelskontos
Erstellen Sie ein kostenloses Demokonto bei einem Broker ihrer Wahl oder auf dem „MetaQuotes Demo"-Server.⁵ Klicken Sie dafür in der MetaTrader 4 Station auf Datei → Konto Eröffnen. Die nachfolgende Abbildung zeigt das Login Fenster an. Sie müssen sich bei irgendeinem Broker anmelden, um Kursverläufe zu laden. Allgemein ist es empfehlenswert ein Demokonto bei dem Broker zu eröffnen, bei welchem Sie bereits ein Echtgeldkonto haben. Sollten Sie kein Echtgeldkonto haben, können Sie trotzdem alle Funktionen verwenden.
Abbildung 1 - Im Handelskonto einloggen
Ich rate dringend davon ab, sich mit einem kapitalisierten Echtgeldkonto einzuloggen. Nur ein einziger Tippfehler in einem Expert Advisor kann gravierende Folgen für ein Konto(stand) haben. Mit einem Demo Konto ist man auf der sicheren Seite.
MetaTrader4 Plattform ist nun installiert und bezieht kostenlose Kursdaten von einem Server. Trader und Investoren die sehr fasziniert von Charts und Kursen sind, muss ich leider enttäuschen, denn ein großer Teil unseres Buches bzw. der Entwicklung eines EAs wird außerhalb des Charts stattfinden.
Zusammen mit MT4 Handelsplattform wird ebenfalls eine Programmierumgebung für die MQL4 Programmiersprache geliefert. Sie sind so verknüpft, dass man vom Terminal (Handelsplattform) in den MetaEditor
übergehen kann und vom MetaEditor in die MetaTrader4 Station.⁶ Dies erspart uns Zeit beim Wechsel zwischen Terminal und MetaEditor und beim Aktualisieren des Expert Advisors.
Die Programmierumgebung findet man entweder im Installationsordner von MT4 oder im Startmenü von Windows im Ordner „Meta Trader 4".⁷
Abbildung 2 - MetaTrader4 Ordner
Auch kann man die Programmierumgebung MetaEditor von der MetaTrader4 Station aus aufrufen. Dazu muss man oben im MT4 das kleine Icon links neben der „AutoTrading"-Schaltfläche anklicken.
Abbildung 3: MetaEditor Aufrufen
Da zwei Drittel dieses Buches sich im MetaEditor abspielen, möchten wir uns jede wichtige Funktion und jedes Fenster der Entwicklungsumgebung genau anschauen.
Abbildung 4: MetaEditor Fenster
Navigator
Navigator finden Sie in der linken oberen Ecke. In diesem Fenster werden Ordner dargestellt, in welchen sich Indikatoren, EAs, Scripts usw. befinden. All dies lässt sich meistens in die Handelsplattform einbinden. Dabei muss man das jeweilige Objekte mit der Maus auf ein Chart ziehen. Es gibt jedoch Komponente, die sich nicht direkt in die MT4 Plattform einbinden lassen, sondern in die EAs oder Indikatoren. Eine .dll-Datei wäre ein gutes Beispiel dafür. Diese Dateien werden von EAs und Indikatoren verwendet, um extra Funktionen und Zugriffe zu erhalten. Eine .dll-Datei ermöglicht es bspw. einem EA, eine Verbindung mit einer Webseite, einer lokalen oder externen Datenbank oder sonstigen Endpunkten herzustellen. Dieses wird in diesem Buch nicht behandelt, da man dafür höhere Programmierkenntnisse in anderen Programmiersprachen bräuchte.
Toolbox
Die Toolbox ist meistens ganz unten im MetaEditor positioniert. In der Toolbox sind weitere Fenster in Tabs zu finden. Suche, Artikel, Bibliothek und Journal sind für uns weniger von Bedeutung. Sollte Sie jedoch an verschiedenen (Blog-)Artikeln interessiert sein, so können Sie diese unter Suche oder Bibliothek finden. Das Fenster mit dem Namen „Fehler" müssen wir immer im Vordergrund haben. Wir werden im Laufe des Programmierens eines EAs oder eines Indikators immer beten müssen, dass dieses Fenster leer bleibt. Denn, wie der Name schon verraten mag, werden in diesem Fenster alle Fehler in unserem Code angezeigt. Es lässt sich meistens nicht vermeiden, dass man nach dem ersten⁸ Kompilieren keine Fehler ausgegeben bekommt. Dieses Ausgabefenster stellt den Compiler (engl. = Übersetzer) dar.
Quelltext
In diesem Fenster wird der eigentliche Quelltext eines EAs oder eines Indikators geschrieben. Hier entstehen Algorithmen, die darüber entscheiden, ob Sie im nächsten Jahr nach Mallorca fliegen oder eine Bewerbung bei der Deutschen Bank abgeben…als Reinigungskraft. Für das ungeschulte Auge sind die langen Quelltexte sehr irritierend. Das liegt ganz einfach daran, dass die meisten Leser nicht wissen welche Bedeutung diese Wörter, Buchstaben und Kombinationen haben. Beim Anschauen eines unbekannten und langen Textausschnitts auf deutsch, kommen wir automatisch zurecht. Weiß man also wie eine Programmiersprache aufgebaut ist, wird man auch mit diesen langen Quelltexten gut zurechtkommen – das garantieren ich Ihnen. Wenn Sie dieses Buch zu Ende gelesen haben, blättern Sie zurück zur Abbildung 4. Sie werden merken, dass die Wörter, Zeichen und Kombinationen aus der Abbildung plötzlich einen Sinn ergeben.
Menüleiste
• MQL4-Assistent kann man unter „Neu" aufrufen. Der MQL4 Assistent erstellt für uns das Gerüst eines jeden EAs und erspart uns somit an Zeit und Tipparbeit.⁹
• Das Kompilieren verwandelt unseren Quelltext in einen Code, den die MT4 Plattform lesen und ausführen kann. Sollte es Fehler im Quelltext geben, wird die Kompilierung fehlschlagen. Die Fehler bei einer fehlgeschlagenen Kompilierung werden in der Toolbox angezeigt
• Im Suchfeld können Begriffe, Funktionen und Fragen eingetippt werden. Die Suchanfrage wird auf die offizielle Webseite von MetaTrader4 weitergeleitet.
Abbildung 5 - Menüleiste
Die Entwickler von MT4 haben bei einem bestimmten Update, die Ordnerstruktur der Plattform verändert. Somit hat sich auch der Ort auf der Festplatte verändert, an welchem sich alle Dateien der Plattform befinden. Als Anwender und Entwickler von Indikatoren und EAs braucht man diesen Ordner nicht. Sollte man jedoch das Bedürfnis haben, eine Quelldatei (.mq4) oder die kompilierte Datei (.ex4) zu kopieren, braucht man den Zielordner. Diesen Ordner finden Sie in dem Sie auf File / Datei → Open Data Folder / Öffne Datei Ordner klicken.
Unter Linux/Ubuntu kann man den MQL4 Ordner etwas leichter mit dem Dateibrowser/ „Explorer" finden als unter Windows. Die nachfolgende Abbildung zeigt den Pfad zum MQL4-Ordner unter Ubuntu auf.
Abbildung 6: Linux MQL4 Pfad
1.2 Einleitung in die MQL4-Programmierung
Bevor wir damit anfangen, für den Menschen unverständliche, Hieroglyphen zu programmieren, müssen wir zuerst eine neue Datei erstellen. Das Erstellen eines neuen EAs oder Indikators erfolgt durch das Klicken auf Neu → Expert Advisor oder Benutzerdefinierter Indikator im MetaEditor.¹⁰ Im vorherigen Absatz wurde beschrieben, wie man den Zielordner der MT4 Plattform öffnen kann. In diesem Ordner findet man Quelldateien mit der Dateiendung *.mq4 und kompilierte Dateien mit der Endung *ex4. Eine Quelldatei kann man mit dem MetaEditor öffnen und bearbeiten. Eine kompilierte Datei dagegen kann man nicht mehr bearbeiten sondern nur noch in der MetaTrader4 Plattform aufrufen. Die Quelldatei sollte man immer sorgfältig aufbewahren und bestenfalls Kopien auf anderen Speicherträgern erstellen.¹¹ Es ist unglaublich ärgerlich wenn die Quelldatei von einem 3000-Codezeilen Expert Advisor verloren geht. Zwar ist dann noch die kompilierte Datei (ex4) vorhanden, dennoch kann man keine Anpassungen an dem EA oder Indikator mehr vornehmen. Auch wird man nicht beweisen können, dass man der Entwickler ist, weil man die Quelldatei nicht mehr besitzt.
Abbildung 7: MOL Wizard
1.2.1 Datentypen und Variablen
Variablen sind Platzhalter und werden dazu genutzt bestimmte Zahlen, Werte bzw. Textausschnitte zu speichern. Eine Variable muss man einmalig deklarieren und kann sie im Nachhinein beliebig oft definieren. Alle Variablen müssen einen individuellen Namen besitzen. Als Deklaration verstehen wir die Reservierung im EA o. Indikator, welche den angegebenen Variablennamen belegt. Unter Definition ist das Festlegen eines Wertes einer Variable zu verstehen. Es gibt verschiedene Arten von Variablen: externe, globale und interne¹².
So ziemlich jede Programmiersprache, bis auf PHP und wenig andere, besitzt verschiedene Datentypen. Ein Datentyp gibt die Art des Inhalts einer Variable an. Nicht nur Variablen besitzen einen Datentyp. Auch Funktionen müssen einen Datentyp besitzen¹³. Die unterschiedlichen Arten des Inhalts und der dazugehörige Datentyp wird in der nachfolgenden Tabelle aufgelistet.
Tabelle 1 – Datentypen
Die Definition erfolgt bei externen, internen und globalen Variablen gleich. Zuerst wird der Präfix bzw. der Datentyp der Variable zugewiesen. Nachfolgend muss man einen Namen für die Variable festlegen, welcher nur aus Buchstaben und Zahlen aufgebaut sein darf. Nach dem „=" Zeichen, welcher nach dem Namen stehen muss, folgt der eigentliche Inhalt der Variable. Die Definition wird mit einem „; " abgeschlossen. Wir schauen uns für je einen Datentyp eine Beispieldefinition an.
Tabelle 2 – Beispieldefinitionen von Variablen
Eine Veränderung des Inhalts der Variable erfolgt ähnlich der Deklaration. Der einzige Unterschied ist: den Präfix bzw. den Datentyp muss man auslassen. Die Präfixe sind also nur dann anzugeben, wenn eine Variable deklariert wird; nicht bei Veränderung des Inhalts der Variable.
Um auf den Inhalt einer Variable zugreifen zu können, muss man den Namen der Variable aufrufen. Man sollte immer auf die richtigen Datentypen achten. Es kann zu einem Informationsverlust kommen, wenn der Präfix der Variable und der tatsächliche Datentyp des Inhalts nicht übereinstimmen. Würden wir bspw. den Inhalt der Variable „kurs in der Variable „zahl
speichern wollen, würden wir einen Informationsverlust erleiden.¹⁵
int zahl = 1.37241;
Da „int zahl nur natürliche Zahlen speichert, würden die Nachkommastellen von „double kurs
verloren gehen. Da die meisten Kurse der Währungen, Indizien und Aktien aus Dezimalzahlen bestehen, kann so ein Informationsverlust zu großen Schwierigkeiten führen.
Sie sollten als Trader und Entwickler wissen, ob ihr Broker Preise mit 4 oder 5 Nachkommastellen liefert. Dies hängt meisten damit zusammen, ob Sie Micro-Lots oder Mini-Lots kaufen können. Können Sie Micro-Lots (0.01 Lot) kaufen, dann haben Sie höchstwahrscheinlich 5 Nachkommastellen. Ist die kleinste handelbare Positionsgröße 0.1 (Mini-Lot), so werden ihre Preise vermutlich 4 Nachkommastellen besitzen. In MetaTrader4 spricht man nicht von Pips, sondern von Basispunkten (BP). Diese Basispunkte müssen in einem Integer Datentyp angeben werden. Für Broker mit 4 Nachkommastellen ist ein Basispunkt äquivalent einem Pip. Bei Brokern mit 5 Nachkommastellen ist ein Basispunkt gleich einem Zehntel von einem Pip (0,1 Pip). In diesem Buch gehen wir von einem Broker mit 5 Nachkommastellen aus. Wir werden also alle Pip-Angaben mal zehn nehmen müssen. 5,4 Pips würden 54 BP entsprechen und 120 Pips 1200 BP usw.
Wichtig: Da die Variablen vom Datentyp string ziemlich lange werden können, ist es von wichtiger Bedeutung zu beachten, dass man keinen Zeilenumbruch im Quellcode einbaut. Möchte man jedoch aus Übersichtsgründen einen Zeilenumbruch im Quellcode einbauen, so muss man beachten, dass die MQL4-Programmiersprache die Zusammensetzung des Textfeldes nicht auf mehrere Zeilen mitverfolgt. Teilt man also die Zusammensetzung des Textfeldes in mehrere Zeilen auf, so muss man jede Zeile so behandeln als wäre sie der Anfang. Diese Problemstellung lässt sich mit einer Differenzierung besser darstellen¹⁶.