startBreakeven = 3
PercentToKeep = 0.05
ONCE Tally = 0
IF Date >= 20080121 THEN //20071224 , 20080121
IF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket AND (Tally = 3) THEN
SELL AT MARKET
ENDIF
IF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) THEN
Tally = Tally + 1
ENDIF
c1 = High[1]-Low[1] > High[0]-Low[0]
IF ((DayOfWeek = 1) OR ((DayOfWeek > 1)) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND ((Tally MOD 11) = 1) and Not OnMarket THEN
BUY 1 CONTRACT AT MARKET
Tally = 1
set stop %loss 4.5
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF
IF LONGONMARKET AND positionperf>=startBreakeven THEN
PointsToKeep = (tradeprice(1)/100)*PercentToKeep
breakevenLevel = tradeprice(1)+PointsToKeep
ENDIF
//place the new stop orders on market at breakevenLevel
IF breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
ENDIF
ENDIF
Hallo,
ich habe diesem Code einen Break even hinzugefügt.
Der stop Loss soll nachgezogen werden, wenn der Kurs 3 im Gewinn ist.
Egal was ich oben bei startbreakeven und Percenttokeep eintrage, es ändert sich nichts am Ergebnis. Woran leigt das?
Kann man den Stop Loss und die Verschiebung im chart sichtbar machen?
Vielen Dank
Guten Tag! Wenn ich Ihren Code durchsehe, sehe ich etwas, das niemals passieren wird (siehe Screenshot). In Zeile 17 legen Sie mit dem IF die Bedingung fest, aus dem Markt auszusteigen. Dies impliziert, dass Zeile 26 niemals wahr sein wird. Sie müssen daher das IF ändern (früher beenden) und so steuern, wann Sie nicht auf dem Markt sind bzw. wann Sie im Markt sind. Um etwas in das Diagramm zu zeichnen, können Sie andererseits Folgendes verwenden: graphonprice yourvariable coloured("red")
Außerdem fällt mir in Zeile 26 eine Bedingung auf, die fast unmöglich zu erfüllen ist:
positionperf>=startBreakeven
weil startBreakeven den Wert 3 hat, was Sie wohl als 3 % meinen, während PositionPerf ein Multiplikator ist, sodass 3 % 0,03 zurückgeben.
Ihre anfängliche 3 steht also für 300 %, was meiner Meinung nach fast unmöglich zu erreichen ist!
Versuchen Sie, 3 auf 0,03 zu ändern (was in vielen Fällen immer noch sehr hoch ist, versuchen Sie auch 0,003, was 0,3 % entspricht).
Hallo, danke ich habe das not onmarket gelöscht und den Startbreakeven auf 0.03.
Jedoch ändert das im Ergebnis gar nichts?
Kann es an der der Reihenfolge im Code liegen…
Diese Version scheint für mich korrekt zu funktionieren (ich habe sie auf DAX Daily getestet):
startBreakeven = 0.005
PercentToKeep = 0.03
ONCE Tally = 0
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF
IF Date >= 20080121 THEN //20071224 , 20080121
IF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket AND (Tally = 3) THEN
SELL AT MARKET
ENDIF
IF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) THEN
Tally = Tally + 1
ENDIF
c1 = High[1]-Low[1] > High[0]-Low[0]
IF ((DayOfWeek = 1) OR ((DayOfWeek > 1)) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND ((Tally MOD 11) = 1) THEN
IF NOT ONMARKET THEN
BUY 1 CONTRACT AT MARKET
Tally = 1
set stop %loss 4.5
ENDIF
ENDIF
ENDIF
//
IF LONGONMARKET AND positionperf>=startBreakeven THEN
PointsToKeep = tradeprice(1) * PercentToKeep
breakevenLevel = tradeprice(1) + PointsToKeep
ENDIF
//place the new stop orders on market at breakevenLevel
IF breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
//
//graphonprice breakevenLevel coloured("Fuchsia")
//graphonprice tradeprice(1)
//graphonprice tradeprice(1) + PointsToKeep coloured("Green")
//graph PositionPerf
Vielen Dank, das probiere ich gleich mal aus, danke..
Hallo
können Sie mir bitte erklären
startBreakeven = 0.005 – heißt, dass der Stop loss wenn der Trade 0,5 % im Gewinn ist auf Break even gezogen wird?
PercentToKeep = 0.03 – heißt der Break even ist definiert und liegt 0,3 % über dem Tradeprice?
Ist das richtig so??
Ja, 0.005 entspricht 0,5 %, während 0.03 3 % entspricht.