Die Sprache MQL5 von Grund auf selbst erlernen - Seite 53

 
SanAlex:

Teil 3.


Ihre Ausrutscher sind eine mauvais ton hier. Verpacken Sie alles in einen Anhang
 
MrBrooklin:

Ja, Alexey, ich habe diesen Code bereits gesehen. Sie hat die Form einer Include-Datei. Um ehrlich zu sein, habe ich darin nichts über das Symbol gefunden, obwohl ich es mehrmals durchgelesen habe. Vielleicht habe ich etwas missverstanden oder ich suche einfach nur schlecht.

Mit freundlichen Grüßen, Vladimir.


Ich werde am Abend antworten. Ich verwende die von Yury Dzyuban zur Verfügung gestellte Bibliothek von Trawls und deren Typen ohne Probleme in Handelsrobotern, die ich bis jetzt auf MT4 verwende.
Die Herangehensweise ist hier die gleiche wie bei MT5.
 
Aleksey Masterov:

Ihre Schlampereien hier sind ein mauvais ton. Verpacken Sie es in einen Anhang

Ich habe ein neues Wort für mich gelernt - mauvais ton.

(Schlechte Manieren; Verhalten, Umgangsformen und Verhaltensweisen, die in einer bestimmten Gesellschaft als unangemessen, unanständig, inakzeptabel gelten; schlecht, unmanierlich)



 
SanAlex:

Ich habe ein neues Wort für mich gelernt - Begehrlichkeit

("schlechte Manieren"; Verhalten, Umgangsformen und Handlungen, die in einer bestimmten Gesellschaft als unangemessen, unanständig, inakzeptabel gelten; schlecht, unkultiviert).




Ihre Ausrutscher sind für niemanden hier von Interesse. Es ist üblich, ihn als Anhang zu posten. Wenn Sie ihn auf diese Weise posten, bedeutet das nicht, dass sich mehr Leute die Mühe machen werden, ihn zu lesen...

Das stört das Lesen des Themas und die Beantwortung der Frage.
 
Aleksey Masterov:

Niemand hier interessiert sich für Ihr Geschreibsel. Es ist üblich, sie als Anhang zu posten, wenn Sie das tun, bedeutet das nicht, dass mehr Leute, die sie lesen wollen...

Es behindert das Lesen des Themas und die Beantwortung des Themas.

Ich werde Ihnen nicht im Weg stehen - kommunizieren Sie!

------------------------------------

obwohl man in diesen Fetzen etwas hätte aufheben können...

 
Fast235:

i entspricht der Anzahl der offenen Positionen, so viele Zyklen werden gedruckt

Sie müssen das "="-Zeichen entfernen, weil Sie die Schleife durchlaufen müssen, wenn die Anzahl der offenen Positionen 0 ist. bei diesem Null-Aufruf kam der zweite Ausdruck heraus

Hallo! Vielen Dank! Jetzt verstehe ich nicht, warum ich dachte, dass der Zyklus mit "0" statt mit "1" beginnt. Um es kurz zu machen: Ich sollte aufhören, nachts zu lernen, wie ich es in meiner Jugend getan habe.

Mit freundlichen Grüßen, Vladimir.

 
Aleksey Masterov:

Ich werde am Abend antworten. Mit der Bibliothek der Schleppnetze und ihrer Typen von Yu. Dzyuban, die auf Kampfrobotern ohne Fragen funktioniert und die ich zur Zeit auf MT4 benutze.
Die Ansätze sind die gleichen wie auf MT5.

Hallo Aleksey, ich bin für jede Hilfe sehr dankbar.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Also habe ich auf der Grundlage der von mir gelesenen Literatur einen kurzen Algorithmus zur Erstellung eines Expert Advisors mit der Trailing-Stop-Funktion geschrieben:

  1. Lassen Sie uns einen Expert Advisor erstellen, um das Trailing (Verfolgen) des Stop-Loss-Niveaus einer offenen Position mit bereits festgelegten Take-Profit- undStop-Loss-Niveaus zu automatisieren. Und was macht es für einen Unterschied, ob die Take-Profit- und Stop-Loss-Level für die Position bereits festgelegt sind oder nicht? Wenn das Stop-Level nicht angegeben ist, wird es vom Expert Advisor gesetzt; wenn es angegeben ist, wird es gemäß dem Algorithmus in ein neues Level geändert. Dem Expert Advisor ist es gleichgültig, wie hoch der Take Profit der Position ist.
  2. Erstellen Sie im Expert Advisor einen Block von Eingabeparametern mit zwei Parametern: Setzen Sie "Trailing Stop Level" und setzen Sie "Trailing Step". Tatsächlich handelt es sich um zwei Algorithmen in einem: Der erste verschiebt den Stopp bis zum Breakeven, der zweite verfolgt ihn im weiteren Verlauf der Bewegung. Im negativen Bereich ist der Stopp nicht nachgezogen.
  3. Wenn neue Kurse eintreffen, werden sie mit OnTick( ) verarbeitet. Trailing funktioniert nur, wenn ein neuer Tick für das aktuelle Symbol kommt.
  4. Wir erstellen eine Schleife und lassen sie laufen, um alle Positionen zu durchsuchen.
  5. Wenn wir plötzlich keine offenen Positionen finden, kehren wir zur Schleife zurück
  6. LassenSie uns die Zitate auffrischen. Es besteht keine Notwendigkeit, etwas zu aktualisieren. Die Handelsumgebung wird automatisch aktualisiert. Wir müssen lediglich die Daten zum Zeitpunkt des OnTick-Ereignisses anfordern.
  7. Wenn es eine offene Stelle gibt, fahren wir fort. Warum all diese Details von Punkt 4 bis Punkt 7? Stattdessen sollten wir einfach schreiben: Für jede Kaufposition definieren wir... und dann ab Punkt 9
  8. Bestimmen Sie die Art einer offenen Position: Kaufen oder Verkaufen.
  9. Wenn es sich um eine Kaufpositionhandelt , legen wir fest, wo sich der aktuelle Kurs im Verhältnis zum Kurs der offenen Position befindet.
  10. Wenn der aktuelle Kurs höher ist als der Kurs der offenen Position, überprüfen wir sein Niveau.
  11. Wenn der aktuelle Kurs das in den Eingabeparametern definierte "Trailing Level" erreicht hat, verschieben wir denStop Loss auf das Niveau ohne Verlust, das dem Eröffnungskurs derKaufpositionentspricht . Ansonsten tun wir nichts.
  12. Wenn der aktuelle Kurs das Trailing-Stop-Niveau um den Wert überschreitet, der dem Trailing-Stop-Niveau entspricht , wird derStop Loss vom Eröffnungskursniveau der Kaufposition um den Wert verschoben ,der dem Trailing-Stop-Niveau entspricht, und so weiter, bis der Kurs das für diese Position festgelegte Take-Profit-Niveau erreicht .
  13. Wenn der Preis dreht und das Niveau desbereits verschobenen Stop Losserreicht , wird die Position geschlossen .
  14. [Es folgt eine ähnliche Beschreibung für eine Stelle im Bereich Verkauf.]
  15. Wenn die Position Verkaufen eröffnet wird, legen wir fest, wo sich der aktuelle Kurs im Verhältnis zum Kurs der offenen Position befindet.
  16. Wenn der aktuelle Kurs niedriger ist als der Kurs der offenen Position, prüfen wir, auf welches Niveau er gefallen ist.
  17. Wenn der aktuelle Kurs das in den Eingabeparametern angegebene Trailing-Level erreicht hat, verschieben wir den Stop-Loss auf das Niveau ohne Verluste, das dem Eröffnungskurs der Verkaufsposition entspricht. Ansonsten tun wir nichts.
  18. Wenn der aktuelle Kurs das Trailing-Level um den Wert überschreitet, der dem "Trailing Stop Loss"-Level entspricht, wird der Stop Loss vom Eröffnungskurs der Verkaufsposition auf den Wert verschoben, der der "Trailing Stop"-Stufe entspricht, und so weiter, bis der Kurs das für diese Position festgelegte Take Profit-Level erreicht.
  19. Wenn der Kurs dreht und das Niveau des bereits verschobenen Stop Loss erreicht, wird die Position geschlossen.


Ich habe einige Korrekturen vorgenommen

 
Hier ist eine vereinfachte Version der Beschreibung des Nachsatzes:
  1. Trailing Stops werden bei Erhalt eines neuen Ticks in der Funktion OnTick verarbeitet.
  2. Ein Trailing-Stop besteht aus zwei aufeinanderfolgenden Teilen:
  3. Teil 1. Für jede offene Position wird der Preis berechnet, und wenn dieser erreicht ist, wird der Stop-Loss auf den Breakeven verschoben.
  4. Teil 2. Nachdem der Stop-Loss auf Breakeven verschoben wurde, wird der Algorithmus des dem Preis folgenden Stop-Pulling für die aktive Position aktiviert.

Ich werde die Algorithmen der Haltestellenübertragung für die Teile eins und zwei nicht im Detail beschreiben. Sie haben sie im Allgemeinen bereits richtig beschrieben. Wenn Sie sie beschreiben, sollten Sie dem Muster weiter folgen:

Teil 1. Breakeven:
  • Zum Kaufen;
  • Zu verkaufen;
Teil 2. Ich ziehe die Haltestelle hoch:
  • Zu kaufen; zu verkaufen;
  • Zu verkaufen;
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Hallo Alexey, ich wäre dir sehr dankbar für jede Hilfe, die du mir geben kannst.

Mit freundlichen Grüßen, Vladimir.

In Ihrer TOR-Beschreibung sind zwei große Fehler enthalten:

1. Sie beschäftigen sich zu sehr mit den kleinen Details. Warum schreiben Sie zum Beispiel (übrigens fälschlicherweise) "Sie müssen zur Schleife zurückkehren, wenn keine Positionen gefunden werden". Wenn es keine Positionen gibt, gibt es auch nichts zu bearbeiten. Sie müssen nicht in die Schleife zurückkehren, sondern nur aussteigen und auf einen neuen Tick warten, vielleicht erscheint dort etwas, vielleicht auch nicht. Sie müssen keine Fälle von "was wäre wenn nicht..." beschreiben. - Es gibt unendlich viele solcher Fälle, man kann sie nicht alle beschreiben. Konzentrieren Sie sich stattdessen auf das "Was wäre wenn".

2. Aus der TOR geht eindeutig der Wunsch nach Kohärenz hervor. Tun Sie dies nicht. Gehen Sie vom Allgemeinen zum Speziellen über:"Ich benötige einen Stop, der a) zum Breakeven übertragen wird und b) wenn er zum Breakeven übertragen wird, durch Schleppnetz hochgezogen wird. Die Regeln für die Übertragung zum Breakeven und das Hochziehen des Stops sind unten angefügt..." . - Ich versichere Ihnen , dass jeder freiberufliche Programmierer eine solche TOR verstehen würde, und für ihn, den Programmierer, wird eine solche TOR viel einfacher und klarer sein als der Umgang mit Schleifen, die zu sich selbst zurückkehren, wenn es keine Position gibt, usw.