Diskussion zum Artikel "Wie man jede Art von Trailing-Stop entwickelt und mit einem EA verbindet"

 

Neuer Artikel Wie man jede Art von Trailing-Stop entwickelt und mit einem EA verbindet :

In diesem Artikel werden wir uns Klassen für die bequeme Erstellung verschiedener Trailing-Stops ansehen und lernen, wie man sie mit einem beliebigen EA verbindet.

In Fortsetzung des im vorigen Artikel begonnenen Themas über Trailing-Stops werden wir hier Trailing-Klassen für die bequeme Erstellung verschiedener Algorithmen für Trailing-StopLoss-Positionen betrachten. Auf der Grundlage der erstellten Klassen ist es möglich, einen beliebigen Algorithmus für die Verschiebung von Stop-Levels zu erstellen: durch Stop-Shift vom aktuellen Preis, durch Indikatoren, durch festgelegte StopLoss-Level-Werte, usw. Nach der Lektüre des Artikels werden wir in der Lage sein, beliebige Algorithmen zur Verschiebung von Stop-Positionen zu erstellen und mit beliebigen EAs zu verbinden. Gleichzeitig wird der Anschluss und die Verwendung von Schleppern bequem und übersichtlich.

Betrachten wir kurz den Algorithmus der Trailing-Stop-Operation. Einigen wir uns darauf, dass drei Betriebsbedingungen für jedes Trailing verwendet werden können:

  • trailing start — Anzahl der Punkte des Positionsgewinns, bei deren Erreichen ein Trailing-Stop ausgelöst wird;
  • trailing step — Anzahl der Punkte, um die sich der Preis in Richtung des Positionsgewinns bewegen sollte, um die nächste Verschiebung der Position StopLoss zu erreichen;
  • trailing distance — Abstand zum aktuellen Kurs, bei dem sich StopLoss befindet.

Diese drei Parameter können auf jede Art von Trailing angewendet werden. Jeder dieser Parameter kann in den Einstellungen für das Trailing vorhanden sein oder fehlen, wenn er nicht benötigt wird oder durch einen anderen Wert im Trailing-Algorithmus ersetzt wird. Ein Beispiel für das Ersetzen des Parameters „trailing distance“ kann der Indikatorwert sein, auf den der Stop-Loss der Position gesetzt ist. In diesem Fall wird bei Verwendung dieses Parameters der Stopp nicht auf den vom Indikator angezeigten Kurs gesetzt, sondern mit einem Abstand vom angezeigten Kurs um den Abstandswert in Punkten.


Autor: Artyom Trishkin

 
Sehr informativer Artikel - ich lese ihn gerade. Ich werde Material daraus in meinen Robotern verwenden.
Aus dem letzten Artikel - danke
Diese Funktionen sind für die schnelle Erstellung von gleitenden Durchschnitten gedacht, um ihre Daten anstelle von Parabolic SAR-Daten zu verwenden, wenn Sie Ihre eigene Forschung durchführen, um verschiedene Arten von Trailing zu erstellen - ich habe es auch zur Kenntnis genommen.
 
Roman Shiredchenko #:
Wenn Sie Ihre eigene Forschung, um verschiedene Arten von Trailing erstellen

Fraktale und Ishimoku sind ebenfalls gute Optionen.

 
Ich liebe es! Ich werde es in all meinen persönlichen Bots verwenden.
 

Artem, Ihr PSAR-Trailing funktioniert nicht richtig. Ich kann es nicht in Worten erklären, sehen Sie sich jeden Abschluss genau an. Es schließt zum falschen Zeitpunkt, und es schließt nicht auf Zeit. Er kann bei einem abwärts gerichteten PSAR long schließen, sollte aber nur bei einem aufwärts gerichteten PSAR schließen. Es kann sein, dass er mehrere PSAR-Wechsel ganz auslässt, obwohl während dieser Wechsel Schließungsbedingungen bestanden.

Der Code ist zu stark vereinfacht - er nimmt einfach den PSAR-Wert und verwendet ihn als SL. Ich denke, das sollte für muwings funktionieren.

Schauen Sie sich an, wie ich die Schließungsbedingung kontrolliere:

        if (tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && tick.ask > PSAR_BufClose[1] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[1] && tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }

Hier wird PSAR verwendet, um ein Signal zu geben, anstatt einen gleitenden SL zu setzen, aber die Essenz ist die gleiche.

 
Hallo zusammen, alles sehr interessant, aber ich kann nicht alle Schritte abschließen, ich stecke bei dem Teil des zweiten Konstruktors fest, der parametrisch sein muss. Ich kann nicht weitermachen. Ich habe versucht, die angehängten Dateien herunterzuladen, aber es werden so viele Fehler gefunden, dass ich sie nicht beheben kann. Kann mir jemand helfen? Vielen Dank
 
Aber wie üblich ist alles, was Position...() verwendet, für das Netting völlig ungeeignet, wenn mehr als ein Roboter auf einem Symbol läuft oder wenn manuell parallel zu einem Roboter gehandelt wird.
 
JRandomTrader #:
Symbol

Danke - ich werde mich auch mit FINAM MT 5 befassen.

 
JRandomTrader manuell gehandelt wird.

Hierfür müssen Sie virtuelle Positionen im Roboter halten. Und Stops mit Pending Orders setzen.

 
Ivan Titov #:

Dazu ist es notwendig, virtuelle Positionen im Roboter zu halten. Und Stopps mit schwebenden Aufträgen zu setzen.

Ich weiß das, ich habe virtuelle Positionen und Stops.

Aber die meisten der Forex-Code, der hier gepostet wird, ist nicht geeignet für solche Arbeit (insbesondere auf MOEX).

 
Gut, dass wir nicht zu ihnen gehören.