Wie man einen Expert Advisor bestellt und das gewünschte Ergebnis erhält

Andrey Khatimlianskii | 15 April, 2016


Einleitung

Automatisches Handeln erlebt einen neuen Aufschwung - die Veröffentlichung von MetaTrader 5, mit der neuen MQL5, ist abgeschlossen. Er hat sich in der Meisterschaft des Automatischen Handelns 2010 erfolgreich bewährt, und die neue Version der Handelsplattform wird jetzt von Maklern aktiv beworben. Der Vorläufer des MetaTrader 5, - MetaTrader 4 - wird immer noch von Hunderten Maklern und Millionen von Händlern auf der ganzen Welt verwendet.

Doch trotz seiner großen Beliebtheit (oder eher deswegen), hat das professionelle Level des Durchschnittshändlers abgenommen, und wie in vielen anderen Bereich auch - schlägt sich Quantität selten in Qualität nieder. Wenn wir uns automatisches Handeln ansehen (die Verknüpfung von Handeln und Programmieren), ist die Situation sogar noch düsterer: nur sehr wenige Händler haben einen Abschluss als Programmierer, sodass für den Großteil der Menschen, selbst für die, die technisch leidlich versiert sind, die Beherrschung des Programmierens zu einer echten Herausforderung werden kann. Und wir dürfen auch diejenigen nicht außer Acht lassen, die sich schlichtweg für Programmieren überhaupt nicht interessieren. Ihr Leitspruch lautet "wir müssen das tun, was wir am besten können" - und da kann ich ihnen nur zustimmen.

All dies bringt uns langsam dem Thema unseres Beitrags näher. Es gibt eine Nachfrage nach MetaTrader Progammierungs-Dienstleistungen - und sie nimmt deutlich zu. Und wo Anfrage herrscht, besteht auch ein Angebot - das simple Gesetz des Marktes. Und in der Tat gibt es genügend Händler, die ihre Strategie automatisieren wollen und genügend Programmierer, die Geld verdienen wollen. Doch leider führt ihre beiderseitige Kommunikation nicht immer zu gegenseitigem Vorteil - es gibt eine Menge unzufriedener Kunden. Und auch die Programmierer, die es Leid sind, dauernd ihre Konzepte erklären zu müssen, sind nicht wenige.

Dieser Beitrag beschäftigt sich mit den Problemen, die während der Kommunikation "Kunde - Programmierer" entstehen. Er richtet sich in erster Linie an Händler, da sie oft nicht die Erfahrung haben, wie man mit Personen umgeht, die mit einem anderen Mindset funktionieren. Doch zweifellos ist dieser Beitrag auch für Programmierer sehr nützlich, denn jede Beziehung hat zwei Seiten - und der Erfolg eines gemeinsamen Projekts hängt zu gleichen Teilen von allen Beteiligten ab.


Inhalt

  1. Die Idee überprüfen
  2. Sich von Illusionen befreien
  3. Ziele festlegen
  4. Sich auf eine gemeinsame Sprache verständigen
  5. Die Anforderungsspezifikationen vorbereiten
  6. Den richtigen Bewerber/Entwickler wählen
  7. Sich selbst vor Betrug schützen
  8. Die Ergebnisse prüfen
  9. Feedback geben


1. Die Idee überprüfen

Die Idee überprüfenEine der Hauptgründe für einen enttäuschten Kunden ist der Verlust seiner Strategie. Bei einem kompletten Handelssystem, statt nur eines halb-automatischen Expert Advisors oder Indikators, erwartet der Händler nur eines vom Expert Advisor - einen gewinnbringenden Handel.

Und endlich erhält er die so lang ersehnte Nachricht vom Programmierer, startet den Client-Terminal und beginnt mit den Tests... und muss erkennen, wie seine brillante Idee nur zu Verlusten in seinem Depot führt. Er überprüft daraufhin nochmal alle Parameter, aktualisiert die historischen Daten und... sein Depot macht weiterhin Verluste. Und jetzt schreiben einige Händler sofort erboste Nachrichten an den Programmierer (ist ja ganz klar seine Schuld!). Die etwas Geduldigeren überprüfen die Ergebnisse und versuchen selbst herauszufinden, wo das Problem liegt. Das ändert jedoch alles nichts an der Tatsache, dass sich die Idee, an die sie glaubten, als unprofitabel erweist.

Und jetzt gibt es eine Reihe unterschiedlicher Möglichkeiten: Einige Menschen bezeichnen den Programmierer als ungeschickt und entlohnen ihn für seine Arbeit nicht und schauen sich nach einem neuen Programmierer um. Andere beginnen fieberhaft nach Lösungen zu suchen, wie man die Situation bereinigen kann und bitten um "einige kleine Veränderungen" (natürlich kostenlos, sind ja nur ein paar Kleinigkeiten!). Aus Gründen der Fairness muss ich hier auch erwähnen, dass es durchaus auch Kunden gibt, die ihren Fehler akzeptieren und die Verantwortung eben nicht auf den Programmierer schieben. Doch dieses Kapitel richtet sich nicht an sie, sie gehen bereits ziemlich gut selbstkritisch mit sich um.

Was ich hier beschreibe, sind nur die Folgen, und es macht auch keinen Sinn sie einzeln zu analysieren. Stattdessen ist es viel sinnvoller, die Ursachen des Problems zu finden und zu beseitigen. Das Problem liegt darin, dass der Händler zu bequem ist, seine 'tolle' Idee zu verifizieren. Dazu muss man einen beliebigen Intervall an historischen Daten hernehmen und ganz genau, Tag für Tag, beobachten, wie diese Strategie arbeiten würde und welche Ergebnisse sie evtl. bringt. Dies geht leichter und schneller im visuellen Test-Modus (ich bin sicher, dass er bald in MetaTrader5 zur Verfügung steht). Der Test kann jedoch auch in Echtzeit durchgeführt werden - eine oder zwei Wochen Arbeit auf einem Demo-Account.

Und nicht alle Strategien können vor dem Hintergrund historischer Daten getestet werden. Ich weiß aus persönlicher Erfahrung, dass das Überprüfen einiger Ideen echt viel Zeit in Anspruch nimmt. Und mir ist auch klar, dass es manchmal viel leichter ist, für einen Expert Advisor zu bezahlen, anstatt stundenlang mit einem Stift vor den Charts zu sitzen. Doch vergessen Sie nicht, dass das Ergebnis eine ziemlich böse Überraschung für Sie sein kann, wenn Sie eine nicht getestete Idee zur Umsetzung in Auftrag geben!

Nicht vergessen! Der Programmierer ist nicht für die Rentabilität Ihrer Strategie verantwortlich, seine Aufgabe ist es, ein Programm zu schreiben, das mit dem Algorithmus arbeitet, die Sie genehmigt haben.

Der Programmierer kann Ihnen manchmal durchaus die Schwachstellen Ihres Systems aufzeigen (Sie sind ja nicht der erste, der so etwas macht), doch das ist einzig und allein Sache der Kulanz. Er ist in keiner Weise verpflichtet, Sie vor Fehlern zu bewahren oder Sie zu beraten - und er ist ganz sicher nicht dafür verantwortlich, Ihre Idee erst einmal kostenlos zu überprüfen. Daher sollten Sie sich bei der Bestellung eines EA entweder bei Ihrer Strategie vollkommen sicher sein oder wissen, dass es sich hier nur um einen Versuch handelt - und Sie das Ergebnis vermutlich nicht mit seiner Exklusivität umhauen wird.

Daher können wir hier zusammenfassen: Es ist am besten seine Strategie mehrmals zu testen und zu überprüfen, bevor man ihre Umsetzung in Auftrag gibt.


2. Sich von Illusionen befreien

Eschers "Unmögliche Figur"Wir sehen nur das, was wir sehen wollen. Und wir wollen eine Yacht, eine Insel im Meer und einen Koffer voller Geld. Wir betrachten die Charts und sehen nur die erfolgreichen Indikatorsignale. Dann schließen wir die Augen und rechnen schon mal die Nullen vor dem Komma in unserem Account aus... Und unser Programm arbeitet einfach brav auf Grundlage seines Algorithmus, und führt uns alle unsere Illusionen vor Augen.

Die Gründe für die zweitgrößte und häufigste Enttäuschung - Verwirrung und Selbstbetrug. Wenn Sie sich entscheiden, Ihre Idee genau zu überprüfen, dann nehmen Sie diesen Vorgang auch absolut ernst. Denn in dieser Phase können eine Menge Enttäuschungen vermieden werden - setzen Sie einfach die rosarote Brille ab und betrachten Ihre Strategie nüchtern und genau.

Ein Beispiel einer sehr häufig eintretenden Situation: Sie haben im Internet von einer Strategie erfahren (in einem Forum, Blog oder einer Online-Publikation) und beschlossen, dafür einen Expert Advisor zu machen. Sie haben die Charts studiert, die Exaktheit der Berechnungen bewertet und sich dann gedacht - "Cool! Jetzt hab ich ihn endlich - meinen Heiligen Gral!". Die Situation wird noch schlimmer, wenn Sie sich den Super-Indikator, nach dem diese Strategie funktioniert herunterladen (oder sogar kaufen - was Gott verhüten möge). Denn jetzt haben Sie die Illusion, dass 90% der Aufgabe bereits erledigt und nur noch ein paar Kleinigkeiten zu tun sind.

Wenn sich nur die Hälfte unter Ihnen an diesem Punkt eine ganz einfache Frage stellen würden: "Warum hab ich diese Strategie eigentlich im öffentlichen Bereich gefunden" (oder, falls Sie sie gekauft haben: "Warum verkauft der Urheber seine Strategie anstatt dass er sie einsetzt?") - dann hätte ich ganz exakt nur noch die Hälfte Kunden als jetzt... Doch wir glauben an Wunder und überzeugen uns selbst nicht eines Besseren! Schon okay... ich lasse Sie ja in Ruhe! Doch was hält Sie eigentlich davon ab, zu überprüfen, wofür Sie Ihr privates Geld ausgeben wollen?

Im Folgenden finden Sie einige Regeln, die Ihnen vielleicht helfen, Ihren eigenen Illusionen nicht zum Opfer zu fallen - oder den unlauteren Absichten von jemand anderem. Diese Regeln lösen sicherlich nicht alle möglichen Probleme, doch bewahren Sie vor den allerhäufigsten Fehlern.

  1. Seien Sie extrem vorsichtig bei Indikatoren ohne Quellcode!
    • Sie werden noch nicht einmal annähernd verstehen können, wie derartige Indikatoren arbeiten, und niemand kann Ihnen garantieren, dass sie ihr Verhalten nicht in Zukunft ändern.
    • Derartige Indikatoren können alles Möglich enthalten - von Codierungsfehlern, die dann zur Neuzeichnung alter Signale führen oder einem unangemessenen Verhalten bei der Arbeit auf gewissen Instrumenten oder Accountarten, bis hin zu einer absichtlichen Täuschung (das Zeichnen von Signalen auf den historischen Daten, von denen man vorher schon weiß, dass sie erfolgreich sind) oder einer einfachen Beschränkung der Arbeitszeit oder einer Accountzahl.

    Selbst wenn Sie keine Ahnung vom Programmieren haben, können Sie immer einen Programmierer, den Sie kennen, fragen, das Programm mal "kurz zu checken" - einfach, um sicherzugehen, oder kurz vor der Bestellung eines Expert Advisors.

  2. Beobachten Sie die Arbeit der Indikatoren in Echtzeit!
    • Ohne zu wissen, wie ein Indikator online arbeitet, ist es absolut sinnlos, seine Signale in der History zu berücksichtigen - das kann einfach nur ein nettes (doch leider nutzloses) Bildchen ergeben.
    • Buchstäblich alle Indikatoren verändern den Wert auf dem letzten (nicht abgeschlossenen) Bar - das ist ganz normal. Hierbei sollte man auch wissen, dass diese Änderungen auf der History (auf den gebildeten Bars) nicht sichtbar sind - die Indikatordaten, die auf den abgeschlossenen Bars, gezeichnet werden. Das kann also bedeuten, dass die Signale (Pfeile, Kreuzung von Indikator-/Kurslinien) im System u.U. nur beim nächsten Bar nach seinem Auftreten verwendet werden (um eine Position zu öffnen). Versuchen wir jedoch, die Signale (ohne auf das Schließen des Bars zu warten) während des Testens des Expert Advisors zu verwenden, stellt sich heraus, dass es zwar eine Menge Pfeile und Kreuzungen gab (also eben offene Positions), doch dass die meisten, zum Zeitpunkt, wenn sich der Bar schließt, verschwunden sind. Sie sehen zwar die Position auf dem Chart, aber nicht das dazu gehörende Signal - das erscheint nur, wenn man die Bildung des Bars nach verfolgt.
    • Einige Indikatoren verändern u.U. auch den Wert der Bars - nicht nur für den letzten, sondern auch für einige vorherige. Dies ist oft die Folge des Wesens des Indikators (z.B. zur Bildung eines Fraktals müssen sich 2 Bars zu seiner Rechten befinden und der letzte Bereich des ZigZags kann für eine lange Zeit neu gezeichnet werden, bis die Bedingungen eines neuen Bereichs erfüllt sind), doch meistens ist ein derartiges Verhalten ein Beweis für eine absichtliche Täuschung. Viele Indikatoren werden nämlich nur dafür erzeugt, eine wunderschöne Grafik auf historischen Daten zu zeichnen (damit man die Indikatoren verkaufen kann), doch eine Verwendung solcher Indikatoren für den Handel ist praktisch unmöglich.

      Zeigt der Indikator auf der History, die Signale für Kaufen auf den untersten Ebenen, und zu Verkaufen auf den obersten Spitzen, dann ist das kein Hinweis auf einen sehr guten Indikator, sondern ganz genau das Gegenteil - er "sagt einfach nur die Vergangenheit voraus".

    • Es ist in diesem Zusammenhang nicht erforderlich, stundenlang einen Online-Chart zu beobachten - viele Indikatoren können in einem visuellen Testmodus getestet werden. Egal - die zuverlässigste Möglichkeit eines Tests ist, ihn auf einem Demo-Account ablaufen zu lassen und sein Verhalten zu beobachten. Sie können den Indikator an das Chart anheften, ein bisschen warten und ihn abermals anheften (mit den gleichen Parametern). Ist der Indikator "echt" (zeichnet also nicht vorherige Werte erneut nach), dann sollte das Bild auf beiden Kopien des Indikators identisch sein. Falls die neue Kopie des Indikators andere Signale zeigt, braucht man mit der Analyse seiner Signale vor der History gar nicht erst anzufangen.

  3. Prüfen Sie Ihre Strategie auf verschiedenen Intervallen der History!
    • Es passiert oft, dass man unbewusst ein sehr bequemes Intervall (bequem für das System) der History für Tests auswählt. Egal ob der Eintritt durch das Signal des Indikators, ein Orderraster oder eine Mustererkennung erfolgt - es gibt immer einen Intervall auf dem die Strategie Geld abwirft. Doch wenn Sie den Expert Advisor auf allen verfügbaren historischen Daten testen, erkennen Sie die Intervalle mit dem geringsten Erfolg sofort. Versuchen Sie sie selbst zu finden.
    • Wählen Sie ein paar beliebige Intervalle der History. Zum Beispiel: Januar 2008, Oktober 2009 und August 2010 - scannen Sie sie mit einem kurzen Blick und berechnen das Verhältnis an Gewinn und Verlust bringenden Signalen. Versuchen Sie die Qualität der Signale auf anderen Instrumenten und Zeitrahmen festzustellen. Wenn die Idee wirklich einen Kern hat, dann ist die Wahrscheinlichkeit, dass sie unter anderen Bedingungen auch funktioniert, sehr hoch (möglicherweise mit leicht veränderten Indikator-Parametern oder Stop-Levels).
    • Verändern Sie für nur eine einzige Prüfung Ihre Systemparameter nicht. Wenn Sie bei der Betrachtung von August gewisse Indikatorparameter verwenden und sich dann dem September zuwenden und für seine Betrachtung andere Parameter hernehmen (die besser passen) - dann belügen Sie sich nur selbst. Eine solche Prüfung sollte unter absolut identischen Bedingungen erfolgen, denn sonst sehen Sie nur das, was Sie sehen wollen. Damit will ich nicht sagen, dass die Systemparameter immer die gleichen sein müssen - wenn Sie sie "spontan" ändern wollen, müssen Sie allerdings an bestimmte Kriterien für ihre Änderung denken. Schlussfolgerungen aus der Vergangenheit zu ziehen ist ein Kinderspiel. Doch was hat die Zukunft in petto?
    • Finden Sie für die Strategie das komplizierteste Intervall der History und testen Ihr System auf ihm. Sehr geläufige Taktiken - der Einsatz von Channels und das Warten auf eine Rückwärtsbewegung, oft noch durch das Doppeln des Postens bei der Eröffnung der nächsten Positions gesichert - funktionieren bei einigen Intervallen der History wunderbar. Doch der Markt besitzt im Channel langfristige Bewegungen und starke Trends, und beide Systeme führen in regelmäßigen Abständen zum Verlust des Depots. Finden Sie den Intervall der History, der für Ihr System am gefährlichsten ist (ein langer Flat - für eine Aufteilungstaktik und eine starke Bewegung in eine Richtung - für Taktiken, die auf Rückwärtsbewegung beruhen) und beobachten die Probleme, die sich beim Handel auf diesem Intervall ergeben

      Und vergessen Sie niemals: eventuell sehen Sie in Zukunft einen noch längeren Flat und sogar noch extremere Trendbewegungen, denn der Markt verändert sich ständig. Halten Sie sich also stets eine "Sicherheitsmarge" offen.

  4. Bedenken Sie die Gemeinkosten (Spreads, Swaps, Provisionen, Voraussetzungen an die Marge, Mindestmengen zur Installierung von Bestellungen)!
    • All diese Ausgaben sind für die meisten Langzeit-Strategien nicht wichtig, denn bei ihnen fällt ein Fehler von ein paar Punkten nicht ins Gewicht. Doch der Trend in der Entwicklung des automatischen Handels hat gezeigt, dass immer mehr Strategien mit kleinen Gewinnen und einem Hochfrequenzhandel entwickelt werden, sodass sich die Zunahme des Spreads um 2 Punkte oder des Stop-Levels um 10, später ganz schön bemerkbar machen.
    • Denken Sie auch daran, dass die MetaTrader Charts (Version4 und Version 5) mit Hilfe des Geldkurses erzeugt wurden, das Öffnen von Long Positions und das Schließen von Short Positions jedoch nach dem Briefkurs ausgeführt werden. Wenn Sie in Gedanken handeln, ist die Berücksichtigung des Spreads unbequem, doch können wir immer das Gesamtergebnis des Handels hernehmen und davon die Anzahl der Handel abziehen und das mit dem Spread multiplizieren - damit kommen die Ergebnisse näher an die Realität.
    • Vergessen Sie bei der Analyse der History nicht, dass die Handelsbedingungen vor nur wenigen Jahren ganz andere waren. Das "flauschige" Chart des Jahres 1999 ist prima geeignet für die Scalping-Strategie, wenn wir unter Verwendung des aktuellen Spreads handeln. Doch 1999 war dieser Spread drei- bis viermal größer! Von den Gewinnen, die Sie virtuell eingefahren haben, bleibt nichts mehr übrig, wenn wir den echten Spread dieses Zeitraums von jeder Transaktion abziehen. Und das gilt analog auch für andere Bedingungen: Vor einigen Jahren betrug die maximal verfügbare die Hebelwirkung 1:100 und der Abstand zur Platzierung einer pending Order wurde in Zehntelpunkten gemessen.
    • Bedenken Sie immer: Handelsbedingungen können sich bei Bekanntwerden von Neuigkeiten ändern (natürlich zum schlechteren) und die Ausführung von Orders kann sich verzögern und leicht abrutschen. Erfinden Sie daher auf der History "kein exzellentes Neuigkeitensystem", versuchen Sie sie zumindest auf einem Mikro-Echt-Account zu testen. Ihre Sichtweise des Systems wird sich enorm verändern, wenn Sie von einem Spread von 2 Punkten und einer unmittelbaren Ausführung ausgehen, die Position aber nach 5 Sekunden eröffnet wird, mit einem Abrutschen von 10 Punkten - dann öffnet sich der Spread so weit, dass es nicht mehr möglich ist, die Position zumindest ohne Verluste zu schließen.
    • Rechnen Sie daher bitte immer "eine Sicherheitsmarge" im Hinblick auf die Handelsbedingungen mit ein. "Zerbricht" Ihr System von der kleinsten Veränderung im Spread oder einer zeitlichen Verzögerung in der Eröffnung einer Position von nur wenigen Sekunden, dann ist es höchst unwahrscheinlich, dass es sich im "echten Einsatz" bewähren wird.

      Denken Sie daran: beim Großteil der Strategien ist der Spread der Grund für einen Verlust im Depot, d.h. die Wahl der Richtung des Abschlusses mit einer Wahrscheinlichkeit an Exaktheit von nahezu 50%. Also versuchen Sie Ihre Strategie so optimal wie möglich zu verbessern, damit sich der Spread nicht groß auf Ihr Ergebnis auswirkt.

Wenn Sie nach all diesen Prüfungen dennoch fest an Ihr System glauben und es immer noch automatisieren wollen, dann kommen wir jetzt zur nächsten Etappe.


3. Ziele festlegen

Ziele festlegenHaben Sie sich schon einmal die Frage gestellt, warum Sie überhaupt einen Expert Advisor brauchen? Wollen Sie einfach nur Ihre Idee im Strategie-Tester überprüfen? Oder vielleicht eine einsatzfähige Strategie auf einem echten Micro-Account ausprobieren? Halt, ich weiß schon - Sie handeln schon seit 2 Jahren auf Ihrem System und werden den Expert Advisor unverzüglich auf einem echten Account mit einer Einlage von USD 100.000 starten.

Diese scheinbar nutzlosen Fragen werden leider viel zu selten gestellt. Kann man ja eigentlich auch verstehen - ihre Antworten betreffen nur einige kleine Angelegenheiten: die Einzelheiten der technischen Voraussetzungen, die Wahl des Bewerbers/Entwicklers und vielleicht auch die Kosten für den Auftrag. Doch wenn man genau hinsieht, kann der Unterschied zwischen den verschiedenen Ansätzen eine ganze Menge ausmachen.

Meistens ist es dem Programmierer egal, ob er den Expert Advisor für den Strategie-Tester (mit einem Minimum an Prüfungen und ohne Berücksichtigung von Ausnahmen) oder für den echten Handel schreibt. Wenn er bereits seit langem in MQL schreibt und sich bisher noch niemand über die Stabilität seiner Programme beschwert hat, dann hatte er ziemlich sicher eine Basis zur Implementierung jedes Algorithmus und deshalb werden sich seine Ansätze bzgl. des Schreibens der Version für den Strategie-Tester oder der für den echten Account auch kaum unterscheiden.

Doch selbst wenn Sie in der glücklichen Lage sind, mit so jemandem arbeiten zu dürfen, werden Sie den Unterschied merken, wenn Sie die technischen Voraussetzungen ausarbeiten.

Lassen Sie mich das an einem Beispiel erklären:

  1. Situation Nr. 1: Sie möchten einfach nur eine Idee testen (die Sie irgendwo gefunden oder von ihr gehört oder gelesen haben). Das bedeutet:
    • Sie soll nicht auf einem echten Account eingesetzt werden, sodass die verschiedenen Prüfungen und der Umgang mit Ausnahmen nicht gemacht werden müssen.
    • Der Expert Advisor wird aktiv getestet und optimiert , denn wir wollen ja seine maximale Leistung erreichen (u.U. auf Kosten seiner Robustheit).
    • Und nach der Prüfung der ersten Version, muss diese höchstwahrscheinlich verfeinert werden - jeder Expert Advisor sollte problemlos erweiterbar und ausbaufähig sein.
    • Die "Engpässe" des Algorithmus (Platzierung von Orders an den erlaubten Mindestabständen, die Abfolge von öffnenden und schließenden Positions, das Umgehen der Begrenzung für Maximalposten, der Neustart der Arbeit nach Verbindungsunterbrechung, usw.) müssen nicht verarbeitet werden, da wir ja nicht wissen, welche davon in der Endversion ihre Relevant beibehalten werden.

  2. Situation Nr. 2: - Die Strategie ist fertig, Sie brauchen einen gültigen Expert Advisor für den echten Account. Hier ergeben sich folgende Unterschiede zur obigen Version (Situation Nr. 1):
    • Alle Handelsvorgänge sollten so exakt wie möglich sein, und nicht nur die Werte der benutzerdefinierten Parameter müssen getestet werden, sondern alle Werte werden während des Arbeitsablaufs berechnet (Postengröße, die Levels der Stop Order, usw.).

      Die "Qualität" der Handelsanfragen beeinflusst direkt die "Beziehung" des Servers zu Ihrem Account - wird der Server mit inkorrekten Handelsorders bombardiert, könnte er schnell den Account blockieren und Sie verlieren die Kontrolle über die Situation.

      Sollte es zu einem schwerwiegenden Fehler kommen, müssen Sie das dem Anwender mitteilen (per Bildschirmnachricht oder E-Mail, Skype, ICQ oder via SMS).
    • Die Belastbarkeit und Stabilität der Arbeit, im Gegensatz zur Geschwindigkeit ihrer Leistung, rückt hier in den Vordergrund - sollten zusätzliche Prüfungen einen möglichen Fehler vermeiden helfen, sollten diese in den Expert Advisor mit eingebaut werden. Selbst wenn dadurch das Testen und die Optimierung langsamer vonstatten gehen (bei der Arbeit in Echtzeit ist die Ausführungsgeschwindigkeit oft nicht spürbar).
    • Die zukünftigen Verbesserungen, selbst wenn man sie braucht, sind nicht der Rede wert. Daher werden auch keine spezifischen Anforderungen für leichte Erweiterbarkeit angegeben.
    • Alle "Engpässe" des Algorithmus sollten umfassend und gründlich durchdacht und exakt bearbeitet werden. Es sollte kaum noch zu Situationen kommen, in denen ein Fehler auftreten kann (leider können wir nicht alle vermeiden):
      • Der Expert Advisor sollte nach einem kurzzeitigen Verbindungsabbruch, einer Neuverbindung mit dem Account oder einem Zurücksetzen des Client-Terminals wieder seine normale Arbeit aufnehmen können.
      • Wenn Sie pending oder Stop Orders nicht setzen können, müssen sie virtuell verfolgt werden und, sobald der Kurs ihre Levels erreicht ist, zum Marktpreis ausgeführt werden.
      • Wenn Sie binnen n-Versuchen keine Position zu Marktpreisen öffnen können, sollte die maximal zulässige Abweichung verstärkt werden.
      • Beim Auslösen einer pending oder Stop Order durch ein nicht vom Algorithmus angebotenes Level und mit Abweichung (z.B. mit einem Preisgefälle), sollten die Levels aller davon abhängenden Orders angepasst werden (und u.U. auch ihre Volumen).
      • Alle Funktionen, die nach Größe des Depots arbeiten (z.B. die Berechnung des Postens) sollten im Normalfall nicht-Handeslvorgänge mit einem Saldo akzeptieren (Saldo oder Entnahme).
      Und damit ist diese Aufzählung noch lange nicht abgeschlossen. Es gibt eine unendliche Menge derartiger Feinheiten und jede Strategie hat zudem auch ihre eigenen Details.
    • Außerdem werden auch noch zusätzliche Anforderungen vorgebracht - der Expert Advisor sollte für verschiedene Makler problemlos funktionieren, die Liste aller verfügbaren Instrumente berücksichtigen, ihre Spezifikationen und andere Servereinstellungen (die Maxmimalzahl an pending Orders, die Stop-Out Levels, die Möglichkeit, die Positions/Orders in umgekehrter Richtung öffnen zu können (nur für MetaTrader 4), usw.) .
  3. Schließlich Situation Nr. 3: - Sie sind wirklich soweit, den Expert Advisor auf einem echten Account mit einer Einlage von USD 100.000 einzusetzen. Wird sich jetzt etwas verändern, im Vergleich zu den beiden vorigen Versionen? Das hängt alles von Ihrer Paranoia ab (Entschuldigung, wollte natürlich Ihrem Weitblick sagen):
    • Die Erzeugung von mehr Protokolldateien und eine regelmäßige Speicherung der Screenshots auf den Graphen führen zu absolut keinen Problemen, ganz im Gegenteil - sie können sich bei der Analyse eines Problems oder der Beilegung eines Streits als sehr hilfreich erweisen.
    • Wenn Sie den Expert Advisor auf einem extra zugewiesenen Server einsetzen wollen, könnten Sie sich auch kurz die Möglichkeit der Kontrolle/Berichtigung seiner Arbeit mit Hilfe einer anderen (parallel laufenden) Kopie ins Auge fassen. Sie können z.B. den Expert Advisor gleichzeitig auf dem extra zugewiesenen Server und zu Hause laufen lassen, und die Kopie "zu Hause" sollte die Kontrolle der Situation übernehmen können, falls es für 5 Minuten oder länger keine Verbindung mehr zur "Server"-Kopie geben sollte.
    • Wenn Sie die Arbeit des EAs nicht ständig überwachen können, können Sie einen stündlichen (oder täglichen) Bericht über den aktuellen Status des Accounts und der Handelssituation implementieren. Benachrichtigungen über schwerwiegende Fehler sollten auf jeden Fall vorhanden sein.
    • Wenn Sie den Handelsvorgang gerne kontrollieren können möchten, selbst wenn Sie nur ein Telefon haben, können Sie ein "Feedback" einreichten - die Möglichkeit, dem Expert Advisor Befehle via SMS, E-Mail, Skype, ICQ zu übermitteln oder durch Einrichten von pending Orders (mit der Beschreibung de Befehle in den Anmerkungen).

Wird Ihnen der Unterschied nun klar? Und das ist nur ein kurzer Blick auf die Methode - jedes dieser Elemente kann weiter durchdacht und nahezu unbeschränkt ausgeweitet werden. Und dabei haben wir so viele Einzelheiten noch gar nicht angesprochen!

Nach dieser Erforschung der Details wird klar, dass ein Durchdenken der Einzelheiten des Algorithmus einzig und allein vom Zweck des Expert Advisors und den Anforderungen des Kunden abhängt.

Sie können diesbezüglich von Programmierern keine gleichbleibende Qualität der Umsetzung all dieser Feinheiten erwarten - derartige Qualitätsstandards existieren leider noch nicht. Daher müssen Sie bestimmen, wofür Sie den Expert Advisor brauchen, sich überlegen, wie er sich in verschiedenen Situationen verhalten soll und darauf achten, all dies in seinen technischen Anforderungen auch explizit zu erwähnen.

Der Standardumgang mit einfachen Fehlern (Requotes (kurzfristige, neue Kursangebote), ungültige Stops, usw.) wird von jedem EA-Entwickler, der etwas auf sich hält, sowieso hinzugefügt. Doch das ist keine Garantie, dass dieses "Standardverhalten" auch wirklich für Ihre Strategie geeignet ist.

So ist es z.B. nicht immer die beste Lösung, das Stop Loss Level im zulässigen Mindestabstand zu setzen, falls es unmöglich ist, ihn auf dem berechneten Level zu setzen - die anderen Orders, oder der Maximalverlust der fortlaufenden Reihe an Positions könnten davon abhängen. Nochmals: Sollten Sie dabei sein einen EA für einen echten Account zu erzeugen, überlegen Sie sich in der Vorbereitungsphase Ihrer Arbeit eine möglichst große Menge an Szenarien.

Sie können Ihren Programmierer stets um eine Liste möglicher Situationen und um die Entwicklung eines Algorithmus für den Umgang mit ihnen bitten. Doch vergessen Sie dabei nicht: die Analyse und Verfeinerung Ihrer Strategie, sowie die Erzeugung des Algorithmus, hängen nicht direkt mit dem Schreiben des Expert Advisors zusammen. Das ist ein extra Bereich und sein Ergebnis ist nicht der Code des Expert Advisors, sondern der Text des Algorithmus. Daher verlangen einige Programmierer für diese Arbeit vollkommen zu Recht ein extra Honorar - da sie ja Zeit investieren und Sie, obzwar als Zwischenprodukt, dennoch ein Ergebnis bekommen und mit diesem Algorithmus zu einem anderen Programmierer gehen können.

Und vergessen Sie auch nicht: nicht alle Programmierer verfügen über Erfahrungen in der Arbeit mit echten Accounts. Das heißt, dass sie sich schlicht und einfach selbst nicht aller möglichen Überraschungen bewusst sind. Wahrscheinlich gibt es ganz einfach niemanden, der mit absolut allen Unternehmen, allen Arten von Accounts, allen möglichen Instrumenten und unter allen unterschiedlichen Marktbedingungen gearbeitet hat. Teilen Sie Ihre Erfahrungen (falls Sie schon welche haben) mit anderen, bitten Sie den Programmierer seine Erfahrung ebenfalls zu teilen, doch glauben Sie nicht, das würde Sie komplett vor Überraschungen schützen - das ist leider komplett unrealistisch.

Wir nähern uns nun langsam dem wichtigsten Teil - der Vorbereitung der technischen Anforderungen. Doch zuvor betrachten wir uns noch einen anderen Punkt.


4. Sich auf eine gemeinsame Sprache verständigen

Bevor Sie einen Dialog beginnen, sollten Sie zu verstehen versuchen, mit wem Sie kommunizieren. "Am anderen Ende" ist vielleicht eine komplett andere Person, deren Wissen sich von dem Ihren u.U. erheblich unterscheidet.

Bevor Sie sich nicht "auf eine gemeinsame Sprache verständigt" haben (sicherstellen, dass man mit den gleichen Begriffen arbeitet, die Bedingungen definieren), können die Anstrengungen auf ein gemeinsames Ziel unangenehm und schwierig sein. Ihrer Meinung nach elementare Dinge können durchaus zu so viel Verwirrung führen, dass sich die Entwicklung eines einfachen Expert Advisor leicht zu tagelanger (oder monatelanger) Festlegung der Beziehung entpuppen kann.

Schweifen wir kurz ab.

Stellen Sie sich vor, Sie müssen Ihren Wasserhahn auswechseln. Sie rufen einen Klempner an und sagen ihm: "Ich hab was kaputt gemacht, womit ich mein Gesicht wasche!" Ich möchte ein neues, das ich mit einer Hand bedienen kann". Klingt doof, oder? Doch glauben Sie mir, einige der Aufträge von Händlern schauen noch viel doofer aus!

Versetzen Sie sich einfach mal in die Lage des Klempners. Klar hat er ungefähr verstanden, was Ihnen widerfahren ist, doch für diesen "Auftrag" kann er überhaupt nichts tun. Denn nur jemand der hellsehen kann, versteht wirklich, welche Art von Wasserhahn Sie wollen.

Probieren wir es doch einfach mal so. Sie rufen an und sagen: "Ich brauche einen Wasserhahn in meinem Badezimmer. Der Durchmesser für die Kalt- und Warmwasserrohre sind 13 mm. Der Abstand der Rohre bis zur Waschbeckenunterseite beträgt 20 cm. Wasserdruck und Wassertemperatur müssen sich mit einem Einhandmischer regeln lassen. Und es wäre schön, wenn ich unter verschiedenen Modellen wählen könnte.

Treffer! Jetzt weiß der Klempner, dass Sie a) einen Einhandmischer brauchen; b) dieser zwei Zuläufe haben muss; c) er ein Flexrohr von 20-25 cm Länge und einem Durchmesser von 13 cm anschließen muss. Kommt er also zu Ihnen nach Hause, wird er Ihnen bereits ein paar Varianten mitbringen, unter denen Sie wählen können. Anschließend kann er dann seinen Auftrag zügig erledigen.

Viele Programmierer, die in MQL schreiben, kennen sich wirklich im Handel aus - je mehr sie mit Kunden kommunizieren und Expert Advisors programmieren, umso besser verstehen Sie die Vielfalt der verschiedenen Analyseansätze. Darüber hinaus entwickeln viele Strategien für sich selbst und haben sich daher auch eingehend mit Fachliteratur zum Handeln befasst und an themenspezifischen Foren teilgenommen.

Doch erwarten Sie nicht zu viel von ihnen! Der Satz "dehnen Sie das Fibo-Raster auf die letzten 2 Fraktale aus", den Sie vielleicht jeden Tag benutzen, führt bei einem unerfahrenen Techniker einfach nur zu verständnislosem Staunen. Wenn Sie ihm dann noch den häufig verwendeten Satz "nach dem Auslösen des Locks..." oder "sobald London eröffnet, die Stops auf ein Breakeven-Level setzen" nachschicken und der Kunde bereit ist - dann können Sie sicher sein, jetzt folgen viele Stunden Fragen und Erklärungen.

Ich sage damit nicht, dass der geläufige Begriff "MA" ab sofort "der technische Indikator mit einem gleitenden Mittelwert mit einer Glättungsperiode von 36" genannt werden sollte - wir müssen es ja nicht übertreiben! Doch denken Sie bitte immer daran, dass Ihr Gesprächspartner mit einem anderen Wissenstand und einer andern Sicht der Dinge ausgestattet ist.

Als Zwischenergebnis hier ein paar Tipps:

  1. Machen Sie sich mit einfachen und verständlichen Worten verständlich - ohne Abkürzungen und Jargon/Fachsprache zu benutzen.
  2. Verwenden Sie geläufige Terminologie. Wenn Sie nicht wissen, wie Sie ein Tool oder ein Ereignis bezeichnen sollen, dann verwenden Sie einfach die Begriffe aus einem Nachschlagewerk oder Textbuch.
  3. Erklären Sie alles umfassend und detailliert. Erwähnen Sie selbst das, was für Sie bereits auf der Hand liegt. Denn sehr oft zeigt sich - das ist nur Ihnen sonnenklar!
  4. Vergewissern Sie sich schließlich, dass Sie von der anderen Person auch wirklich verstanden werden. Stellen Sie ihr Suggestivfragen oder bitten Sie sie, die Aufgabe in ihren eigenen Worten zu formulieren. Seien Sie hundertprozentig sicher, dass Sie beide auch wirklich über das Gleiche reden.

Liebe Kollegen, die ihr alle EAs schreibt! Falls ihr gedacht habt, dass sich das soeben Gesagte nur auf Händler bezieht, muss ich euch leider sofort enttäuschen! Wir als die technisch kompetente Menschen, sind für die Exaktheit des kompletten Arbeitsprozesses verantwortlich. Und auch, sogar noch in einem größeren Maße, für seinen Erfolg.

Nur sehr wenige Händler sind in der Lage, die anstehende Aufgabe präzise und genau zu formulieren - das ist eine Tatsache! In den sechs Jahren meiner Erfahrung im Schreiben von EAs, kann ich mich nur an zwei Kunden erinnern, deren Aufträge echt fantastisch waren - einsatzfähige Programme, die einfach nur in MQL übertragen werden mussten. Von ein paar weiteren Kunden könnte ich sagen, "die wissen, was sie wollen" und "können ihre Vorstellungen gut rüberbringen" - nachdem ich ihre Algorithmen gelesen hatte, wusste ich glasklar, wie die späteren Programme laufen werden. Doch der Großteil der Kunden sind Neulinge im Handel und haben Angst - nicht nur davor, dass sie jetzt die Aktionen des EAs exakt und detailliert beschreiben müssen, sondern bereits vor dem Wort "Algorithmus" an sich.

Beweisen Sie ein bisschen psychologisches Fingerspitzengefühl - versuchen Sie herauszufinden, wo Ihr Partner steht und kommunizieren mit ihm entsprechend seiner Begriffsebene und Konzepte. Verängstigen Sie ihn nicht mit Ihrem Intellekt, seien Sie nachsichtig. Und lassen Sie, wenn möglich, all die Feinheiten des Programmierens im Gespräch erst einmal beiseite. Ihr Gegenüber muss überhaupt nicht wissen, was ein Zyklus ist, von wo die Bezifferung der Bars beginnt und unter welchen Bedingungen die Funktion, die die Ordering-Information in der Datei speichert, ausgeführt wird.

Das heißt jedoch nicht, dass Sie mit dem Kunden sprechen als wäre er ein "unwissendes Kleinkind" und dass beim kleinsten Anzeichen von Unstimmigkeit der ganze EA neu geschrieben werden sollte. Auf keinen Fall! Versuchen Sie einfach, Ihrem Gegenüber nicht nur ein guter Techniker, sondern auch ein angenehmer Gesprächspartner zu sein - er weiß das mit Sicherheit zu schätzen.

Endlich haben wir den wichtigsten Teil erreicht - die Erzeugung des Algorithmus. Also gut - fangen wir an!


5. Die Anforderungsspezifikationen vorbereiten

Die Aufgabe vorbereiten

Ihr Cousin, der mit Handeln nichts am Hut hat, sollte mit nichts als Ihrem vorbereiteten Algorithmus, auf Ihrem System handeln können.

Diese klassische Aussage, nur leicht verändert, demonstriert sehr klar die Hauptqualitäten gute technischer Spezifikationen:

  1. Diese Aufgabe sollte komplett selbsterklärend sein (verständlich, selbst für eine Person, die mit Ihrem System überhaupt nicht vertraut ist).
  2. Die Aufgabe sollte so detailliert wie möglich sein (verständlich, selbst für eine Person, die in Sachen Handel keine Ahnung hat).

Wie kategorisch und übertrieben ist die Aussage "das hat nichts mit Handel zu tun"? Es wird in der Tat schwer, jemandem, zusätzlich zu dem Kern des Systems, auch noch die Grundlagen von Handel und der Verwendung des Handels-Terminals zu erklären. Erlauben Sie mir, mich abermals einer klassischen Aussage zu bedienen:

Ihr Cousin, der erst vor zwei Monaten MetaTrader installiert hat, und der bislang nur auf Demo-Accounts gehandelt hat, und der..... Wir kennen den Rest.

Doch das ändert nichts am Kern! Wenn Sie Ihren Algorithmus zehn verschiedenen Personen geben und sie bitten auf Ihrem System zu handeln, dann müssen sie absolut identische Ergebnisse erhalten. Und wer von Ihnen kann sich mit einer solchen Erfahrung schmücken?


5.1 Wo sollen wir beginnen?

Wir beginnen ganz am Anfang. Beschreiben Sie die allgemeine Idee und sagen, welche Ergebnisse sie von ihr erwarten. Vergessen Sie dabei Ihre eigenen Ziele und Anforderungen an das Programm nicht - sie können jetzt formuliert werden.

Mit Hilfe einer allgemeinen Vorstellung über Sie und Ihr System kann ein Programmierer die Seriosität Ihrer Absichten abschätzen und den ungefähren Arbeitsaufwand einschätzen.

Einige Beispiel solch eines Beginns:

Wir brauchen einen Indikator für MetaTrader 4. Die Aufgabe - Zeichnen eines invertierten Charts eines willkürlichen Währungspaars im Unterfenster des Hauptcharts. Der Indikator sollte mit Quoten mit 4 und 5 Ziffern und auf nicht-Standard Symbolnamen arbeiten (z.B. EURUSDFXF).

Wir brauchen einen Expert Advisor für MetaTrader 5. Handelt auf einer einzigen Währung und das Eintrittssignal beruht auf dem individuell definierten Indikator (Code ist angehängt). Schließen der Positions durch StopLoss, TakeProfit und einem umgekehrten Signal. Alle Positions werden durch einen Trailing Stop begleitet, der auf einem andern Indikator beruht (der Code ist ebenfalls vorhanden). Der Posten wird als Prozentsatz des Saldos kalkuliert.
Der Expert Advisor (MetaTrader 4) muss zu Ende gebracht werden, damit er auf einem echten Account arbeiten kann. Bitte alle notwendigen Prüfungen platzieren, nach einem Verbindungsfehler soll er seine normale Arbeit wieder aufnehmen, einige Versuche hinzufügen, eine Position mit einem Fehler zu öffnen und vielleicht sonst noch etwas - liegt in Ihrem Ermessen.
Wir brauchen einen EA für Tests einer Strategie zur Verletzung eines Channels. Grenzen des Channels durch den Indikator festlegen, den Eintritt in den Markt durch die pending Orders, nach einem misslungenen Abschluss - eine Zunahme des Postens mit spezifischen Koeffizienten. Sie sollten auch die Arbeitszeit während eines normalen Tages festlegen, also wann das Setzen der ersten Orders erlaubt ist. Und so haben wir den Code für MetaTrader 4.

Dieser Teil der Aufgabe ist der leichteste. Doch leider ist das auch der Teil, wo alles aufhört ... Nicht vergessen - das ist nur eine Einführung, die Beschreibung der allgemeinen Idee. Zum Schreiben eines Programms brauchen wir eine ganze Menge mehr.


5.2 Wie formulieren wir die Aufgabe?

Der Algorithmus ist in der Tat der wichtigste Teil. Ihn zu formulieren geht am schwersten (insb. für jemanden, der kein Programmierer ist) und bedeutet eine Menge harte Arbeit.

Versuchen Sie daher, den Algorithmus in logische Unterbereiche aufzuteilen und machen nicht den Fehler, alle Feinheiten des Systems in einen einzigen, nicht lesbaren Satz zu packen.

Beim tatsächlichen Schreiben des Expert Advisors können wir die folgenden, logischen Abschnitte unterscheiden (ihre Zahl und ihr Inhalt variieren je nach Strategie):

  1. Die allgemeinen Bedingungen: die Arbeitszeit (innerhalb von Tagen, an gewissen Wochentagen), die Reihenfolge seiner Ausführung (z.B. der Beginn des Handels mittels Drücken einer Schaltfläche), alles Notwendige zur Tiefe der Analyse der History sowie andere Bedingungen, die mit der Aufgabe allgemeine zusammenhängen (und nicht mit einzelnen Punkten).

  2. Das Signal für den Markteintritt (das Öffnen der ersten Position oder das Setzen der ersten Orders) basiert auf Indikatoren, gewissen Kursmustern, einfach auf Zeit oder auf den Befehlen des Anwenders. Das kann auch Beschränkungen beim ersten Eintritt umfassen (Filter) - nach Zeit, nach einem anderen Indikator, nach einer zu langen Serie an Verlusten, während nicht annehmbarer Handelsbedingungen (zu große Spreads oder ein StopLevel) oder während des Nichtvorhandenseins verfügbarer Geldmittel. Die Methode der Postenberechnung und das Stop Loss- und Take Profit-Level sollten separat spezifiziert werden (wenn die Regeln zur Berechnung für alle Positions die gleichen sind, können wir sie in einen unabhängigen Satz abtrennen).

  3. Die Verarbeitung des Auslösen von pending Orders oder StopLoss/TakeProfit einer Position (falls notwendig). Bei der Entfernung einer Sell Stops Order z.B., wenn eine Buy Stop Order ausgelöst wird, das Setzen einer zusätzlichen Sell Limit Order, wenn einen zuvor gesetzte Sell Limit Order ausgelöst wird, das Eröffnen einer Position für den Verkauf eines doppelten Volumens nachdem der Stop Loss ausgelöst wird, usw..

  4. Die Signale zur Eröffnung weiterer Positions (wenn es offene Positions gibt) oder zum Setzen weiterer Order (falls notwendig). Dies kann z.B. durch das Signal anderer Indikatoren gemacht werden, oder wenn ein gewisser Gewinn oder Verlust der geöffneten Position erreicht wird. Hier muss es auch die Regeln zur Berechnung des Postens, von Stop Loss und Take Profit geben (falls sie sich von dem, was im Vorausgegangenen beschrieben wurde, unterscheiden).

  5. Das Trailing von Positions und Orders (separat - die ersten in der Serie, separat - alle weiteren oder alle zusammen, wenn die Regeln die gleichen sind). Zum Beispiel das Heranziehen von pending Stop Orders an den Markt (bei Kursbewegung in die Gegenrichtung), einen Trailing Stop der Position (konventionell, durch den Indikator oder etwas anderes), das teilweise Schließen der Position, sobald ein gewisser Gewinn erreicht ist, usw.

  6. Signale zum Schließen (komplett, teilweise) oder die Umkehrung einer Position. Die Regeln zur Entfernung von pending Orders.

  7. Die allgemeinen Bedingungen, wie alle diejenigen, die mit dem Status des Accounts zusammenhängen - das Schließen aller Positions und das Beenden der Arbeit bei einer spezifizierten Inanspruchnahme, eine Verringerung der Verwendung des Prozentwerts der Einlage, bei Zunahme des Saldos auf ein gewisses Niveau und derartiges mehr. Diese Bedingungen beziehen sich auf den ersten Punkt, doch es ist leichter, sie am Ende zu beschreiben (wie in der Reihenfolge ihre Verwendung).

  8. Und am Schluss braucht man vielleicht noch zusätzliche Informationen auf dem Chart, das Zeichnen der Pfeile der Kursebenenen zum Öffnen/Schließen von Positions, die detaillierten Informationen im Protokoll, das Senden von E-Mails, sobald pending Orders ausgelöst werden und alles andere, was nicht mit Handel an sich zu tun hat, seht wohl aber mit dem Interface.

Wenn wir über einen Indikator sprechen, dann ist einerseits alles viel einfacher - die Logik ist weitaus primitiver und weniger komplex. Andererseits gibt es auch hier einige Feinheiten.

Eine Übersicht könnte etwa folgendermaßen aussehen:

  1. Die erforderlichen Daten: eine Liste der analysierten Instrumente (falls mehrere), die Tiefe der History für alle verwendeten Instrumente und Zeitrahmen, die Zeitzone des Handelsservers.
  2. Die Art der Zeichnung (Linien, Signalpfeile, Kerzendiagramm, Bereiche wie in ZigZag, geeometrische Figuren, usw.).
  3. Der Algorithmus zur Berechnung des ersten Werts (des Werts auf dem linken Bar), sollte er vom Haupt-Algorithmus abweichen.
  4. Der Basisalgorithmus zur Berechnung eines einzigen Bars oder der Beschreibung des Berechnungsvorgangs, falls sich die Ableitung einer 'Formel für einen einzelnen bar als zu schwer erweist (wie z.B. im Falle eines ZigZags).
  5. Und ggf. die ganzen anderen, extrem bequemen Sachen: Audiowarnungen, Speichern von Screenshots, Senden von Meldungen an E-Mail, usw.


Gehen wir von der Theorie in die Praxis und schließen einige unserer Beispielaufgaben jetzt ab:

Wir brauchen einen Indikator für MetaTrader 4. Aufgabe: Zeichnen eines invertierten Charts eines willkürlichen Währungspaar im Hauptfenster des Charts. Der Indikator sollte auf Quoten mit 4 und 5 Ziffern mit nicht Standard-Symbolnamen arbeiten (z.b. EURUSDFXF).

  1. Legen Sie in den Einstellungen den Namen des Instruments (den Symbolparameter) fest, der angezeigt werden muss (z.B. "GBPUSD_m"). Wird der Name nicht angegeben, verwenden Sie das Symbol auf dem Chart, an das der Indikator angeheftet ist. Gibt es im "Marktfenster" so ein Symbol nicht, muss ein Fenster mit einer Fehlermeldung angezeigt werden.
  2. Der Indikator sollte grafisch als japanische Kerzen dargestellt (geplottet) werden. Die Farben der wachsenden und schrumpfenden Kerzen und der Schatten (separat - die oberen und unteren) müssen als Eingabeparameter angelegt werden.
  3. Die OHLC-Werte für jeden Bar werden mittels der Formeln berechnet:
    • Öffnen (Indikator) = 1 / Öffnen (Symbol );
    • Schließen (Indikator) = 1 / Schließen (Symbol);
    • Niedrig(Indikator) = 1 / Hoch (Symbol);
    • Hoch (Indikator) = 1 / Niedrig (Symbol).
  4. Bei allen "runden" Preislevels (1,3200, 1,3300, 1,3400, 1,3500, ...), also den Levels, die ein vierstelliges Mehrfaches von 100 Punkten haben, müssen Sie eine waagrechte Linie ziehen (Art und Farbe sollten als Eingabeparameter angegeben werden).
Das wird mit dem Expert Advisor ein bisschen schwerer:

Ich brauche einen Expert Advisor für MetaTrader 5. Handel auf einer einzigen Währung, das Signal zum Markteintritt beruht auf einem individuell angepassten Indikator (Code ist angehängt). Schließen der Positions per StopLoss, TakeProfit und einem umgekehrten Signal. Alle Positions werden durch einen Trailing Stop begleitet, der auf einem anderen Indikator beruht (der Code ist ebenfalls vorhanden). Der Posten wird als Prozentsatz des Saldos kalkuliert.

  1. Signal zum Öffnen einer Position - der Pfeil des iSignalArrow  Indikators (alle Indikator-Parameter sollten anpassbar sein):
    • Eine Long Position wird geöffnet, wenn der Pfeil des Indikators auf dem letzten geschlossenen Bar nach obenzeigt (unterhalb des Charts);
    • Eine Short Position wird geöffnet, wenn der Pfeil des Indikators auf dem letzten geschlossenen Bar nach untenzeigt (oberhalb des Charts);
    • Pfeile auf dem aktuellen (nicht abgeschlossenen) Bar werden ignoriert; nur die abgeschlossenen Bars werden analysiert.
  2. Das Position-Volumen wird als Prozentwert des aktuellen Saldos berechnet: Posten = Saldo/NötigeMarge * PostenProzent / 100 , wobei:
    • Saldo - aktueller Account-Saldo;
    • NötigeMarge - die zum Öffnen einer Position mit der Größe von 1 Poaten notwendige Marge;
    • PostenProzent - ein Eingabeparameter (der Prozentwert für die Berechnung des Postens).
      Beispiel: Ist PostenProzent = 5, mit einer Hebelwirkung von 1:100, wird der Posten für EURUSD (mit aktuellem Kurs von 1,3900): 10 000 / 1 390 * 5 / 100 = 0,3597
      Das erhaltene Ergebnis wird nach den üblichen Regeln auf den nächsten korrekten Wert aufgerundet (bis auf 0,36 - falls der DC Posten mit einer Präzision von bis zu 0,01 erlaubt; oder bis auf 0,4 - falls der Posten-Schritt = 0,1).
  3. StopLoss (SL) und TakeProfit (TP) - sind fest, anpassbar mittels der Parameter StopLoss undTakeProfit:
    • Die Ebenen werden in Punkten vierstelliger Quoten spezifiziert;
    • Die Ebenen werden in Relation zum Preis der geöffneten Position berechnet (der Briefkurs - für die Long Positions - und der Geldkurs - für die Short Positions);
    • Ist der Wert zu niedrig, sollte der Stop in einem erlaubten Minimalabstand gesetzt werden;
    • Werden die "0"-Werte spezifiziert, werden die Stops nicht verwendet.
  4. Alle offenen Positions werden von Trailing Stops nach dem iTrailingLine Indikator begleitet(alle Indikator-Parameter sollten anpassbar sein):
    • Wird eine Long Position eröffnet und die Indikatorlinie ist unterhalb des aktuellen Kurses, wird der Stop auf das Niveau der Indikatorlinie verschoben;
    • Wird eine Short Position eröffnet und die Indikatorlinie ist oberhalb des aktuellen Kurses, wird der Stop auf das Niveau der Indikatorlinie verschoben;
    • Die Indikatorwerte werden vom abgeschlossenen (gebildeten) Bar genommen; der aktuelle Bar (nicht abgeschlossen) wird nicht verwendet. Das heißt: die Veränderung sollte nicht öfter als einmal in einem Bar auftreten;
    • Verschieben des StopLoss ist nur in Richtung des Profit der Position zulässig - nach oben für Long Positions und nach unten für Short Positions;
    • Wenn Sie den StopLoss nicht auf dem Niveau der Linie setzen können, sollte er im zulässigen Mindestabstand gesetzt werden (doch nur, wenn e mit der vorherigen Regel des Verschiebens in Richtung des Profits konform war);
    • Das Trailing Stop-Feature sollte konfigurierbar sein (AllowTrailing = 'true'/'false' Parameter).
  5. Gibt es eine geöffnete Position und auch ein entgegengesetztes Signal, muss die geöffnete Position geschlossen und eine neue eröffnet werden (in entgegengesetzter Richtung).
    Für eine neue Position muss die Berechnung des Postens nach Schließen der geöffneten Position aufgerufen werden.
  6. Verschiedenes:
    • Wenn Sie den Expert Advisor laufen lassen, sollte er die verwendeten Indikatoren mit den angegebene Parametern anhängen;
    • Die Information zum Öffnen/Schließen von Positions und den Veränderungen des StopLoss sollte im Protokoll gespeichert werden;
    • Sollte es irgendwelche Fehler geben, muss der EA eine Nachricht mit Beschreibung der/des Fehlers ausgeben.

In dieser Form kann der Algorithmus an den Programmierer geschickt werden - er enthält jetzt genügend Detailangaben über das System und kann leicht in MQL "übersetzt" werden. Überhasten Sie nichts: lassen Sie sich mit dem Auftrag Zeit und denken ihn erst komplett bis zum Ende durch.


5.3 Was dürfen wir nicht vergessen

Was man nicht vergessen sollte.Ein Programm, das auf Basis eines dieser Algorithmen geschrieben ist, funktioniert reibungslos unter idealen Bedingungen - in einem separaten Client-Terminal, mit einem einzigen Zugang zum Account, ohne Intervention des Anwenders oder anderer Programme.

Ein Beispiel so einer Umgebung: ein Strategie-Tester, keine Fehler aufgrund einer unterbrochenen Verbindung, keine unbeabsichtigt geschlossene Positions und andere handelnde Expert Advisors. Doch im Alltag sind solche Bedingungen eher eine Seltenheit, denn es ist sehr wahrscheinlich, dass das Programm mit "der Welt da draußen" arbeitet.

Vielleicht möchten Sie mehrere Kopien des Programms auf verschiedenen Symbolen oder unter unterschiedlichen Einstellungen laufen lassen. Oder Sie starten das Terminal neu, handeln auf dem Account manuell oder mit anderen Expert Advisors, verbinden sich von einem Terminal mit verschiedenen Accounts - all das kann das Programm beeinflussen, wenn eine Verarbeitung dieser Situationen nicht glasklar vom Algorithmus zur Verfügung gestellt wird

Geht Ihr Ziel weiter als nur das Testen des Programms im Strategie-Tester, sollten Sie die Regeln der Interaktion mit der "Welt da draußen" von Anfang an beschreiben:

  1. Wie soll der Expert Advisor auf manuell eröffnete Positions oder andere Expert Advisors reagieren?
    Hier wählen die Menschen meist eine der drei folgenden Optionen:
    • Vollständiges Ignorieren aller "anderen" Positions. Ist das System autark, sollt es nicht durch Handelsvorgänge anderer Expert Advisors oder des Anwenders beeinflusst werden.
    • Nur mit "manuellen" Positions arbeiten. Ist der Expert Advisor so angelegt, dass er manuell eröffnete Positions begleitet, sollte er nicht in die Positions anderer Expert Advisors eingreifen und normalerweise auch keine Position selbst eröffnen . Seine Aufgabe ist die Hilfe beim manuellen Handeln (Verschieben des Stop Loss, Schließen der Position nach Signal usw.).
    • Eine etwas universellere Lösung besteht darin, dem Anwender die Wahl zu geben: entweder nur mit seinen eigenen Positions zu arbeiten oder Positions zu begleiten, die spezifische Bedingungen erfüllen (für ein bestimmtes Symbol oder mit einer festgelegten Magischen Zahl).

    In MetaTrader 5 spielt die Trennung der Handel in "meine eigenen" und "andere" eine besonders große Rolle - das Terminal zeigt nur die gesamte Position des Symbols an, selbst wenn sie von den Abschlüssen mehrerer unterschiedlicher Expert Advisors "geholt" wurde. Die Implementierung einer kompletten "Buchung" der Abschlüsse (für den normalen Betrieb mehrerer EAs auf einem einzigen Symbol) ist komplizierter umzusetzen und kann daher zu Mehrkosten führen. Verständigen Sie sich mit dem Bewerber/Entwickler, ob der Expert Advisor normal mit anderen Expert Advisors funktioniert, wenn er auf dem gleichen Symbol arbeitet.

  2. Wie sollte der Expert Advisor auf eine Verbindung zu einem anderen Handels-Account reagieren? Ist es bei irgendeinem speziellen Verfahren notwendig, den EA auf dem echten Account laufen zu lassen?
    Ich bin sicher, dass viele Händler "ein Lied" von ihren Verlusten "singen können", die nur die Folge mangelnder Aufmerksamkeit waren - unfreiwillige Verbindung zu einem echten Account, Start eines Terminal mit einem bereits laufenden Expert Advisor, oder Änderung der Parameter des Expert Advisor bei offenen Positions. Diese absurden Fehler können leicht vermieden werden, wenn man sie im Algorithmus bereits berücksichtigt.
    Zum Beispiel:
    • Wenn Sie einen EA auf einem echten Account laufen lassen, sollte er auf dem Chart eine Schaltfläche anlegen, mit der Sie tatsächlich Handel betreiben können. Und das sollte nur dann möglich werden, wenn der Anwender diese Schaltfläche auch anklickt.
    • Wenn Sie einen Account wechseln, sollte der EA den Anwender darüber informieren und seine Arbeit pausieren, bis ein Neustart erfolgt ist (oder als Alternative - den Anwender fragen, ob der EA mit seiner Arbeit fortfahren soll).
    • Gibt es vom EA geöffnete Positions (oder gesetzte Order), und es finden Änderungen in den externen Parametern statt, sollte der EA die Positions (Order) in Übereinstimmung mit den konzipierten Algorithmen verändern. Zum Beispiel: wird der WertStopLoss verändert, müssen wir den Stop Loss aller offenen Positions verändern, doch nur dann, wenn dies noch nicht durch den Trailing Stop geschehen ist. Ein allgemein gültiges Rezept gibt es hier nicht - jeder Parameter sollte einfach separat beschrieben werden. Darüber hinaus kann es bei unterschiedlichen Strategien zu unterschiedlichen Reaktionen auf die Veränderungen im selben Parameter kommen
  3. Besteht die Notwendigkeit, mehrere Kopien des Programms mit ähnlichen (oder identischen) Parametern laufen lassen zu müssen?
    Wenn der Expert Advisor durch Laufenlassen mehrerer Kopien des Indikators das grafische Objekt auf das Chart platziert und es wird der Wert von nur einem Parameter verändert, müssen alle von diesem Parameter erzeugten Objekte Namen tragen, die den wert dieses Parameters enthalten. Andernfalls wird jedes nächste Ablaufen die Ergebnisse der vorigen Abläufe verzerren.
    Im Fall des Expert Advisors wird hier meist ein spezieller Parameter hinzugefügt - ExpertId oder MagicNumber, mit dessen Hilfe sie jede beliebige Anzahl an Kopien des EA mit jedem Set an anderen Parametern laufen lassen können. Geben Sie in Ihrem Auftrag auch dezidiert an, bei welchen Einstellungen und für welche Kombinationen das Programm gleichzeitig laufen können muss, denn der Programmierer berücksichtigt nicht automatisch alle möglichen Situationen.
  4. Wie sollte die Migration des EA in ein anderes Terminal, das mit demselben Account verbunden ist, umgesetzt werden? Kann der Expert Advisor in den Dateien oder in den globalen Variablen des Terminals einige Daten speichern?
    Es besteht bei den meisten Programmen absolut keine Notwendigkeit, Zwischeninformationen abzulegen, da ihre Algorithmen auf historischen Daten von Währungspaaren und der Handelshistorie der Accounts beruhen (diese Daten erhält man vom Terminal, der mit Ihrem Account verbunden ist. Doch oft ist es erforderlich, einige Informationen in einer Datei abzulegen und diese beim nächsten Start abzurufen. Dies gestattet manchmal die Ausführungsgeschwindigkeit zu beschleunigen - und manchmal kann man ohne diese Informationen einfach kein stabiles Programm erzeugen. Informieren Sie den Programmierer über alle besonderen Anforderungen an den Übertragungsprozess des EA. Oder bitten Sie ihn einfach, Ihnen diese Übertragung speziell für Ihren Fall zu beschreiben.

Denn leider kann man all diese Feinheiten niemals im Vorfeld komplett voraussehen und entsprechend berücksichtigen. Gibt es z.B. zur Eröffnung einer Position (wegen von anderen EAs geöffneten Positions), die im Posten des EAs berechnet wurde, nicht genug Marge , müssen Sie dieses Signal entweder übergehen oder mit einem kleineren Volumen eröffnen.

Wenn andere EAs den Handelskontext aufgreifen (nur in MetaTrader 4), kann Ihr EA keinen Handel mehr durchführen. Besteht ein Limit für die Maximalzahl der pending Orders, kann keine neue Order mehr gesetzt werden. Doch trotz der Tatsache, dass Ihr Algorithmus zwar dem Großteil dieser Vorfälle Rechnung trägt, wird die Situation dadurch nicht verschlimmert. Machen Sie Ihre Erfahrungen und mit jeder neuen Erfahrung wird auch jede neue Version des EAs besser und zuverlässiger.


5.4 Wie können wir das gegenseitige Verständnis vereinfachen?

Information wird viel leichter verstanden, wenn sie gut veranschaulicht ist.

Um eine einfache Strategie zu verstehen, genügt es, sie mit einem Text zu beschreiben. Doch ist Ihr System unüblich und kompliziert, machen Sie den extra Schritt und erleichtern Ihrem Programmierer das Verständnis:

  1. Hängen Sie dem Auftrag ein paar Screenshots an, die die unterschiedlichen Punkte des Algorithmus zeigen (Zeitpunkt wenn ein Signal auftritt, Vorführung der Arbeit eines Trailing Stops, die Abfolge beim setzen von pending Orders, usw.). Zögern Sie auch nicht, diese Diagramme mit kurzen Kommentaren zu ergänzen, selbst wenn diese zum Teil im Text des Algorithmus doppelt vorkommen.
  2. Formatieren Sie den Text des Auftrags mit Geschmack: verwenden Sie unterschiedliche Farben für Long und Short Positions, heben Sie dieexternen Variablen hervor (die Parameter, die Sie konfigurieren können möchten), kennzeichnen Sie die wichtigen Punkte und Formeln. Zusätzlich zur Tatsache, dass der Text dann leichter zu lesen ist, geht auch die Navigation durch ihn erheblich leichter.
  3. Liefern Sie Beispiele. Jede Formel, die durch konkrete Ziffern veranschaulicht wird, wird einfach erheblich klarer.
  4. Nummerieren Sie die Absätze und Unter-Absätze des Algorithmus, sodass man während der Gespräche immer leicht auf sie verweisen kann. "Fehler in einer Position 2.1.4" - ist viel kürzer und exakter als "Fehler an der Stelle, wo das Stop Loss Level für die zweite Long Position der Reihe berechnet wird."


5.5 Text, Stimme oder Video?

Text, Sprache oder Video?Ich lach mich immer kaputt, wenn ein Kunde mir einen Link zu einer 120-seitigen Besprechung der Strategie in einem Forum oder einem 70-seitigen Buch oder einem 90-minütigen Videovortrag schickt, anstatt mir einfach die Aufgabe zu senden. Klar, Programmierer haben alle Zeit der Welt, haben ja eh nichts zu tun - die lesen sich die 70 Seiten Fachbuch sicher durch... Die Tatsache, dass der nützliche Teil dieser Information auf eine halbe oder ganze Seite Algorithmus passt, oder, dass es einfach unmöglich ist, diese Beschreibung formal darzustellen - scheint niemanden wirklich zu interessieren.

Wenn Sie bereits Recherche zu dem Material betrieben haben, wenn Sie verstanden haben, worum es geht und wenn Sie eine gute Vorstellung davon haben, wie die Strategie funktionieren wird - stellen Sie den Algorithmus einfach formal dar! Entfernen Sie alles "Unnötige" (meist 80% jeder Information), diese unsinnigen Pausen, die ablenkenden Diskussionen, all das Blablabla über eine tolle Zukunft, die Beobachtungen der Testergebnisse - und der Bewerber/Entwickler erhält endlich das, was er zum Schreiben des Programms braucht.

Doch wenn Sie immer noch nicht wissen, worum es in dem Buch oder dem Vortrag geht und wenn Sie sich nicht sicher sind, ob das zur Erzeugung eines komplett automatischen Handelssystems reicht, dann formulieren Sie die Frage anders! Sie können erst fragen "wie viel wird es kosten, einen Expert Advisor auf Basis dieser Strategie zu schreiben?" wenn Sie eine Strategie haben.

Und in unserem Fall gibt es nur eine gewisse Menge an Information. Ihre Qualität (ob sie sich für eine Formalisierung eignet, ob sie detailliert genug ist ) - ist nicht bekannt. Also fragen Sie den Programmierer ruhig, ob er Lust hat, die Unterlagen "für die Idee" zu studieren und falls nein, wie hoch sein Honorar ist, für das Schreiben von vollwertigen Regeln für ein Handelssystem aus dieser "langwierigen Diskussion". Und glauben Sie mir, selbst die Art der Frage an sich, veranschaulicht Ihre Beziehung zum Bewerber/Entwickler.

Nicht alle Programmierer sind interessiert daran seitenlange Abhandlungen oder Besprechungen irgendeiner Strategie zu lesen - sie haben genügend eigene Ideen, die sie selbst noch prüfen und bestätigen müssen. Neue Information ist daher einfach nicht vonnöten

Und nicht jeder schaut sich einen Referenten an, der über den Bau von Trendlinien und ihre Funktion in seinem System spricht - dann doch lieber einen guten Fernsehfilm. Solche Vorträge sind oft ziemlich ermüdend und - was noch schlimmer ist - sehr schwer zu formalisieren. Es wird Momente geben, da müssen Sie sich buchstäblich selbst erschaffen (also die logischte Erklärung finden), einige Elemente bleiben einfach der Spekulation überlassen oder müssen mittels Experiment ausgewählt werden und bei einigen Punkten muss man schließlich zusätzliche Informationen suchen und eingehend studieren. Insgesamt ist das alles ziemlich aufwendig und kreativ - diesen Prozess sollte man also nicht unterschätzen.

Ich möchte hier diejenigen separat ansprechen, die gerne via Skype oder Telefon kommunizieren. Sehr häufig ist der Wunsch, seine Strategie mündlich zu beschreiben, nicht nur auf die Unlust zurückzuführen, diesbezüglich extra Handlungen ausführen zu müssen (Text mit einer Tastatur eintippen), sondern, was noch schlimmer ist, auf den Mangel an Verständnis der Strategie seitens des Urhebers selbst.

Es ist unmöglich, ein Set an Handelsregeln zu bauen, die allein auf Vermutungen und Intuitionen des Urhebers beruhen - kurz: es ist extrem schwer, eine emotionale und nicht wirklich geordnete Geschichte umzusetzen. Und, wie im Fall des langen Videovortrags, ist der Programmierer nicht immer daran interessiert, sich solch tolle "Enthüllungen" anzuhören - denn um ein Programm zu schreiben, braucht er einen Algorithmus und den muss ja immer erst noch jemand schreiben.

Es ist schwer, die Bedeutung moderner Technologie zu überbewerten - es ist viel leichter, bei der Kommunikation per Sprache oder Video eine gemeinsame Sprache zu finden und Ihrem Begleiter ein Bild von Ihrem Monitor zu zeigen. Doch die Konversation wird weitaus ergiebiger, wenn es einen echten Diskussionsgegenstand gibt. Also formulieren Sie Ihre Gedanken auf Papier, und schon während des Gesprächs können Sie gleich eine vollwertige Aufgabe vorbereiten - einfach durch kleine erklärende Verbesserungen an einem bereits vorbereiteten Text.

Sie sollten aus dem oben Genannten folgende Schlussfolgerungen ziehen:

Wenn Sie aus der Beschreibung einen klaren Strategie-Algorithmus ziehen können - dann machen Sie das gleich selbst und übermitteln dem Programmierer nur die notwendige Information.
Wenn der Formalisierungsprozess sehr komplex ist und eine Menge Arbeit verlangt, dann erwarten Sie nicht, dass ein Programmierer dafür kein Honorar verlangt.

Ich hoffe, dass Sie nun ein gutes Verständnis davon bekommen haben, was eine Auftrag ist, sodass wir uns jetzt mit der Auswahl der richtigen Person zu ihrer Umsetzung beschäftigen können.


6. Den richtigen Bewerber/Entwickler wählen

Die ausführende Partei auswählenDie Frage nach der Auswahl eines Programmierers wurde in dem Moment wichtig, indem dieser Service angeboten wurde. Jede Kunde möchte so wenig wie möglich zahlen und dafür die maximal mögliche Qualität bekommen. Im Idealfall sollte die Software von den besten Fachleuten geschrieben werden und zudem auch noch kostenlos sein. Ein hehres Ziel, dessen Verwirklichung beim Zurechtfinden unter teuren Experten und Anfängern anzustreben ist.

Bei der Auswahl des Entwicklers zur Umsetzung Ihres ersten Auftrags, rate ich Ihnen dringend, folgende Kriterien zu bewerten:

  1. Erfahrung im öffentlichen Schreiben von Programmen in MQL4/MQL5.
    Ist der EA-Entwickler erst seit letzter Woche auf dem Markt, kann es gut sein, dass er nächste Woche auch schon wieder verschwunden ist. Natürlich kann auch plötzlich ein "Profi" mit zwei Jahren Erfahrung auftauchen, doch die Wahrscheinlichkeit hierfür ist erheblich geringer. Schläft die Kommunikation mit dem Entwickler ein, wird dadurch nicht nur die Fähigkeit bedroht, eine neue Bestellung aufzugeben, sondern auch:
    • der Support nimmt ab (es gibt keine Software ohne Fehler, es gibt nur schlecht getestete Programme);
    • die Komplexität, selbst minimale Verbesserungen einzubauen (es ist immer schwerer am Code anderer Personen zu arbeiten, daher kann ein zweiter Entwickler, selbst für kleine Veränderungen, durchaus ein angemessenes Honorar verlangen.)

  2. Feedbacks echter Kunden.
    Diese Praxis ist das Kriterium der Realität. Wenn jemand Programme geschrieben hat, die von echten Händlern benutzt werden, heißt das, seine Arbeit funktioniert. Denn andernfalls würden Sie ja immer wieder auf Feedback stoßen, das seine mangelnde Professionalität aufzeigen.
    Wenn Sie andere Händler kennen, die bereits die Dienstleistungen eines Programmierers in Anspruch genommen haben, fragen Sie sie um Rat - dann bekommen Sie später zumindest das erwartete Ergebnis.

  3. Online Verfügbarkeit.
    Niemand möchte gerne mehrere Tage auf die Antwort auf einen Brief warten. Und manchen sind schon 2 Stunden zu lang.
    Beobachten Sie die Person - ist sie oft online und antwortet sie auf Nachrichten schnell oder nicht. Das wird Ihnen später eine ganze Menge Zeit sparen.

  4. Kommunikationsmethoden.
    Heutzutage gibt es eine ganze Menge Arten der Kommunikation per Internet: E-Mail, die Messengers, Programme für Voice- und Video-Chat und private Nachrichten der Internet-Ressourcen. Einige Menschen sind mit einer Methode gut vertraut, andere hingegen mit einer anderen. Für eine gute und sinnvolle Kommunikation sollte man sich also zunächst auf das Medium einigen, das beiden Beteiligten am besten zusagt. Dazu ein weiteres Programm zu installieren ist keine große Sache, doch manche möchten dies einfach nicht, da sie den Bedarf dafür nicht erkennen.
    Wenn Sie eine Live-Kommunikation brauchen (also per Skype), fragen Sie Ihren Entwickler, ob er dazu entsprechend ausgerüstet und dazu bereit ist. Vereinbaren Sie vor allem bereits im Vorfeld, ob Sie via Telefon kommunizieren oder sich persönlich treffen wollen - nicht jedermann ist damit einverstanden, seine Arbeit "offline" auszuführen.

  5. Bedingungen der Zusammenarbeit.
    Bevor Sie eine Bestellung platzieren, sollten Sie unbedingt alle Bedingungen der Zusammenarbeit ermitteln und festlegen:
    • Ist es möglich, via des "Freie Mitarbeit" Service zusammenzuarbeiten? Ein "Ja" auf diese Frage, beantwortet bereits den Großteil aller anderen Fragen.
    • Ist eine Anzahlung notwendig und wenn ja, in welcher Höhe?
    • Wie wird das Programm geprüft? Erhalten Sie vom Entwickler eine Demoversion?
    • Erhalten Sie den Quellcode des Programms und wenn ja, wann - nach vollständiger Bezahlung oder gleich nach Abschluss des Auftrags?
    • Wem gehören die Rechte an der Verbreitung des Programms?
      Eine Prüfung der Integrität des Programmierers wird nie ganz funktionieren, doch lohnt es sich dennoch folgenden Punkt formell zu klären: steht der Programmierer im Verdacht, immer wieder EAs oder Algorithmen von Kunden zu verkaufen, dann eilt ihm mit Sicherheit ein entsprechender Ruf bereits voraus.
    • Über welchen Zeitraum erstreckt sich der technische Support und zu welchen Bedingungen? Werden potenzielle Fehler (Abweichungen vom Algorithmus) kostenlos behoben? Wie teuer sind kleinere Verbesserungen?
    All diese "Kleinigkeiten" sollten auf jeden Fall vor Beginn einer finanziellen Beziehung geklärt werden, denn nachher geht so etwas immer nur sehr schwer.

  6. Bezahlungsmethoden.
    Welche elektronischen Bezahlungssysteme verwendet der Entwickler? Kann der Auftrag per Banküberweisung oder Kreditkarte bezahlt werden?
    Achten Sie auch darauf, alle Voraussetzungen für die Währung, in der bezahlt werden soll, zu prüfen. Das Internet ist international, sodass nicht jeder etwas mit Rubel anfangen kann.

  7. Art der Zusammenarbeit.
    Sollten Sie nicht nur an einer einmaligen Zusammenarbeit interessiert sein, sondern nach einem ständigen Partner suchen, versuchen Sie herauszufinden, ob Sie beide auch als "Typen" miteinander klarkommen. Verkehren Sie miteinander, erklären sich die jeweiligen Voraussetzungen und Anforderungen, die Sie an Ihren Gegenüber stellen, beschreiben sich Ihre Sicht auf die Welt, Ihre Prinzipien und Schwächen (soweit das innerhalb Ihrer Eigenreflexion geht).
    Oder als Alternative: bestellen Sie einfach beim Ersten, der Ihnen zusagt und klären dann alles Weitere im Prozess. Doch dann kann es vorkommen, dass dieser Partner vielleicht später weit hinter seinem ersten Versuch zurückbleibt.

  8. Kosten des Auftrags.
    Vielleicht der wichtigste Punkt. Würde mir jemand ein Programm für USD 10 anbieten, dann würde ich an der Ernsthaftigkeit dieser Person zweifeln. Doch USD 1000 für ein Programm möchte ich halt auch nicht zahlen - die reellen Angebote liegen irgendwo dazwischen Der Preis gibt einerseits Aufschluss über die Professionalität des Ausführenden und hängt andererseits von seinem Interesse und seiner Auftragslage ab. Einen "Mercedes" gibt's nicht für USD 5.00, aber ein "Opel Corsa" sollte eben auch nicht die Welt kosten.


Das Thema "einer Liste mit Programmierern" haben wir wiederholt angesprochen - eine Auflistung von Spezialisten samt Kontaktinformationen und Kundenrezensionen, die alle sofort einsatzbereit sind. Es gibt mehrere Versuche, so eine Liste anzulegen - vor mir in meinem Beitrag "Ein maßgeschneiderter Expert Advisor. Handbuch für einen Händler " in mql4.com, von unabhängigen Besuchern des Forums, und einfach nur von Menschen, die mit diesem Thema nichts zu tun haben. Und so eine Liste könnten die Auswahl für den ersten Auftrag wirklich erleichtern.

Doch genauso wie vor einigen Jahren, gibt es eben keine umfassende und ständig aktualisierte Liste. Wir können gerne gemeinsam versuchen, sie endlich ein für allemal anzulegen, doch dieses Thema würde den Rahmen meines Beitrags hier wirklich sprengen.


7. Sich selbst vor Betrug schützen

Es gibt verschiedene Menschen und es gibt verschiedene Situationen. Selbst die vertrauenswürdigsten EA-Entwickler können plötzlich verschwinden, ohne den Auftrag abgeschlossen zu haben und selbst die verantwortungsvollste Personen kann gegen die Bedingungen der Vereinbarung unter dem Druck der Umstände verstoßen. Gehen Sie keine Risiken ein, wo dies nicht notwendig ist - verwenden Sie den "Freie Mitarbeit" Service!

Unter ständiger Beobachtung der Entwicklung der Strategie des automatischen Handels hat die MetaQuotes Software Corp. Mitte 2010 einen neuen Service vorgestellt, dessen Hauptzweck die Organisation der Kunden-Entwickler Beziehung ist. Binnen sechs Monaten nach seiner Einführung ist dieser Service extrem beliebt geworden und wird von Händlern und Programmierern täglich genutzt.

Mehr Informationen über diesen Service finden Sie in der offiziellen Ankündigung im Forum und im Beitrag wie man ihn nutzt:

Der Hauptunterschied zwischen dem "Freie Mitarbeit" Service der MQL5.community und dem Großteil ähnlicher Ressourcen und Dienste anderer Webseiten, liegt in der Sicherheit. Sowohl Kunde als auch Programmierer sind während der gesamten Zeit der Zusammenarbeit vor fahrlässigen Handlungen der jeweiligen Gegenseite geschützt. Sollte es zu Meinungsverschiedenheiten oder Streitigkeiten kommen, übernimmt dieMetaQuotes Software Corp. die Rolle des Schiedsrichter.

Doch trotz aller Sorgfalt und formeller Aspekte des Service, kommt es bei seiner Nutzung dennoch zu Problemen, von denen der Großteil vermeiden werden kann, wenn man sich an einige einfache Regeln hält:

  1. Bevor Sie eine neue Bestellung ausarbeiten (wenn Sie der Händler sind), oder Vorschläge zu einer Umsetzung machen (wenn Sie der Programmierer sind), sollten Sie sich auf jeden mit den Nutzungsbedingungen des Service vertraut machen. Denn viele Streitigkeiten sind nur die Folge unaufmerksamen Lesens oder eines mangelnden Verständnisses dieser Bedingungen. Sollten Ihnen einige Punkte unklar sein oder, Ihrer Meinung nach, schwammig ausgelegt werden, stellen Sie entsprechende Fragen zur Klärung in der Spezialabteilung. Vielleicht sind es genau Ihre Fragen, aufgrund derer die Bedingungen nachher einfacher und klarer werden.

  2. Bereiten Sie bei der Bestellung eines Expert Advisors einen eindeutig klaren Algorithmus vor.
    Dieser Aspekt wird in mehreren Kapiteln dieses Beitrags behandelt, daher gehe ich hier jetzt nicht noch einmal darauf ein.

  3. Wählen Sie einen geeigneten Bewerber/Entwickler mit einem angemessenen Honorar und Zeitfenster für den Auftrag. Lassen Sie sich nicht von "Gratisangeboten" einfangen - die gibt es in Wirklichkeit nicht.
    Sehen Sie sich das Portfolio des Entwicklers an und studieren die Feedbacks zu seinen abgelieferten Aufträgen. Vergewissern Sie sich, dass er nicht zu sehr mit anderen Aufträgen beschäftigt ist, denn das könnte ein Grund sein, warum er Ihren Auftrag nicht fristgerecht abliefert.
    Und vergessen Sie nicht, dass die Zeit der Umsetzung nach Abschluss des zweiten Schritts (Verhandlung über die Anforderungen) gerechnet wird - die Einzelheiten des Vorgangs sind nicht geregelt, sodass der Zeitplan für den Auftrag einzig von Ihnen und dem Programmierer abhängt.

  4. Führen Sie alle diesbezügliche Kommunikation mittels der Nachrichten-Funktion im "Freie Mitarbeit" Service durch - denn nur so können sie im Falle evtl. Streitigkeiten für eine Schlichtung herangezogen werden.
    Selbst wenn Sie per ICQ oder Skype kommunizieren, sollten Sie alle Schlüsselmomente in den Anmerkungen des "Freie Mitarbeit" Service dokumentieren.

  5. Verfolgen Sie alle Updates der Arbeiten, die damit zusammenhängen (egal ob als Kunde oder als Ausführender): sehen Sie sich regelmäßig Ihre persönlichen Nachrichten an, erlauben Sie, dass Ihre E-Mail Benachrichtigungen erhalten kann oder geben in Ihrem Profil Ihre Mobiltelefonnummer an, damit man Sie per SMS benachrichtigen kann.
    Wenn Sie sich nicht regelmäßig auf den neuesten Stand des Arbeitsablaufs bringen, dann wird der Auftrag ohne Sie abgeschlossen - und nicht immer zu Ihrer Befriedigung. Zum Fälligkeitsdatum kann der Auftrag u.U. aktiv von der Gegenseite geschlossen werden.

In allen anderen Aspekten unterschiedet sich die Nutzung dieses Service nicht sehr von der Arbeit ohne Zwischenhändler, außer dass der Entwickler eine geringe Provision an den "Freie Mitarbeit" Service bezahlt, der zur Organisation des ganzen Ablaufs verwendet wird.


8. Die Ergebnisse prüfen

Die letzte Etappe unserer Reise ist die Prüfung des abgeschlossenen Auftrags. Um sicherzugehen, dass das Programm auch gemäß des genehmigten Algorithmus arbeitet, müssen Sie es sorgfältig und gründlich testen.

  1. Testen Sie es unter unterschiedlichen Bedingungen: auf verschiedenen Arten von Accounts, Währungspaaren, Zeitrahmen, mit verschiedenen Parameterkombinationen - das Programm sollte in jeder Situation immer stabil und korrekt arbeiten (wenn im Algorithmus nicht explizit eine "Nachsicht" angegeben ist).

  2. Überprüfen Sie das Programm nicht nur im Strategie-Tester, sondern auch auf einem Demo-Account. Mit Hilfe des Strategie-Testers stellen Sie rasch offensichtliche Fehler fest und können die Strategie zu verschiedenen History-Intervallen prüfen. Das Online-Testen zeigt Ihnen, wie das Programm unter annähernd echten Bedingungen arbeitet. Sie können auch "Ablenkungen" für das Programm erzeugen - starten Sie den Client-Terminal neu, verbinden sich mit unterschiedlichen Accounts, lassen andere Expert Advisors oder Indikatoren laufen, ändern während der Arbeit des Programms Einstellungen - es ist auf jeden Fall ratsam, sich mit den Features des Verhaltens des Programms in unterschiedlichen Situationen an dieser Stelle vertraut zu machen.

  3. Vergleichen Sie die Arbeit des Expert Advisors mit dem genehmigten Algorithmus, anstatt mit Ihren Erwartungen der Systemrentabilität. Sollte sich herausstellen, dass der Algorithmus im Prüfprozess einen Fehler aufweist, führen Sie die erforderlichen Veränderungen durch und bitten den Entwickler, den Expert Advisor entsprechend zu modifizieren. Doch erwarten Sie nicht, dass er dies kostenlos tut (insbesondere dann, wenn es sich um eine erhebliche Verbesserung handelt), denn diesen Fehler hat ja nicht er verschuldet.

Sobald Sie ein Problem feststellen, melden Sie es dem Auftragnehmer/Entwickler.

  1. Geben Sie genau den Teil des Algorithmus an, der vom Programm inkorrekt verarbeitet wird (oder die Stelle wo die Handlungen fehlerhaft werden).
    Ist die spezifische Stelle, an der die Logik verletzt wird, schwer zu finden, beschreiben Sie das Problem mit Ihren eigenen Worten und versuchen dabei, nicht zu weit vom Algorithmus abzuschweifen.

  2. Beschreiben Sie genau unter welchen Bedingungen der/die Tests durchgeführt wurden:
    • Hängen Sie eine SetFile mit den Programmparametern an (mittels "Speichern" im Fenster "Optionen" des Expert Advisors);
    • Geben Sie das verwendete Währungspaar und den Zeitrahmen des Charts an;
    • Geben Sie die Serveradresse an, mit der der Terminal verbunden war sowie die Art des Accounts (Demo, Echt, Wettbewerb oder sonst einer);
    • Geben Sie die Version der Ausführung des Client-Terminals an ("Hilfe"-Menü : "Über");
    • Haben Sie das Programm im Strategie-Tester überprüft, geben Sie die Einstellungen des Strategie-Testers an (Testperiode, Art der Ausführung und Modus, ursprüngliches Depot, die Hebelwirkung).

  3. Hängen Sie ggf. einen Screenshot an, der das Problem veranschaulicht.

  4. Hängt das Problem mit dem Öffnen oder Schließen einer Position zusammen, kopieren Sie den Auszug aus dem Bericht des Strategie-Testers oder einige Zeilen aus der Account-History.

  5. Hängen Sie die Protokolldateien des Expert Advisors an (dazu im Kontextmenü der Registerkarte "Experts" des Client-Terminals oder in der Registerkarte "Protokolle" im Strategie-Tester "Öffnen" wählen).

Je mehr Informationen ein Programmierer hat, desto schneller und leichter kann er das Problem feststellen und beheben. Ich hoffe, dass Sie nach all den Beschreibungen der einzelnen Schritte genau das bekommen, was Sie wollen. Doch stürzen Sie sich bitte noch nicht gleich in den stressigen Alltag eines Händlers - nehmen Sie sich einen Moment Zeit und teilen Ihre Erfahrungen mit anderen.


9. Feedback geben

Feedback geben

MQL ist eine Community, die stetig wächst - und Sie gehören dazu.

Erinnern Sie sich daran, wie Sie einen Programmierer ausgewählt und die ersten Spezifikationen Ihres Auftrag vorbereitet haben - was hätte Ihnen bei diesen Schritten geholfen? Teilen Sie Ihre Erfahrungen mit anderen!

Schreiben Sie einen klaren Algorithmus, der als Beispiel für andere zum Nachmachen dienen kann. Helfen Sie Neulingen dabei, ihre Strategien zu formulieren oder zeigen ihnen, das dies oder jenes nicht geht - ersparen Sie einem weiteren Sucher des heiligen Grals, dass all seine Hoffnungen auf einmal zerplatzen.

Berichten Sie von Ihren Erfahrungen mit Programmierern, weisen genau auf ihre Stärken und Schwächen hin und beschreiben, was Ihnen am besten gefallen und wo es Probleme gegeben hat. Für Sie bedeutet das knappe 10 Minuten Arbeit, doch für andere Händler bedeutet es eine Menge Geld- und Nervenersparnis.

Ich freue mich immer über konstruktive Kommentare und bin daher gespannt über jede Anmerkung und Kritik zu diesem Beitrag. Wenn einige Abschnitte Ihrer Meinung nach noch ausgearbeitet gehören oder irgendwo etwas vergessen wurde oder, im umgekehrten Fall, irgendwo zu viel steht - lassen Sie es mich wissen!

Dieser Beitrag war als Hilfsmittel gedacht, eine ordentliche Beschreibung einer freien Mitarbeit zu verfassen, hat jedoch tatsächlich eine Menge, damit zusammenhängender Themen behandelt. Ich wollte, dass er leicht zu lesen ist, alles Notwendige darstellt und wirklich hilfreich ist. Wenn Sie also bereits bis hierher gelesen haben, dann nehmen Sie sich bitte auch noch die paar Minuten und schreiben ein kurzes Feedback. Denn dank Ihrer Kommentare kann dieser Beitrag nur besser werden.

Die skeptischen Blicke meiner Expert Advisor Entwicklerkollegen vorwegnehmend, möchte ich an dieser Stelle darauf hinweisen, dass dieser Beitrag auf Anfrage der MetaQuotes Software Corp. verfasst wurde. Er dient nicht dem Zweck, meine Dienstleistungen anzupreisen, sondern vielmehr bei der Errichtung einer sinnvollen Kultur der Zusammenarbeit zwischen Kunden und Programmierern zu helfen.

Und ich hoffe, dass auch Sie, als echter Profi, diese Bemühungen unterstützen und damit unser gemeinsames Geschäft auf eine neue Stufe bringen. Ich freue mich auf Kommentare und Beobachtungen von Ihrer Seite.


Fazit

Automatisches Handeln erlebt kontinuierlich einen neuen Aufschwung. Wie und wohin sich dieser Aufwind bewegt, hängt von uns ab.

Schaffen wir also jetzt eine Kultur an gegenseitigen Beziehungen, damit wir in naher Zukunft ihre Früchte in Form qualitativ hochwertiger Expert Advisors genießen können.