EvolutionaryTrader
- Experten
- Dipak Dilip Reddy
- Version: 3.4
Der bereitgestellte Code ist ein Beispiel für einen Expert Advisor (EA), der in MQL5 geschrieben wurde, einer Programmiersprache, die für die Erstellung algorithmischer Handelssysteme in MetaTrader 5 verwendet wird. Hier ist eine Aufschlüsselung des Codes:
Der Code beginnt mit verschiedenen Eingabeparametern und Einstellungen, die mit dem Schlüsselwort input definiert werden. Diese Parameter ermöglichen die Anpassung des EA-Verhaltens, wie z. B. Einstiegslose, Stop Loss, Take Profit und Indikatorparameter.
Es werden mehrere konstante Werte und Variablen deklariert, darunter Einstellungen für die Sitzungszeit, positionsbezogene Variablen, stabbezogene Variablen und Indikator-Handler.
Die Funktion OnInit() wird während der Initialisierung des EAs aufgerufen. Sie richtet verschiedene Variablen und Indikatoren ein, die für den Betrieb des EAs erforderlich sind.
Die Funktion OnTick() wird bei jedem vom EA empfangenen Tick ausgeführt. Sie prüft, ob sich ein neuer Balken gebildet hat und ruft entsprechend die OnBar()-Funktion auf.
Die OnBar()-Funktion ist für die Verwaltung der Logik des EA bei jedem neuen Balken verantwortlich. Sie aktualisiert die Position, prüft auf Session-Close-Bedingungen, verwaltet die Positionsschließung, den Trailing-Stop und bestimmt Einstiegssignale für die Eröffnung neuer Positionen.
Die Funktion UpdatePosition() ruft Informationen über die aktuell offene Position ab, wie z.B. Positionstyp, Ticket, Lots, Stop Loss und Take Profit.
Die Funktion InitIndicators() initialisiert die erforderlichen Indikatoren für den EA. In diesem Beispiel fügt sie zwei Indikatoren hinzu: RSI und Standardabweichung.
Die Funktion GetEntrySignal() berechnet das Einstiegssignal auf der Grundlage der definierten Indikatoren und ihrer jeweiligen Parameter. Sie bestimmt, ob eine Kauf-, Verkaufs- oder keine Position (OP_FLAT) eröffnet werden soll.
Die Funktion ManageClose() prüft, ob die Bedingungen für das Schließen einer offenen Position erfüllt sind. In diesem Fall prüft sie eine bestimmte Bedingung in Bezug auf den Indikator Standardabweichung.
Die Funktion OpenPosition() eröffnet eine neue Position auf der Grundlage des angegebenen Befehls (Kauf oder Verkauf). Sie berechnet die Stop-Loss- und Take-Profit-Preise auf der Grundlage der Eingabeparameter und ruft die Funktion ManageOrderSend() auf, um den Handel auszuführen.
Die Funktion ClosePosition() schließt die aktuell offene Position, indem sie einen entgegengesetzten Handel ausführt.
Die Funktion ManageOrderSend() wickelt den Auftragssendeprozess ab. Sie versucht, die Order mehrmals zu senden und wartet eine bestimmte Zeit zwischen den Wiederholungen. Sie prüft, ob der Handelskontext frei ist, führt Auftragsprüfungen durch und sendet den Auftrag mit der Funktion OrderSend(). Sie behandelt auch den Fall, dass der Ausführungsmodus der Order geändert werden muss.
Die übrigen Funktionen ModifyPosition(), CheckOrder(), GetStopLossPrice(), GetTakeProfitPrice(), GetTrailingStopPrice() und ManageTrailingStop() sind für die Änderung von Positionen, die Überprüfung von Aufträgen, die Berechnung von Stop-Loss/Take-Profit-Preisen und die Verwaltung der Trailing-Stop-Funktionalität zuständig.
Der Code enthält auch die Funktion OnDeinit(), die aufgerufen wird, wenn der EA aus dem Chart entfernt oder neu geladen wird. Sie bereinigt alle dem Chart hinzugefügten Indikatoren, indem sie diese löscht.
Bevorzugt: USDCAD H1
Bevorzugte Makler:Octafx incorporated.

I have been using EA for 2 weeks and it gives quite a lot of income. It's coming along well. Will post an update in a few weeks.
Profitable EA
From July 15 to August 1 account grow up 29.92%
7 trades 100% win.