Wenn du willst Programm ein Expert Advisor, ist es wichtig zu prüfen, wie Sie wahrscheinlich, um die Datei zu verwenden sind. Der häufigste Fehler, dass ich Neues zu sehen MMS-Programmierer ist, dass sie sich zu sehr auf das Gedächtnis. Ereignisse wie Stromausfall, ein Festplattencrash oder schwache Internetverbindung können verheerend, wenn der Handel mit einem Expert Advisor anrichten. Die EA sollten im Idealfall in der Lage zu holen und ausgeführt, wenn Sie in der Lage, die Bedingungen auf Normalbild zurück sind sein.
Speicherprobleme
Probleme, die von etwas banal wie das Ändern der Einstellungen führen manchmal. Ich erfuhr, dass die harte Tour, wenn ein Client kam zu unserem Dallas Büro für zwei Wochen, um eine sehr komplexe EA bestellen. Alles funktionierte perfekt in der backtester. Die Nacht-Tests, jedoch, nie dauerte mehr als ein paar Stunden, bevor etwas ging drunter und drüber. Ich wies den Client nicht auf die Einstellungen zu ändern; einfach einschalten und lassen Sie es allein. Aus welchem Grund auch immer, die Bedeutung dieser Anweisung nie versank in. Es hat mich Alters zu erkennen, dass seine Definition “Verlassen sie allein” didn’t quite mesh with mine. Die kleinen Tweaks, dass er während des Handels mit den Einstellungen durcheinander gemacht, die ich im Speicher abgelegt.
Ich kann eine Client-Software anweisen, in einer bestimmten Weise zu verwenden. Mehr als oft nicht, sie von den Anweisungen zu einem gewissen Grad abweichen. It’s human nature. Ich aus diesen Herausforderungen gelernt, wie jeder Fachmann sollte. Unsere Programmierung Vorlagen in der Struktur verändert, um die Notwendigkeit für besondere Anweisungen zu minimieren.
Globale Variablen
Globale Variablen sind ein gemeinsames Instrument, um die Frage der Berufung auf Speicher zu vermeiden. Wenn ein EA ist aus dem Diagramm entfernt, die globalen Variablen, die es erstellt für Sie zugänglich sind, die EA oder andere EA, von überall innerhalb des MetaTrader lesen.
Obwohl die Verwendung von globalen Variablen klingt anspruchsvoll, it’s actually a very simplistic approach. MetaTrader hält eine versteckte Textdatei in seinem Installationsverzeichnis mit dem Variablennamen, der Wert, den es zu speichern, und die Zeit der letzten Änderung. Wenn mehr als 6 Wochen seit der letzten Zeit abgelaufen MQL verwendet die globale Variable, MetaTrader löscht diese.
A Martingal System könnte sich dafür entscheiden, eine globale Variable verwenden, um eine einfache Statistik verfolgen. Martingale sind wild mit ihren Umgang mit Risiken, so ein Händler realistischer wollen auf einen Blick das maximale Niveau gehandelt wissen. Globale Variablen einen triviale Aufgabe, aus dieser Notwendigkeit. Wenn die nächste Stufe, den Handel größer ist als die globale Variable ist, dann ist die MMS-Code sollte die globale Variable zu aktualisieren.
Der einzige Punkt zu erinnern ist, dass die globalen Variablen nach sechs Wochen auslaufen. Die EA müssen möglicherweise die Informationen durch Rücksetzen des globalen Wert, um den aktuellen Wert zu aktualisieren. Doing so would keep the variable fresh from MetaTrader’s perspective.
Lesen Sie Informationen anstatt es zu speichern
Ich bevorzuge es sich verlassen MQL‘s OrderSelect() Befehl, um neu zu erstellen, was Informationen brauche ich. Es ist zwar komplexer, der Vorteil ist, dass die EA kann jederzeit funktionieren, überall, genau so, wie entworfen. Wenn die Festplatte abstürzt, it’s not a problem from a recovery perspective. Sie sind immer noch in Schwierigkeiten während der Stillstandszeit, Obwohl. Sie können den gleichen EA auf Ihrem MT4-Konto laden und haben es sofort zu rekonstruieren, die Informationen.
Unter der oben Martingal Szenario, konnten wir die Anzahl der Ebenen, indem die Öffnungs- und Schließzeiten der Trades gehandelt zu rekonstruieren. Wenn Handel #1 hat eine enge Zeit 2011 Dec. 5 00:00 und Handel #2 hat auch eine enge Zeit 2011 Dec. 5 00:00, es sagt uns, dass sie Teil der gleichen Handelsgruppe sind. Bisher, wir haben 2 Ebenen gehandelt werden. Wenn Handel #5 bei geschlossen 2011 Dec. 5 00:00 aber keine Geschäfte danach tat, dann wissen wir, dass wir gehandelt 5 Ebenen insgesamt. Der EA kann dann eine Schleife durch alle möglichen Kombinationen und suchen Sie sich die höchste Anzahl von derjenigen.
Der Ansatz, den Zugriff auf die Auftragshistorie ist ein bisschen übertrieben für dieses einfache Beispiel, aber es praktisch, wenn Sie zu komplizierteren Informationen dynamisch berechnen müssen und mit einer minimalen Fehlerrisiko kommt.