Break even reagiert nicht

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #243361 quote
    axmichi
    Participant
    Senior
    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

    #243369 quote
    Iván González
    Moderator
    Master

    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")

    #243385 quote
    robertogozzi
    Moderator
    Master

    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).

    #243401 quote
    axmichi
    Participant
    Senior

    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…

    #243414 quote
    robertogozzi
    Moderator
    Master

    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
    Iván González thanked this post
    #243435 quote
    axmichi
    Participant
    Senior

    Vielen Dank, das probiere ich gleich mal aus, danke..

    #243438 quote
    axmichi
    Participant
    Senior

    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??
    #243442 quote
    robertogozzi
    Moderator
    Master

    Ja, 0.005 entspricht 0,5 %, während 0.03 3 % entspricht.

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Break even reagiert nicht


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
axmichi @axmichi Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by robertogozzi
1 year ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 02/03/2025
Status: Active
Attachments: 1 files
Logo Logo
Loading...