Also entweder stehe ich völlig auf dem Schlauch
Kein Wunder, es war ja auch schon spät....
Nein, im Ernst, vielleicht meinen wir das Gleiche, aber es wirkt sich unterschiedlich aus. Meine Formel macht jedenfalls weitestgehend das, was sie soll, zumindest wenn die SwingLows steigen (gebe ich ja zu). Durch
ValueWhen(Daten, Ausdruck, X, Richtung)
gehe ich x-Perioden (hier x=4) zurück. Die Formel gibt mir also das Low des SwingLows an, welches zum 4. Mal in der Vergangenheit zutreffend war.
ValueWhen gibt den Wert eines Datenfeldes an der Periode zurück, an der ein Ausdruck zum x-ten Mal den Wert ‘Wahr’ angenommen hat. Mit dem Parameter Richtung kann zudem bestimmt werden, ob die Suche nach dem Wert in die Vergangenheit (V) oder in die Zukunft (Z) verläuft.
Wenn Du Dir den ersten Chart im vorangegangenen Posting anschaust, siehst Du, dass die Linie immer ein Stückchen höher genau auf das Niveau springt, welches rückwärts (!) das 4. SwingLow ist. Und im zweiten Trade lag das 4. SwingLow eben über dem TradeEntryPrice.
HighestSince nutze ich also nur, um diese Linie als TrailingStop (aus einer vormaligen Stopberatung durch Herrn Knöpfel !) darzustellen: Auf diese Weise nimmt der Trailingstop ausgehend von Tradebeginn immer den Wert, bei dem die Bedingung erfüllt ist und der höher liegt als der vorangegangene.
Wenn ich z.B. x durch 3 ersetze, kommt auch eine entsprechende Linie heraus. Wie Du im folgenden Bild sehen kannst, nimmt die Formel im zweiten Trade nun das 3. SwingLow (3. blaues Kästchen von rechts):
Allerdings sollte sie tatsächlich lieber das 2. nehmen, da es niedriger liegt. Ich sehe nun, dass es möglicherweise besser wäre, im Bereich des Swing-Low mit dem "LowestSince" bei Rückwärtsbetrachtung zu arbeiten ?
Wenn ich dagegen Deine Formel einsetze, wird die Linie leider gar nicht mehr angezeigt:
Calc Anfangsstop: ValueWhen(low*0.9,TradePeriods=1,1,V);
const Anzahl: 4;{Hier kann eingestellt werden, das wievielte Swing-Low zurückgegangen werden soll}
Calc SwingLow: ValueWhen(Ref(Low,-1), Low > Ref(Low,-1) and Ref(Low,-1) < Ref(Low,-2), Anzahl, V);
calc TrailingStop: SwingLow;
calc Stoplinie: HighestSince(Trailingstop,TradePeriods=1,1);
calc #_StopLevel#: MIN(Anfangsstop,stoplinie){Stoplinie};
close<#_StopLevel#
Ich möchte aber gar nicht ausschliessen, dass ich hier nicht richtig liege oder meine Linie nur rückblickend betrachtet (nahezu) das Richtige macht.
Somit sind es eigentlich zwei Überlegungen:
1. Möglicherweise müsste man das so umbauen, dass zunächst der Anfangsstop verwendet wird und der TrailingStop nur mit niedrigeren SwingLows als dem Anfangsstop arbeitet, bis
während des Trades neue SwingLows erreicht werden ? oder
2. Man müsste im Bereich des ValueWhen/Swing-Low mit dem "LowestSince" bei Rückwärtsbetrachtung seit aktuellem Kurs arbeiten
Nur, wie könnte das formelmässig aussehen
? ?
Sorry für die Länge des Beitrags, aber ich möchte es so genau wie möglich darstellen, um Missverständnisse zu vermeiden.
Ich wäre Dir (und natürlich dem gesamten Forum) ausserordentlich dankbar, wenn es hier Lösungsideen gäbe. Ich bin mir aber sicher, dass man das mit Investox umsetzen kann, schliesslich bin ich bis hierher schon relativ weit gekommen, denke ich zumindest
Danke und