MetaTrader 5 herunterladen

Erstellen eines Automatischen Handelssystems

26 Januar 2016, 09:21
Rustem Bigeev
0
310

Einführung

Sie müssen zugeben, dass es verlockend klingt - Sie werden stolzer Besitzer eines Programms, das für Sie innerhalb von Minuten ein profitables Automatisches Handelssystem (AHS) entwickeln kann. Alles was Sie machen müssen, ist die wünschenswerten Eingaben und die Eingabetaste drücken. Und - hier ist es, Sie testen Ihr AHS und erwarten Sie positive Auszahlungen. Während andere Menschen tausende Stunden investieren, um dieses einzigartige AHS zu entwickeln, das sie "fürstlich bedient", klingt diese Aussage, gelinde gesagt, ziemlich gewagt.

Auf der einen Seite sieht dies ein wenig überlebensgroß aus... Allerdings, nach meiner Meinung, kann dieses Problem gelöst werden. Wir alle wissen, dass die Art der Marktschwankungen sich ständig ändert, während die Werkzeuge, die von Tradern verwendet werden, sich in der Regel wenig an die variierenden Bedingungen anpassen. Dies resultiert objektiv daraus, vor der Anpassung, dass jemand eine klare Idee davon haben muss, was er anpasst. In den meisten Fällen können wir nicht klar definieren was uns umgibt, um ein ausgeklügeltes angemessenes Verhaltensmuster zu erstellen.

Bezieht man es auf die Erstellung von Algorithmen unter Unsicherheiten, wie kann dann ein Blinder (ein Mensch), einem anderen Blinden (ein Computer) sagen wo es lang geht? Andererseits, alles in dieser Welt wiederholt sich früher oder später. Es ist diese Tatsache, die den meisten AHS zugrunde liegt. Ich beziehe mich nicht auf die Anpassung an variierende Bedingungen am Markt. Ich würde lieber Geduld und die Fähigkeit zu warten bemühen, bis der Moment, der in der Vergangenheit statistisch annehmbare Ergebnisse gebracht hat, zurückkommt.


Für wen sind Automatische Handelssysteme?

Man ist versucht zu antworten: AHS sind für Trader, die nicht wissen welche Operationen sie am Markt ausführen sollen. Ich meine, wenn ein Trader weiß was er tun muss, ist die Verwendung eines AHS nicht notwendig. Aber das liegt außerhalb des Bereichs dieses Artikels. Gleichzeitig, wenn ein Mensch immer weiß was zu tun ist, ist es kein Mensch.

Das ist ein Scherz, natürlich. Allerdings ist es das, warum wir uns manchmal blind fühlen, wie in totaler Dunkelheit. So sorgt die Natur für einen Menschen und erstellt Zyklen für solche Situationen der Unsicherheit. Wir können den Wechsel von Tag und Nacht als einen offensichtlichen Zyklus betrachten. Es ist Allgemeinwissen, dass die Nacht dem Tag folgt und umgekehrt. Wir können auch einfach sehen, dass der Tag vorüber ist - es beginnt dunkel zu werden. Es sit ungefähr die gleiche Situation am Markt. Wenn wir eine klassische Seitwärtsbewegung sehen, dann bedeutet dies, dass ihr sicher ein Trend folgen wird. Und umgekehrt, wenn wir einen Trend im Chart sehen, wird sicher eine Seitwärtsbewegung oder ein gegenteiliger, aber schwächerer Trend folgen.

Mit anderen Worten, um ein angemessenes Marktverhaltensmuster für die Zukunft zu erarbeiten, müssen wir den aktuellen Zustand des Marktes klar definieren und klassifizieren. Wie die Praxis zeigt, ist dies der Punkt, der die Herausforderung darstellt. Jeder Trader hat seine eigene Idee, in welchem Zustand der Markt sich gerade befindet. Dies wird dadurch bestimmt, dass jeder das Chart nach seiner eigenen Sicht auf die Zeit beobachtet. Aber zur gleichen Zeit, wenn wir den gesamten Bestand an Trader mit ihrem Zeitperspektiven aufteilen, wird sich herausstellen, dass das meiste Geld den Tradern zufällt, die für einen Zeitraum arbeiten (investieren in das Öffnen von Positionen), von einem halben Jahr oder mehr.

Wenn es anders wäre, würden wir niemals Trends über mehrere Jahre sehen. Die Besonderheit der Finanzmärkte selbst definiert diesen Maßstab. Das kommt daher, weil, wenn wir die Investitionszeit in offenen Positionen drastisch verkürzen und in größere Volumen und kürzere Zeiträume investieren, der Markt entweder einfach stirbt oder illiquide wird. So ist das Arbeiten in einem solchen Markt eine Art der Wohltätigkeitsarbeit. Also müssen große Betreiber bei der Bildung einer Position die Zeiträume verlängern, um mehrere Wochen und sogar Monate. Beziehungsweise, eine große Position kann auch nicht auf einmal geschlossen werden.

Obwohl der Devisenmarkt mit Volumina von 3-4 Billionen US-Dollar an Tag arbeitet, entsteht die überwiegende Menge dieser Volumina durch die Verwendung von Hebelwirkung. Das bedeutet, dass offene Positionen beim Schließen getauscht werden, und der tatsächlich verwendete Geldbetrag viel kleiner ist. Wenn jemand beschließt eine Währung durch direkte Umwandlung zu tauschen, kann dieser Vorgang nicht durch ein umgekehrtes Tauschgeschäft (Swap) abgedeckt werden. Also muss man jemanden finden der das Risiko abdeckt, was zu einen Multiplikatoreffekt ergibt.

Das Bilden solcher offenen Positionen mit einem Volumen von "nur" mehreren Milliarden Dollar können den Markt ernsthaft "bewegen". Solche Volumen sind sehr normal für Pensions- oder Hedgefonds, die nicht auf Differenzen spekulieren müssen. Sie suchen einfach nach profitableren Zinsinstrumenten, und wenn sie diese gefunden haben, investieren sie in diese für einen Zeitraum von einem Jahr oder mehr. Der sich ergebende Währungsunterschied kann als ein Extra-Bonus berücksichtigt werden.

Alles obere zusammengefasst, können wir definieren, dass schnelle, praktisch unvorhersehbare Schwankungen während einer Seitwärtsbewegung, beginnen als direkte Folge eines großen direkten Wechselvorgangs. Der Trend selbst resultiert aus diesen Vorgängen, weil Market Maker beginnen die erhaltenen Risiken abzudecken und ihre Positionen in die gleiche Richtung eröffnen. Je länger eine Seitwärtsbewegung anhält (je größer ist die Position und der Zeitraum den sie bildet), umso stärker wird der folgende Trend sein.


Marktmuster

So sehr große Betreiber ihre Maßnahmen in Bezug auf Wechselvorgänge verstecken, die letzteren werden früher oder später sichtbar. Eine andere Sache ist es, wenn ein gewöhnlicher Trader versteht was am Markt passiert. Es ist zum Vorteil großer Betreiber - ihre Aktionen so lange wie möglich zu verdecken, bis sie abgeschlossen sind. Es ist zum Vorteil der kleinen (und weniger kleinen) Trader - solche Vorgänge so früh wie möglich zu erkennen, um im Voraus profitable Positionen daraus zu erstellen. Wie auch immer, das bilden einer großen Position ist ein komplizierter und langwieriger Prozess, z.B. muss alles im Voraus bis ins Detail berechnet und abgeschätzt werden.

Es ist eine Tatsache, dass die Vorschriften zum Bilden großer Positionen noch immer Vorschriften sind, die bestimmte Regeln erfüllen, die das Erkennen solcher Vorgänge ermöglichen, zumindest während der Phase ihrer Durchführung, nicht im Nachhinein. Dies ist es, was allen Marktmustern (oder Pattern) zugrunde liegt. Bestimmte Vorgänge werden als bestimmte Muster im Kurs-Chart wiedergegeben. Um eine detaillierte Analyse von Marktmustern zu beginnen, wäre es sinnvoll zu versuchen zu erfahren, was diese tatsächlich darstellen und was wir von ihnen wollen. Als anfängliches Beispiel können wir Marktmuster nehmen, die in klassischen Büchern der technischen Analyse beschrieben sind.

Zum Beispiel, Marktmuster wie "Double Top/Bottom", "Kopf und Schulter", "Dreieck", usw. sind alles Marktmuster, da sie, nachdem sie auf dem Chart gebildet wurden, gefolgt werden von einer bestimmten, zu erwartenden Kursbewegung. Somit können Marktmuster wie folgt beschrieben werden:

Ein Marktmuster ist eine bestimmte Zeichnung auf dem Kurs-Chart, gefolgt von der Kursbewegung in die erwartete Richtung und für den erwarteten Abstand.

Ich würde hinzufügen - in den meisten statistischen Fällen

Wenn wir Kurs-Charts nur betrachten, können verschiedene Marktmuster visuell erkannt werden, trotz vorhandener Fehler. Wenn es jedoch um den Bezug auf AHS geht, müssen wir mathematische Methoden verwenden, weil Computer Genauigkeit lieben und Unsicherheit nicht vertragen.


Sauberkeit von Marktmustern und Prognosefähigkeit

Jedes Marktmuster kann in einigen mathematischen Begriffen beschrieben werden. Je mehr Parameter in der Beschreibung des Marktmusters verwendet werden, umso sauberer wird es und umso leichter ist es in der Zukunft zu erkennen. Andererseits, vor dem Beginn Marktmuster mathematisch zu beschreiben, wäre es sinnvoll diejenigen zu wählen, die in den meisten Fällen die erwarteten Ergebnisse bringen. Allerdings gibt es hier einige Schwierigkeiten.

Wie sollen wir also die Muster definieren und auswählen? Beim Nachdenken darüber fand ich einige Assoziationen zu anderen Themen. Betrachten wir zum Beispiel einen Pferdezüchter, der Rassepferde züchtet. Er oder sie weiß definitiv aus den bisherigen Erfahrungen, welche Voraussetzungen erfüllt werden müssen um ein Siegerpferd zu züchten. Zum Beispiel müssen die Eltern des Pferdes und andere Vorfahren auch reinrassige Rennpferde sein. Unterbringung, Futter und Training müssen ebenfalls besondere Bedingungen erfüllen. Nun, wenn der Züchter alle Voraussetzungen erfüllt, von denen die meisten seine oder ihre Erwartungen erfüllen

In den Marktbedingungen sind diese Anforderungen unser Marktmuster, das unsere Erwartungen in der Zukunft erfüllen muss. Der einzige Unterschied ist, dass ein Trader nicht in der Lage ist diese Anforderungen selbst zu erstellen. Aber er ist in der Lage zu warten, bis die Anforderungen auftreten. Unter Anwendung der obigen Aussagen, müssen wir bestimmen welche Muster gewählt werden sollten, um mathematisch erklärt zu werden und, am wichtigsten, wie sie früh erkannt werden. Es wäre sinnvoll durch Widerspruch zu handeln. Ich meine, wir bestimmen zuerst unsere erwarteten Ergebnisse, und dann analysieren wir Bedingungen, die solche Ergebnisse in der Vergangenheit geliefert haben.

Zum Beispiel würden wir gerne 100 Pips pro Trade erhalten. Deshalb benötigen wir solche Kursbewegungen, die 100 Pips + Spread + Notfallreserve (lassen wir es 30-35% sein). Es ist sehr wünschenswert, in diesem Fall, dass die Kursbewegungen ins Plus laufen und keine tiefen Korrekturen enthalten. Es wäre auch sinnvoll Marktmuster unter der Verwendung mathematischer Instrumente zu beschreiben, die normalerweise auch von Tradern verwendet werden. Die verwendeten Indikatoren und deren eingegebenen Werte sollte vorher festgelegt werden. Weitere Vorgänge können wie folgt beschrieben werden:

  1. Wählen und markieren der Bereiche im Chart, die unsere Anforderungen erfüllen, nämlich Kursbewegungen von 130-140 Pips,
  2. bestimmen von Punkten/Bereichen wo diese angefangen haben,
  3. mathematisch den Punkt erklären, an dem der Impuls begonnen hat,
  4. versuchen gemeinsame Werte von Parametern in den erhaltenen Erklärungen zu finden.

Wenn die gemeinsamen Parameter gefunden sind, ist es sehr gut möglich diese als Basis für ein Marktmuster zu verwenden. Wenn jede Situation einzigartig aussieht, kann es sinnvoll sein Indikatoren zu wechseln, oder nach besseren Parametern für die bestehenden zu suchen.

Die nächste Stufe ist das Backtesting des erhaltenen Marktmusters. Bei dieser Stufe kann es sich herausstellen, dass der Kurs unter den gleichen Bedingungen nicht immer bis 130-140 Pips geht. Manchmal erreicht er das Niveau nicht, und manchmal übersteigt er ihn deutlich. Also müssen Sie die Menge der Fälle betrachten, in denen Ihr Muster das erwartete Ergebnis liefert, und die Fälle die als statistischer Fehler angesehen werden können. Wenn die statistischen Fehler ein bestimmtes Niveau übersteigen, müssen wir zusätzliche Parameter eingeben, um das Muster zu beschreiben, um unsere Fälle entsprechend dem Vorhaben zu verfeinern. Dies ist also, wie wir ein Marktmuster für unsere bestimmten Zwecke (100 Pips Änderung pro Trade) beschreiben.

Wenn wir eine solche Beschreibung haben, können wir ein AHS erstellen, das die Bildung des angegebenen Marktmusters feststellt und ein Signal gibt um einen neuen Trade zu starten. Meiner Meinung nach, ist die schwierigste Sache hierbei, dass alle Muster nach Daten aus der Vergangenheit gebildet werden, wodurch niemand deren Verhalten in der Zukunft voraussagen kann. Zuchtpferde zeugen manchmal schlechte Hengstfohlen.

Unsere letzte Möglichkeit ist weiter zu testen. Das bedeutet, wenn Sie ein zufriedenstellendes Ergebnis mit historischen Daten erhalten haben, beginnen Sie mit dem Trading und beobachten weiter die statistischen Parameter über die entstandene Methode. Sobald die Ergebnisse Sie nicht mehr zufriedenstellen, müssen Sie alles neu berechnen und neu beschreiben.


Automatisierung der AHS-Erstellung

Lassen Sie uns am Ende darüber nachdenken, ob es möglich ist die Auswahl und Beschreibung eines Musters zu automatisieren, um es einem AHS zugrunde zu legen. Technisch gesehen, sehe ich hier keine ernsthaften Schwierigkeiten. Wie ich bereits geschrieben habe, beginnt die Beschreibung eines Marktmusters mit der Definition von Zielen. Dann wählen wir in der historischen Datenbank Situationen, welche die vorgegebenen Kriterien erfüllen.

Ich denke ein Programmierer mit ein wenig Erfahrung, ist in der Lage die Impulse aus den historischen Daten zu wählen und diese zu registrieren. Aber die nächste Stufe, in Bezug auf die Beschreibung der gewählten Situationen, kann einen frischen Ansatz und viel Erfahrung erforderlich machen. Bei der Erklärung eines Punkt/Bereichs einer Impulsbewegung wird es notwendig eine riesige Menge Indikatoren zu durchsuchen, mit vielfältigen Kombinationen aus Parametern. Je mehr Indikatoren mit ihren Parametern in die Erklärung inbegriffen sind, umso exakter wird das Muster beschrieben werden, und umso einfacher wird es Marktsituationen herauszufiltern, die die Beschreibung nicht vollständig erfüllen.

Später, wenn die gesamte Vielzahl an Parameters den Punkt/Bereich beschreibt, in dem die Impulsbewegung beginnt, behalten wir nur diejenigen, die sich in den meisten ausgewählten Fällen wiederholen, um sie in der Beschreibung des Musters zu verwenden.


Fazit

Mit anderen Worten, dieser Vorgang kann automatisiert werden. Die Sache dabei ist, dass ich persönlich nicht weiß, wie viel Zeit dies beanspruchen wird. Das kommt daher, weil ich selbst kein echter Programmierer bin, obwohl ich versucht habe einer zu sein. Ich möchte jedem vorschlagen, der an diesem Problem interessiert ist und an der Lösung beteiligt sein möchte, ein Handelssystem-Labor zu erstellen und Bemühungen und Erfahrung zu kombinieren, um ein positives Ergebnis zu erhalten.

Als anfängliches Ziel, können wir versuchen einen Algorithmnus aus ausgesuchten Marktsituationen mit vorgegebenen Parametern zu erstellen. Wenn diese Aufgabe gelöst ist, können wir mit der Entwicklung eines Algorithmus aus einer Marktmuster-Beschreibung beginnen.

Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/1426

Verwendung der Crashlogs, um eigene dll einzurichten 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.

Mein erster Gral Mein erster Gral

Es werden die häufigsten Fehler betrachtet, die Programmieranfänger beim Testen ihrer "superprofitable" Handelssystems betreffen, die sie erstellt haben. Es werden Beispiele gegeben, die beim Testen fantastische Ergebnisse geben, aber im wirklichen Handeln führen nur zu Verlusten.

Haltepunkte im Tester: Es ist möglich! Haltepunkte im Tester: Es ist möglich!

Dieser Artikel befasst sich mit Haltepunkt-Emulation beim Durchlaufen des Testers, Debug-Informationen werden angezeigt.

Test Visualisierung: Handelshistorie Test Visualisierung: Handelshistorie

Beginnend mit Build 196 bietet das MetaTrader 4 Client Terminal eine Test-Visualisierungsfunktion. Sie ermöglicht das Kontrollieren von Expert Advisor Tests auf einem völlig neuen Niveau. Nun kann der Trading-Programmierer jede Aktion von seinem oder ihrem Expert Advisor beobachten, durch prüfen seiner Operationen in der Historie!