English Русский 中文 Español 日本語 Português
Ein Expert Advisor auf Bestellung gemacht. Handbuch für einen Trader

Ein Expert Advisor auf Bestellung gemacht. Handbuch für einen Trader

MetaTrader 4Beispiele | 28 Januar 2016, 13:54
1 934 0
Andrey Khatimlianskii
Andrey Khatimlianskii

Einführung

Nicht alle Trader sind Programmierer. Und nicht alle Programmierer sind wirklich gut. Also, was sollte getan werden, wenn Sie Ihr System automatisieren müssen und keine Zeit und Lust haben MQL4 zu studieren? In der Regel besucht man das Forum und erstellt ein Thema, wie "Ich brauche einen Programmierer":

Dieser Artikel ist vor allem für diejenigen geschrieben, die Hilfe bei der Erstellung eines Expert Advisor benötigen. Hier finden Sie Kontaktinformationen mit EA-Programmierern, Empfehlungen wie Sie diese kontaktieren und Beschreibungen der häufigsten Probleme.


Was sollte vor der Bestellung eines Expert Advisor getan werden?

Bevor Sie nach einem Programmierer suchen, stellen Sie sicher, dass Ihre Strategie rentabel ist. Bezahlen Sie nicht für einen EA der keinen Profit erbringen wird. Sie können es manuell machen, indem Sie historische Daten durchsuchen, oder durch mentales Trading, was in der Tat sehr schwierig ist. Es kann auch mit einem manuellen Tester gemacht werden, beschrieben in dem Artikel Testing Visualization: Manual Trading gemacht werden. Die ehrlichsten Ergebnisse können mit Trading auf einem Demokonto oder einem Mini-Konto erzielt werden, aber dies benötigt mehr Zeit und, wahrscheinlich, Geld. Beim testen einer Stratege, beachten Sie dass:

  • der Markt ändert sich ständig und ein korrektes Verhalten von Indikatoren in der Vergangenheit garantiert nicht, dass es in echtem Trading ausreichend ist,
  • Einige Indikatoren zeichnen Balken auf bereits gebildete Balken. Erfolgreich platzierte Pfeile auf Preisextreme gehören zur Vergaangenheit. In echtem Trading werden sie erst nach mehreren Balken sichtbar. Zum Beispiel Signale durch Fractals werden mit einer zwei-Balken Verzögerung angezeigt, aber nur, wenn mehr als zwei Balken gebildet wurden (in einen Stunden-Chart sind dies zwei Stunden). Verwenden Sie keine Indikatoren, deren Funktionsweise des Algorithmus Ihnen unbekannt ist. Das kann Sie zu schlechten Ergebnissen führen,
  • Es gibt Indikatoren, die, bewusst oder unbewusst, in die Zukunft schauen. Zum Beispiel der einfache Moving Average mit einer negativen Verschiebung, zeigt rechtzeitig Markt-Pivots anzeigen. Aber nur bezogen auf die Vergangenheit...

Viele Fehler dieser Art können durch das testen einer Strategie im Echtzeit-Modus erkannt werden. Aber dieser scheinbar zuverlässige Test kann keine totale Übereinstimmung mit echtem Trading garantieren, weil Demo- und Live-Konten einige Unterschiede haben:

  • die Geschwindigkeit der Orderausführung auf einem Demokonto ist immer höher als auf einem Live-Konto. Bereiten Sie sich darauf vor, dass Ihre Live-Position erste mehrere Minuten nach dem Senden der Order eröffnet wird. Das wird eine langfristige Strategie nicht beeinflussen, wird Ihr tägliches Trading aber vollständig verderben,
  • bei einem Live-konto können sich die Handelsbedingungen (Spread, Abstand zu Stop-Ordern, Margin-Call Niveau usw.) während des Trading ändern. Zum Beispiel vor der Veröffentlichung von News oder vor Feiertagen. Wenn Sie auf einem Demokonto testen, ist es sehr unwahrscheinlich auf solche Überraschungen zu treffen, aber vergessen Sie nicht diese zu berücksichtigen, wenn Sie die Effektivität Ihrer Strategie einschätzen..

Und vergessen Sie nicht, dass echtes Geld wirklich echtes Geld ist, und wie es sich von der Einstellung bei einem Demokonto unterscheidet. Ein Expert Advisor kann einen großen Teil der Emotionen beim Trading beseitigen. aber er kann Ihre möglichen Fehler nicht vollständig beseitigen. Trading auf einem Demokonto, strikt nach einer Strategie, ändert Ihre Pläne nicht und trifft keine emotionalen Entscheidungen. Ihr zukünftiger EA ist nur ein Programm und wird strkt nach Regeln arbeiten. Wenn Sie wissen möchten welche Ergebnisse Ihr EA erreichen kann, muss Ihr Tradingstil der gleiche wie der des EA sein - präzise und diszipliniert.

Wenn Ihre Strategie nach diesen Test noch einen recht guten Profit zeigt, genug um alle Überraschungen beim echten Trading abzudecken, können Sie zur nächsten Stufe gehen - Formulierung eines Algorithmus.


Algorithmus Formulierung

Wenn Sie lange genug mit Ihrer Strategie gehandelt haben, wird es für Sie einfach sein einen Algorithmus zu formulieren. Alles was Sie tun müssen ist Regeln aufzulisten, nach denen Ihr EA traden soll.

Beachten Sie, dass das Programm von einer Person geschrieben wird, die keinerlei Ahnung von Ihrer Strategie hat. Sie sollten die kleinsten Details festlegen: Parameter von Indikatoren, Abstand zu Stop-Ordern, maximale Anzahl geöffneter Positionen, Trailing Stop Algorithmus, usw. Ihr Anforderungsprofil muss die Beschreibung der Reaktion auf jedes wichtige Ereignis enthalten: Aktivierung einer Stop-Order, Auftreten eines wiederholten Signals wenn die Position bereits existiert, Start eines EA nach einer Verbindungstrennung, usw.

Sie müssen verstehen, dass Ihr PC nicht raten, abschätzen oder unabhängige Entscheidungen treffen kann, er handelt einfach nach unseren Regeln. Wenn eine Situation auftritt, für die keine Reaktion in dem Algorithmus beschrieben ist, wird Ihr EA nichts machen.

Betrachten wir ein Beispiel was passieren kann, wenn ein Anforderungsprofil nicht sehr präzise und detailliert ist. Der folgende Dialog zeigt den Vorgang einer EA-Entwicklung durch einen Programmierer, nach dem Algorithmus eines Traders. Ich stelle absichtlich absurd dumme Charaktere dar. Dies wird die Aufmerksamkeit auf Fehler betonen. Zum besseren Verständnis können Sie Beispiele von allen EAs herunterladen und sie zusammen mit dem Trader testen.

Trader:
Hallo! Ich möchte einen Expert Advisor bestellen. Er soll Positionen öffnen, wenn MA(99 und MA(18) sich kreuzen. Wenn der schnelle den langsamen aufwärts kreuzt, soll eine Buy-Position eröffnet werden. Wenn umgekehrt - soll eine Sell-Position eröffnet werden. Wie viel kostet das?

Programmierer:
Um die Kosten zu definieren benötige ich ein detailliertes Anforderungsprofil. Ungefähr - $25.

Trader:
Ich habe alles in dem vorherigen Schreiben aufgeschrieben! Es sind zwei Moving Averages, wenn der schnelle (mit der Periode 9) den langsamen (mit der Periode 18) aufwärts kreuzt, wird eine Buy-Position eröffnet. Wenn andersrum, wird eine Sell-Position eröffnet.

Programmierer:
Ok, ist klar. Hier ist Ihr Expert Advisor - Sample_1.mq4.

Trader:
Was haben Sie geschrieben? Das ist kein EA! Warum sind da so viele offene Positionen? Warum werden sie nicht geschlossen? Sind Sie wirklich ein Programmierer, oder was?

Programmierer:
Die Anzahl der Positionen ist gleich der Anzahl der Überkreuzungen. Testen Sie Ihren EA im Visuellen -Modus, da werden Sie alles sehen - eine Position wird bei jedem Überkreuzen eröffnet. Wenn es aufwärts kreuzt wird eine Buy-Position eröffnet. Wenn es abwärts ist, wird eine Sell-Position eröffnet. Ihre Spezifikation hat nicht ein Wort über das Schließen von Positionen enthalten.

Trader:
Ich vergaß es Ihnen zu sagen: Wenn eine Position offen ist, soll sie bei gegenteiliger Überkreuzung geschlossen werden - nur eine Position am Markt kann offen sein. Und für jede offene Position soll ein Stop Loss mit einem Abstand von 50 Punkten platziert werden.

Programmierer:
Sehen Sie sich die zweite Version an - Sample_2.mq4.

Trader:
Warum ist hier eine offene Buy-Position? Hier hat nichts gekreuzt!

Programmierer:
Dort war eine Überkreuzung, aber sie ist verschwunden. Das Chart zeigt die Indikatorwerte auf bereits gebildeten Balken und Sie können Änderungen im Entwicklungsprozess der Balken nur mit der Verwendung des visuellen Test-Modus oder im realen Betrieb sehen. Glauben Sie mir, es gab einen Schnittpunkt im Moment des Öffnens der Position.Wenn Sie möchten, können wir den EA so machen, das die Position anhand von fertig gebildeten Balken geöffnet werden. In diesem Fall werden alle Signale im Chart sichtbar sein. Viele Trader machen das gleiche.

Trader:
Lassen Sie es uns versuchen. Und kann ich die Parameter der Moving Averages optimieren und der der Stop Loss und Take Profit Ebenen?

Programmierer:
Hier ist die dritte Version - Sample_3.mq4: suche nach gebildeten Balken ist gemacht (1. and 2.); Parameter der Moving Averages und die Werte von Stop Loss und Take Profit sind in externen Variablen festgelegt.Prüfen Sie es.

Trader:
Jetzt ähnelt es dem, was ich wirklich wollte. Aber wenn ich mehrere EAs starte, handelt nur einer von ihnen. Und manchmal schließen sie alle anderen Positionen!

Programmierer:
In der vierten Version (Sample_4.mq4) habe ich eine Unterteilung von Ordern anhand der Magic Number hinzugefügt. Wenn Sie mehrere EAs auf dem Chart von einem Symbol starten, setzen Sie unterschiedliche Wert für die Variable MagicNumber für jeden von ihnen ein.

Trader:
Jetzt ist es wirklich ok!

Also, wie muss das Anforderungsprofil aussehen, nach dem ein Programmierer die vierte Version des EA bereits im ersten Versuch erstellen kann? Lassen Sie uns versuchen die Anforderungen an einen EA zu formulieren:

  • Der EA solle nur seine eigenen Positionen steuern und sollte nicht in Positionen eingreifen, die manuell oder von anderen EAs geöffnet wurden.
  • Wenn es keine offenen Positionen des EA gibt:
    • wenn der schnelle Ea den langsamen aufwärts kreuzt, wird eine Buy-Position geöffnet,
    • wenn der schnelle EA den langsamen abwärts kreuzt, wird eine Sell-Position geöffnet.
  • Wenn geöffnete Positionen des EA vorhanden sind:
    • wenn es eine Buy-Position ist:
      • wenn der schnelle MA den langsamen abwärts kreuzt, wird die Buy-Opsition geschlossen und eine Sell-Position eröffnet,
    • wenn es eine Sell-Position ist:
      • wenn der schnelle MA den langsamen aufwärts kreuzt, wird die Sell-Position geschlossen und eine Buy-Position eröffnet.
  • Parameter des schnellen und des langsamen MA (Periode, Zeichenmethode, verwendeter Preis) müssen in externen Variablen eingestellt werden.
  • Anzeigewerte von der Chart-Periode genommen, in der der EA arbeitet.
  • Für die Schnittpunkt-Erkennung werden der erste und der zweite Balken verwendet.
  • Die Positionsgröße wird durch eine externe Variable bestimmt.
  • Wenn eine Position offen ist, werden Stop Loss und Take Profit in einem Abstand platziert, der in externen Variablen festgelegt.
  • Es sollte eine Option zum Abschalten von Stop Loss und Take Profit vorhanden sein.
  • Wenn ein Fehler auftritt, soll der EA ein Fenster mit der Fehlerinformation anzeigen und den Versuch beim nächsten Tick wiederholen.

Dies ist die einfachste Aufgabe. Solche einfachen Systeme sind im echten Leben sehr selten, also achten Sie auf alle Details, wenn Sie die Liste der Anforderungen erstellen.

Zweifellos sind solche dummen Trader und Programmierer sehr selten. Aber, glauben Sie mir, es gibt sie. Es ist besser auch scheinbar offensichtliche Einzelheiten anzugeben, als später mit dem Programmierer zu streiten. Die letzte Sache, die vor der Suche nach einem Programmierer gemacht werden kann, ist Trading nach einer "Liste von Regeln" - wenn Sie traden, machen Sie nur was in der Liste steht.

Schließlich können Sie nach Ihrem "Regelwerk" handeln, bevor Sie anfangen, nach einem Programmierer zu suchen. Halten Sie es sich vor Augen und gehen Sie nur so vor, wie es im Regelwerk steht. So sehen Sie alle Einzelheiten, die Ihnen bei der Formulierung des Algorithmus entfallen sein könnten. Auf diese Weise können Sie mögliche Kosten für die Verbesserung des EA vermeiden.


Einen Programmierer wählen

Für mehrere Jahre der Existenz der Programmiersprache MQL4 tauchten ziemlich viele Expert-Entwickler auf. Viele von ihnen sind ständige Besucher der Webseite mql4.comCodeBase, schreiben Artikel und kommunizieren im Forum, helfen Neulingen und verbessern deren Fähigkeiten.

Viele von ihnen haben Live-Konten und traden mit Expert Advisors und manuell.Es gibt keine Datenbanken (zumindest habe Ich keine gesehen) mit EA-Entwicklern, wo man alle benötigten Informationen über einen MQL4-Programmierer erhalten könnte. Und man kann eine solche Datenbank auch nur schwer erstellen, weil viele EA-Entwickler bleiben nicht so lange in diesem Geschäft.

Dieser Artikel soll Ihnen helfen einen Programmierer zu finden. In Anhang 1, Kontaktinformationen von EA-Entwicklern von mql4.com, können Sie alle verfügbaren Informationen finden.

Wenn Sie einen Programmierer für die Umsetzung Ihres Expert Advisor auswählen:

  • fagen Sie - Trader, die bereits mit einem EA-Programmierer gearbeitet haben,
  • lesen Sie in Forenthemen über die umgesetzte/nicht-umgesetzte EAs,
  • sehen Sie sich Profile autorisierter Benutzer an - viele von ihnen hinterlassen Informationen in ihren Profilen,
  • kontaktieren Sie Programmierer persönlich - per E-Mail oder ICQ.

Preise und Arbeitsbedingungen können voneinander abweichen. Einige von ihnen auf einer Vorkasse-Basis und senden den Quellcode nicht, bis sie die vollständige Zahlung erhalten haben, andere schicken möglicherweise den Code als "Geschenk" und vertrauen auf Ihre Ehrlichkeit. Es gibt EA-Programmierer, die Ihnen den Quellcode nicht übergeben und den EA nur auf einem Konto laufen lassen. Also, klären Sie alle Einzelheiten, bevor Sie Ihre Entscheidung treffen.

Kommunizieren, verhandeln. Es gibt eine Vielzahl an Varianten, wählen Sie die richtige.


Testen eines Expert Advisor

Nachdem Sie die Arbeitsbedingungen erörtert haben und den Algorithmus genehmigt, wird ein Programmierer einen EA schreiben und Ihnen zum Testen schicken. Ihre Aufgabe ist es sicherzustellen, dass der EA den festgelegten Anforderungen entspricht.

Zuerst testen Sie in einem Strategietester unter Verwendung verschiedener Parameter - es ist die schnellste Art den Algorithmus zu prüfen. Sie können ein Chart öffnen, in dem der EA getestet wird, und die Ergebnisse visuell prüfen.

Sollte Ihr EA nicht nur im Moment einer Balkenöffnung, sondern auch während seiner Bildung agieren, versuchen Sie das Testen im Visuellen-Modus auszuführen - Sie werden die Aktionen des EA bei jedem Tick sehen. Sie sehen die Werte von Indikatoren auf dem Null (aktuellen) Balken, Verschiebung und Auslösen des StopLoss bei starken Kursbewegungen, usw.

Wenn das Testen in dem Strategietester keine Fehler anzeigt, testen Sie Ihren EA in einem Demokonto.

Versuchen Sie mehrere EAs mit unterschiedlichen oder gleichen Parametern zu starten, und traden Sie gleichzeitig mit ihnen. Der EA sollte weiter nach dem Algorithmus arbeiten, unabhängig von dem was passiert. Wenn dort keine Fehler auftreten, können Sie dem Programmierer sagen, dass alles ok ist, und den Handel zum Abschluss bringen.

Aber sehr oft enthält die erste Version eines EA Unstimmigkeiten mit dem Algorithmus, die aus eine Ungenauigkeit bei der Beschreibung oder einem Fehler des Programmierers entstehen - dies ist eine häufige Situation. Kontaktieren Sie einfach den Programmierer, und wenn es wirklich seine Schuld ist, wird er alles in Ordnung bringen. In Ihrer Email geben Sie das Folgende an:

  • was falsch in der Ausführung des EA,
  • EA-Parameter, bei denen der Fehler auftritt,
  • Test-Parameter (Symbol, Zeitrahmen, Modelliermodus, Server, usw.), oder Betriebszeit und Serveradresse, wenn Sie den EA mit einem Demokonto testen,
  • Auszug aus dem Tester-Journal,
  • mehrere Screenshots mit der Problembeschreibung,
  • EA Protokolldateien ('Journal' Registerkarte im Tester oder 'Experten' Registerkarte,, wenn Sie mit einem Demokonto arbeiten).

Wenn Sie alle notwendigen Informationen einfügen, wird der Programmierer den Fehler schnell finden und beheben.

Die übliche Zusammenarbeir impliziert Technische Unterstützung, auch wenn der EA fertig und bezahlt ist. Das bedeutet, wenn ein Fehler auftritt nach einem Monat Betrieb, wird ein Programmierer ihn kostenlos beheben. Es hängt davon ab, was Sie vereinbaren.


Fazit

Das automatisierte Trading wird immer beliebter. Viele Trader vertrauen die Verwaltung ihrer Konten Expert Advisors an oder vollautomatischen Handelsrobotern. Um ein solches Programm zuschreiben, benötigt man besondere Kenntnisse und Erfahrung. Leider haben nicht alle Trader die Zeit und Lust die spezielle Programmiersprache für die Umsetzung ihrer Ideen zu lernen. Dieser Artikel ist ein Versuch die Verbindung zwischen Trader und Trading-Programmierern zu festigen und zu stärken. Ich hoffe, dieser Artikel wird zum Erscheinen guter und zuverlässiger Expert Advisors führen.


Anhang 1. Kontaktinformationen von EA-Programmierern von mql4.com

Dieser Abschnitt enthält Kontaktinformationen von EA-Programmierern, die Mitglieder der mql4.com Community sind. Die Liste wird ständig aktualisiert, und wenn Sie jetzt keinen Helfer finden können, prüfen Sie die Liste späten - wahrscheinlich werden Sie einen finden. Bitte beachten Sie, dass jeder hier Kontaktinformationen hinterlassen kann, auch Betrüger. Es ist nahezu unmöglich die Arbeitsqualität und Ehrlichkeit aller Programmierer zu prüfen. Wenn Sie also mit ihnen gearbeitet haben (erfolgreich oder nicht). hinterlassen Sie bitte Ihren Kommentar zu diesem Artikel, der Ihre Meinung über die Person enthält,, mit der Sie zusammengearbeitet haben - dies wird anderen Tradern helfen die richtige Entscheidung zu treffen.

Wenn Sie ein EA-Programmierer sind und in die Liste der Kontaktinformationen aufgenommen werden möchten, schicken Sie mir diese bitte zu und Sie werden hinzugefügt. Es ist kostenlos und erfordert nur die Erfüllung Ihrer Pflichten, die bei der Bestellung eines EA besprochen wurden. Wenn Beschwerden über Ihre Arbeit in den Kommentaren zu diesem Artikel auftauchen und Sie können die Frage nicht innerhalb einer Woche abklären, werden Sie von der Liste gelöscht. Ich hoffe dies wird selten vorkommen.

Nickname Name e-mail Zusätzliche Informationen
komposter Andrey Khatimlianskii mql@komposter.me
komposterius
211-605-801
Mike Michael Bernardovich mikemb [@] ittportal [.] net
315-165-028
Tel.: +79015453588
michal Michal Rutka mqlservice.com [@] gmail [.] com
michal_rut
Tel.: +31614511749

Jan Klimo jan.klimo [@] gmail [.] com Tel.: +420777288782
fuzzbomb Andrew Young advisor [@] easyexpertforex [.] com www.easyexpertforex.com
giaras Giampiero Raschetti giampiero.raschetti [@] gmail [.] com giaras
5leepless Damian Burrowes sleepless.damian [@] gmail [.] com
Vitovd Witold Wozniak contact [@] mqlsoft [.] com www.mqlsoft.com
vasya_vasya Vasiliy Orlov pr0baproba [@] mail [.] ru 555-485-590
linx Lin Xie linx_mt [@] hotmail [.] com linx_mt

MetaQuotes Software Corp. ist nicht verantwortlich für die Verletzung von Vereinbarungen zwischen einem Trader und einem Programmierer.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1460

Wie man einen Zuverlässigen und Sicheren Handelsroboter in MQL4 entwickelt Wie man einen Zuverlässigen und Sicheren Handelsroboter in MQL4 entwickelt
Der Artikel befasst sich mit den häufigsten Fehlern, die Auftreten bei der Entwicklung und Verwendung eines Expert Advisor. Ein beispielhaftes sicheres automatisches Handelssystem wird auch beschrieben.
Terminal Service Client. Wie man einen Pocket PC zu Big Brothers Freund macht Terminal Service Client. Wie man einen Pocket PC zu Big Brothers Freund macht
Der Artikel beschreibt die Art und Weise der Verbindung eines Remote-PCs mit installiertem MT4-Client Terminal über einen PDA.
Übertragen eines Indikator Code in einen Expert Advisor Code. Abschluss Übertragen eines Indikator Code in einen Expert Advisor Code. Abschluss
Dies ist der abschließende Artikel über das Übertragen eines Indikator Code in einen Expert Advisor Code. Hier verändert der Autor in einem bestimmten Beispiel einen Code eines Expert Advisor so, dass dieser EA in einer einzigen Datei dargestellt wird, ohne den Aufruf benutzerdefinierter Indikatoren.
Übertragen eines Indikator Code in einen Expert Advisor Code. Allgemeine Strukturelle Regelungen von Expert Advisor und Anzeigefunktionen Übertragen eines Indikator Code in einen Expert Advisor Code. Allgemeine Strukturelle Regelungen von Expert Advisor und Anzeigefunktionen
Dieser Artikel befasst sich mit den Möglichkeiten einen Indikator-Code in einen Expert Advisor Code zu übertragen, mit dem Schreiben von Expert Advisors ohne Aufrufe spezifischer Indikatoren und mit dem gesamten Quellcode für die Kalkulation benötigter Indikatorwerte innerhalb des Expert Advisor. Der Artikel vermittelt eine allgemeine Systematik von Expert Advisor Änderungen, und die Idee zum Aufbau einer Anzeigefunktion, basierend auf einem benutzerdefinierten Indikator. Der Artikel ist für Leser gedacht, die bereits Erfahrung mit Programmieren in der MQL4 Sprache haben.