Hallo ich suche Backtest der folgende Bedingungen enthallt.
Trade auf Tagesbasis (D1)
Einstieg LONG
ein neues Hoch1 ist entstanden. Die Hochs der drei oder mehr folgenden Kerzen sind kleiner als das Hoch1
Wenn in dieser Korrektur eine kerze schließt deren Schlusskurs höher ist als die hochs der letzten 2 Kerzen, dann erfolgt der Einstieg.
Der Stop Loss liegt auf dem Tief zwischen dem Einstieg und dem Hoch1
Ein Bild mit 2 Beispielen ist in der Anlage
Danke
Auf dem angehängten Foto habe ich einen Balken hervorgehoben, dessen Maximum > der letzten 2 Perioden ist, aber hier schreibst du den Eintrag nicht, warum?
Hallo auf dem Bild ist das High höher als die letzten 2 Kerzen
Es soll aber der Close (Schlusskurs höher sein!!
Der Abschluss ist auch höher als die letzten beiden!
Hallo Roberto,
schau mal dieser Text “Wenn in dieser Korrektur eine kerze schließt deren Schlusskurs höher ist als die hochs der letzten 2 Kerzen, dann erfolgt der Einstieg.”
In oder nach der Korrektur erfolgt der Einstieg dann, wenn der Schlusskurs einer Kerze größer als das High der beiden kerzen davor ist!
Close > High[1] and Close > High[1]
Danke und Gruß
So ist es richtig, sorry
Close > High[1] and Close > High[2]
Da ist er:
DEFPARAM CumulateOrders = False
ONCE MyHIGH = high
ONCE HH = high
ONCE HIGHbar = BarIndex
ONCE Tally = 0
Cond = summation[2](close > high[1])
IF (Tally >= 3) AND (Cond = 2) AND Not OnMarket THEN
BUY 1 CONTRACT AT Market
SL = (abs(close - lowest[max(1,BarIndex - HIGHbar + 1)](low)))
SET STOP LOSS SL
SET TARGET PROFIT SL * 3
ENDIF
IF high > MyHIGH AND Not OnMarket THEN
MyHIGH = high
HH = high
HIGHbar = BarIndex
Tally = 0
ENDIF
HH = high
IF HH < MyHIGH AND Not OnMarket THEN
Tally = Tally + 1
ENDIF
IF OnMarket THEN
MyHIGH = high
HH = high
HIGHbar = BarIndex
Tally = 0
ENDIF
Sie haben kein Ziel angegeben, also habe ich es hinzugefügt und es entspricht dem Dreifachen des Stop-Loss.
Hallo Roberto,
vielen Dank noch mal für den Code, er funktioiert.
Kannst Du mir den Stop Loss erklären wie der funktioniert. Das kann ich aus dem code nicht lesen
Kann man den SL auch im chart sichtbar machen?
Ich werde versuchen, dass der nächste Trade schon beim nächsten Signal eingegangen wird. Ich denke ich brauch nur die “not on market” weg machen?!
Danke
HIGHbar ist der Balken, an dem der höchste Preis festgestellt wurde, also müssen wir von jetzt an (BarIndex) bis zu diesem Balken zählen, und wir müssen 1 hinzufügen, denn wenn das Hoch bei Balken 100 war und jetzt 104 ist, ist 5 die Anzahl der Balken dazwischen, nicht 4!
Wir brauchen diese Zahl als INDEX mit LOWEST, um zu wissen, was der niedrigste Preis dazwischen ist.
Der Ausdruck für diesen Index ist also BarIndex – HIGHbar + 1, ich bin mir sicher, dass er nie unter 1 fallen wird, nur für den Fall… Ich habe max(1,BarIndex – HIGHbar + 1) für zusätzliche Sicherheit hinzugefügt.
An diesem Punkt ist lowest[max(1,BarIndex – HIGHbar + 1)](low) der niedrigste Preis Sinus der höchste Preis, also müssen wir die Differenz zwischen dem aktuellen Preis (CLOSE) und diesem LOW berechnen. Auch hier habe ich aus Sicherheitsgründen ABS() verwendet, um sicherzustellen, dass der Ausdruck nicht negativ ist (was jedoch unmöglich ist).
Was wir erhalten, ist die Preisdifferenz zwischen dem aktuellen CLOSE und dem niedrigsten LOW.
Tatsächlich könnte man die delo SL-Linie so schreiben, viel einfacher:
SL = close - lowest[BarIndex - HIGHbar + 1](low)
OMG das hätte ich nie hinbekommen….
Kann man den SL im Chart beim Backtest farblich hervor heben oder sichtbar machen?
Ja, Sie müssen schreiben (am Ende des Codes):
graph SL AS "Stop Loss"
graph SL * 3 AS "Take Profit"
graphonprice PositionPrice - SL AS "StopLoss" coloured(255,0,0,255)
graphonprice PositionPrice + (SL * 3) AS "Take Profit" coloured(0,0,255,255)
Die ersten beiden Zeilen zeigen die Daten im Variablenfenster, das der Backtest absichtlich öffnet (oberhalb der Grafik).
Die letzten beiden Zeilen drucken entsprechende Zeilen direkt auf dem Kurschart.
Es ist nicht zwingend erforderlich, beide Typen (Graph und GraphOnPrice) zu schreiben, Sie können alles eingeben, was Sie wollen.
entschuldigung
hier wird ein Fehler angezeigt: Das Bild ist in der Anlage
Entschuldigung für den Fehler, ich habe die Farbposition falsch verstanden:
graphonprice PositionPrice - SL coloured(255,0,0,255) AS "StopLoss"
graphonprice PositionPrice + (SL * 3) coloured(0,0,255,255) AS "Take Profit"