Die Sprache MQL5 von Grund auf selbst erlernen - Seite 56

 
Valeriy Yastremskiy:

Im Allgemeinen gibt es zwei Motivationen mit entgegengesetzten Auswirkungen. Ein engerer SL reduziert den Verlust und erhöht die Wahrscheinlichkeit, dass der SL erreicht wird. Wenn die SL wird in Bezug auf die Volatilität zu schließen, dann natürlich Ihre Option ist besser, wenn auf einem normalen Niveau und Ziehen der SL wird keinen Einfluss auf die Häufigkeit der Auslösung, dann meine.

Sie haben bereits in das Reich der Strategie laufen ;) lehren mich,zuerst 1 bu setzen und dann bewegen sie

 
VVT:

Sie haben bereits in das Reich der Strategie laufen;) lehren mich, wie manzuerst 1 boo setzen und dann bewegen sie

Hallo! Einerseits haben Sie Recht - Sie können einfach bei einem Break-Even aufhören und einen Code nur für diesen schreiben. Aber wenn Sie anfangs keine Ahnung haben, wie ein Trailing-Stop im Allgemeinen funktionieren sollte, ist er meiner Meinung nach nicht die beste Option. Außerdem werden fast alle Expert Advisors auf der Grundlage einer klar definierten Strategie geschrieben. Wie man in solchen Fällen sagt, "wir müssen uns an der Küste einigen".

Ich habe das Gefühl, dass ich den Programmierer wieder "erwecke".

Mit freundlichen Grüßen, Vladimir.

 
Vasiliy Sokolov:

So habe ich das verstanden. Sie haben zwei Funktionen zur Neupositionierung von Trailing-Stops. Die erste Funktion verschiebt den Trailing-Stop-Loss auf Breakeven, gesteuert durch den Parameter "Trailing Level", die zweite Funktion zieht den Stop-Loss weiter hinter den Preis, gesteuert durch den Parameter "Trailing Step". Imho würde ich den ersten Parameter als "Stop Loss Breakeven Level" bezeichnen, da es sich nicht um einen Trailing-Stop-Loss, sondern um eine Stop-Loss-Übertragung handelt.

Ja, Wassili, das ist richtig! Sie haben meine Vorstellung von einem Trailing-Stop richtig verstanden und formuliert. Der Parameter hätte von Anfang an denselben Namen tragen sollen: "Trailing Stop Loss Level to Breakeven". Meine Terminologie ist immer noch nicht perfekt. Ich danke Ihnen!

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Hallo! Einerseits haben Sie Recht - Sie können einfach bei einem Break-Even aufhören und einen Code nur für diesen schreiben. Aber wenn Sie anfangs keine Ahnung haben, wie ein Trailing-Stop im Allgemeinen funktionieren sollte, ist dies meiner Meinung nach auch nicht die beste Option. Außerdem werden fast alle Expert Advisors auf der Grundlage einer klar definierten Strategie geschrieben. Wie man in solchen Fällen sagt, "wir müssen uns an der Küste einigen".

Ich habe das Gefühl, dass ich den Programmierer wieder "erwecke".

Mit freundlichen Grüßen, Vladimir.

Hallo! Wenn Sie lernen, den Stop Loss einmal schrittweise zu verschieben, können Sie ihn später 100 Mal verschieben, wenn es nötig ist, wenn Sie genug Platz dafür haben ;)

Der Expert Advisor wird an die Strategie angepasst, nicht umgekehrt

 
MrBrooklin:

Ja, Wassili, du hast völlig recht! Sie haben meine Vorstellung von einem Trailing-Stop richtig verstanden und formuliert. Der Parameter sollte ursprünglich so heißen: "Trailing Stop Loss Level to Breakeven". Meine Terminologie ist immer noch nicht perfekt. Ich danke Ihnen!

Mit freundlichen Grüßen, Vladimir.


Guten Tag, Vladimir. Sehen Sie sich diesen Beitrag an. Sie können Schleppnetze ab der Gewinnstufe ändern und müssen sich nicht mit der speziellen Stufe der Übertragung auf die Gewinnschwelle befassen.
https://www.mql5.com/ru/forum/352460/page55#comment_18711100
 
Aleksey Masterov:

Guten Tag, Vladimir. Schauen Sie sich diesen Beitrag von mir an. In Schleppnetzen können Sie von der Gewinnschwelle bis zum Erreichen der Gewinnschwelle gehen und müssen sich nicht um die hervorgehobene Transferschwelle kümmern.
https://www.mql5.com/ru/forum/352460/page55#comment_18711100

Hallo Alexey, entschuldige, dass ich nicht sofort auf deinen Beitrag reagiert habe. Dieser Link ist sehr interessant. Ich habe alle 11 nachgestellten Codes und Funktionsbibliotheken durchgesehen. Das ist alles sehr interessant, auch wenn es in MQL4 geschrieben ist. Um ehrlich zu sein, hätte ich nie gedacht, dass es so viele Arten von Trailing Stops gibt. Herzlichen Dank für Ihre Unterstützung!

Mit freundlichen Grüßen, Vladimir.

 

Guten Morgen allerseits und gute Laune!

Ich lerne weiter die Programmiersprache MQL5. Unter Berücksichtigung der Korrekturen von Vasily Sokolov sieht der Algorithmus des Trailing Stop Loss bei offenen Positionen nun

wie folgt aus:
  1. Erstellen Sie einen EA zur Automatisierung der Nachverfolgung (Tracking) des Stop-Loss-Niveaus einer offenen Position.
  2. Erstellen Sie im Expert Advisor einen Block von Eingabeparametern mit zwei Parametern: "Stop-Loss-Niveau bis Breakeven" und "Trailing Step".
  3. Wenn neue Kurse eintreffen, verarbeiten Sie diese mit OnTick( ). Trailing stoppt nur, wenn ein neuer Tick auf dem aktuellen Symbol erscheint.
  4. Wir fordern Daten zum Zeitpunkt des Empfangs des OnTick-Ereignisses an.
  5. Für jede Kaufposition
  6. ermitteln wir, wo der aktuelle Kurs im Verhältnis zum Kurs der offenen Position steht.
  7. Wenn der aktuelle Kurs höher ist als der Kurs der offenen Position, prüfen wir, auf welchem Niveau er gestiegen ist.
  8. Wenn der aktuelle Kurs das in den Eingabeparametern angegebene Niveau "Stop Loss ohne Verlust" erreicht hat, verschieben wir den Stop Loss auf ein Niveau ohne Verlust, das dem Eröffnungskurs derKaufpositionentspricht . Ansonsten tun wir nichts.
  9. Wenn der aktuelle Kurs das "Stop Loss Breakeven Level" um den Wert des "Trailing Stop" überschritten hat, wird der Stop Loss vom Eröffnungskurs der Kaufposition um den Wert des "Trailing Stop Levels" verschoben und so weiter, bis der Kurs das für diese Position festgelegte Take Profit Level erreicht
  10. .
  11. Wenn der Preis dreht und das Niveau desStop Losserreicht , wird die Position geschlossen
. [ Vereinfachte Version der Trailing-Stop-Beschreibung von Vasily Sokolov:
  1. Der Trailing-Stop wird beim Auftreten eines neuen Ticks in der OnTick-Funktion verarbeitet
.
  1. Trailing Stop besteht aus zwei aufeinanderfolgenden Teilen:
  2. Teil 1
  3. .
  4. Für jede offene Position
  5. wird der Preis berechnet, und sobald dieser erreicht ist, wird der Stop-Loss auf Breakeven verschoben.
  6. Teil 2. Nachdem der Stop-Loss auf Breakeven verschoben wurde, wird der Stop-Pull-Up-Algorithmus für die aktive Position aktiviert und folgt dem Kurs.

Sie sollten dann dem Muster folgen:

Teil 1. Breakeven:
  • Kaufen;
  • Verkaufen;
Teil 2. Pulling Stop:
  • Kaufen;
  • Verkaufen;

Diese Variante des Algorithmus des Trailing Stop Loss der offenen Position ist endgültig

, und ich fahre fort, Programmcode zu schreiben, indem ich ihm folge.

Mit freundlichen Grüßen, Vladimir.

 
VVT:

Hallo! Wenn Sie lernen, den Stop-Loss einmal schrittweise zu verschieben, dann können Sie ihn bei Bedarf 100 Mal verschieben, solange es noch Platz dafür gibt ;)

Der Expert Advisor wird an die Strategie angepasst, nicht umgekehrt

Hallo! Ich habe bereits in meinem früheren Beitrag erwähnt, dass Sie mit Ihrer Einschätzung richtig liegen. Die Sache ist die, dass ich mit Hilfe von Vasily Sokolov relativ schnell einen Algorithmus für den Trailing Stop Loss in einer offenen Position entwickelt habe, also werde ich ihm folgen.

Mit freundlichen Grüßen, Vladimir.

 
Sie haben einen klugen Ansatz, um den Experten zu schreiben. Und Sie werden keinen Markt brauchen.
 

Ich lerne weiter die Programmiersprache MQL5. Zuvor habe ich den Code der Schleife veröffentlicht, die die Aufzählung der offenen Positionen startet. Nachdem die Schleife gestartet wurde, beginnen wir mit dem Symbol im aktuellen Diagramm zu arbeiten:

     {
     /* Для работы с символом создадим переменную _Symbol, в которой будем хранить имя символа текущего графика.
        Делаем запрос на сервер. Сервер возвращает нам символ соответствующей открытой позиции и автоматически
        выбирает позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger,
        PositionGetString. Если получим от сервера ответ о том, что для текущего символа была выбрана позиция для 
        дальнейшей работы с ней, то в торговом терминале выводим соответствующее сообщение во вкладке "Эксперт".*/
      if(_Symbol==PositionGetSymbol(i))
         Print("Выбираем позицию для дальнейшей работы с ней"); //
     }

Ich werde in regelmäßigen Abständen den geschriebenen Code mit meinen eigenen Kommentaren veröffentlichen, um ein schnelles Feedback zu geben. Ich bitte die Teilnehmer dieses Themas, mich zu korrigieren, wenn es irgendwelche Ungenauigkeiten in meinem Code oder meinen Kommentaren gibt.

Mit freundlichen Grüßen, Vladimir.