ProOrder Trademanagement: Stop nach Kerzen‑Tiefs trailen

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #260732 quote
    axmichi
    Participant
    Senior

    Hallo,


    könnte mir jemand diesem Code ein bestimmtes Trademanagement hinzufügen.

    1 Wenn der Kurs den TP erreicht hat, dann soll der Stoploss auf das low der letzten 3 kerzen nachgezogen werden

    2 Wenn danach der kurz weiter steigt und über dem High der letzten Kerze schließt dann soll der stoploss auf das low der letzten beiden kerzen nachgezogen werden . dies soll so lange weiter gehen, bis der trade ausgestoppt wird.

    vielen Dank!

    hier der code:

    IF not longonmarket and (close crosses over HH) AND (HH > 0) AND (LL > LLprec) AND (LLprec > 0)and (HH > HHprec) and (HH > LL) and (HHprec > LLprec) THEN //
    BUY Positionsize1 Contract at Market
    SLPRICE = LL
    SL = abs(close - LL)
    //SET TARGET %PROFIT 100
    set stop %loss 50
    
    TP = close + (SL * 7)
    SET TARGET PRICE TP
    LLprec = 0
    ENDIF
    
    #261022 quote
    axmichi
    Participant
    Senior

    Hallo,


    werden hier noch Fragen beantwortet??


    Lieben Gruß

    #261023 quote
    Nicolas
    Keymaster
    Master

    Die Logik funktioniert in zwei ineinandergreifenden Phasen, sobald eine Position offen ist:

    • Phase 1: Sobald der Preis auf oder über das beim Einstieg berechnete TP-Niveau schließt, wird TPReached auf 1 gesetzt und der Stop sofort auf das Tief der letzten 3 Kerzen via Lowest3 verschoben.
    • Phase 2: Bei jeder neuen Kerze – wenn der Schlusskurs über dem Hoch der vorherigen Kerze (high[1]) liegt – wird der Stop auf das Tief der letzten 2 Kerzen via Lowest2 angehoben. Eine Schutzprüfung (newStop > DynStop) verhindert, dass der Stop wieder nach unten rutscht. Dieser Mechanismus wiederholt sich, bis der SELL AT DynStop STOP ausgelöst wird.
    // ─── Persistente Variablen zurücksetzen wenn keine Position offen ───
    IF NOT LongOnMarket THEN
        TPReached   = 0
        TrailActive = 0
        DynStop     = 0
    ENDIF
    
    
    // ─── EINSTIEG ───
    IF NOT LongOnMarket AND (close crosses over HH) AND (HH > 0) AND (LL > LLprec) AND (LLprec > 0) AND (HH > HHprec) AND (HH > LL) AND (HHprec > LLprec) THEN
        BUY Positionsize1 CONTRACT AT MARKET
        SLPRICE     = LL
        SL          = ABS(close - LL)
        TP          = close + (SL * 7)
        DynStop     = LL
        TPReached   = 0
        TrailActive = 0
        SET STOP PRICE DynStop    
        LLprec = 0
    ENDIF
    
    
    // ─── DYNAMISCHE STOP-VERWALTUNG WÄHREND OFFENER POSITION ───
    IF LongOnMarket THEN
    
    
        // Phase 1 : Preis erreicht TP → Stop auf das Tief der letzten 3 Kerzen setzen
        IF TPReached = 0 AND close >= TP THEN
            TPReached   = 1
            TrailActive = 1
            DynStop     = Lowest[3](low)
        ENDIF
    
    
        // Phase 2 : Schlusskurs über dem Hoch der vorherigen Kerze
        //           → Stop auf das Tief der letzten 2 Kerzen anheben
        IF TrailActive = 1 AND close > high[1] THEN
            newStop = Lowest[2](low)
            IF newStop > DynStop THEN
                DynStop = newStop
            ENDIF
        ENDIF
    
    
        // Dynamischen Stop anwenden
        IF DynStop > 0 THEN
            SELL AT DynStop STOP
        ENDIF
    
    
    ENDIF
    

    Wichtige Hinweise:

    • Die Variable TP behält ihren Wert zwischen den Kerzen bei, da sie ausschließlich im Einstiegsblock initialisiert wird.
    • Der SET TARGET PRICE TP beim Einstieg dient als visuelle Referenz auf dem Chart. Sobald Phase 1 ausgelöst wird, übernimmt der SELL AT DynStop STOP die Positionsverwaltung.
    • Stellen Sie sicher, dass HH, LL, HHprec und LLprec entweder in einem separaten Indikator oder am Anfang des Systems korrekt berechnet werden, bevor dieser Block ausgeführt wird.
    robertogozzi thanked this post
    #261109 quote
    axmichi
    Participant
    Senior

    Hallo Nicolas,


    danke leider wird das system sehr früh ausgestoppt, weil wohl der 50% SL nicht berechnet wird. bis der trade das 7:1 erreicht hat soll der trade nur dann ausgestoppt werden, wenn der trade 50% im Verlsut ist??

    Danke!


    Hier der gesamte Code:


     

    //defparam calculateonlastbars=30000
    ONCE HH   = 0
    ONCE HHprec = 0
    ONCE LL   = 0
    ONCE LLprec = 0
    
    if Not OnMarket Then
    UseST = 0
    ENDIF
    
    cp = 3
    
    
    IF TradePrice = 0 THEN
    PositionSize1 = 1
    
    ELSE
    PositionSize1 = 1000 / sp //Compute PositionSize
    
    ENDIF
    once lastpoint = 0
     
    if high[cp] >= highest[2*cp+1](high) then
    PEAK = 1
    else
    PEAK = 0
    endif
     
    if low[cp] <= lowest[2*cp+1](low) then
    TROUGH = -1
    else
    TROUGH = 0
    endif
     
    if PEAK = 1 then
    TOPy = high[cp]
    TOPx = barindex[cp]
    endif
     
    if TROUGH = -1 then
    BOTy = low[cp]
    BOTx = barindex[cp]
    endif
     
    if PEAK>0 and (lastpoint=-1 or lastpoint=0) then
    //DRAWSEGMENT(lastX,lastY,TOPx,TOPy) COLOURED(127,255,0,1000)
    //DRAWTEXT("■",TOPx,TOPy,Dialog,Bold,10) coloured(200,0,0,255)
    lastpoint = 1
    lastX = TOPx
    lastY = TOPy
    HHprec= HH
    HH  = TOPy
    HHbar = TOPx
    endif
     
    if TROUGH<0 and (lastpoint=1 or lastpoint=0) then
    //DRAWSEGMENT(lastX,lastY,BOTx,BOTy) COLOURED(255,0,0,255)
    //DRAWTEXT("■",BOTx,BOTy,Dialog,Bold,10) coloured(0,200,0,255)
    lastpoint = -1
    lastX = BOTx
    lastY = BOTy
    LLprec= LL
    LL  = BOTy
    LLbar = BOTx
    endif
     
    //TREND ATTEMPT
    atr=AverageTrueRange[14](close)
    if TOPy > TOPy[1] and topy<>lasttop then
    //drawarrowup(barindex,low-atr/2) coloured(0,200,0)
    lasttop=topy
    trendup = 1
    else
    trendup = 0
    endif
     
    
    sp = close - 0
    // Long
    
    // ─── Persistente Variablen zurücksetzen wenn keine Position offen ───
    IF NOT LongOnMarket THEN
    TPReached  = 0
    TrailActive = 0
    DynStop   = 0
    ENDIF
    
    
    // ─── EINSTIEG ───
    IF NOT LongOnMarket AND (close crosses over HH) AND (HH > 0) AND (LL > LLprec) AND (LLprec > 0) AND (HH > HHprec) AND (HH > LL) AND (HHprec > LLprec) THEN
    BUY Positionsize1 CONTRACT AT MARKET
    SLPRICE   = LL
    SL     = ABS(close - LL)
    TP     = close + (SL * 7)
    DynStop   = LL
    TPReached  = 0
    TrailActive = 0
    SET STOP PRICE DynStop
    LLprec = 0
    ENDIF
    
    
    // ─── DYNAMISCHE STOP-VERWALTUNG WÄHREND OFFENER POSITION ───
    IF LongOnMarket THEN
    
    
    // Phase 1 : Preis erreicht TP → Stop auf das Tief der letzten 3 Kerzen setzen
    IF TPReached = 0 AND close >= TP THEN
    TPReached  = 1
    TrailActive = 1
    DynStop   = Lowest[3](low)
    ENDIF
    
    
    // Phase 2 : Schlusskurs über dem Hoch der vorherigen Kerze
    //      → Stop auf das Tief der letzten 2 Kerzen anheben
    IF TrailActive = 1 AND close > high[1] THEN
    newStop = Lowest[2](low)
    IF newStop > DynStop THEN
    DynStop = newStop
    ENDIF
    ENDIF
    
    
    // Dynamischen Stop anwenden
    IF DynStop > 0 THEN
    SELL AT DynStop STOP
    ENDIF
    
    
    ENDIF
    
    #261116 quote
    Nicolas
    Keymaster
    Master

    Tatsächlich berücksichtigt mein Code die von Ihnen programmierte Stop-Loss-Platzierung nicht, und das aus gutem Grund: SET STOP %LOSS 50 bedeutet, dass der Kurs um 50 % fallen müsste, damit die Stop-Loss-Order ausgelöst wird! Das wird niemals passieren, es sei denn, die Weltwirtschaft bricht gerade zusammen! 🙂 Sagen Sie mir, wie ich den Code in diesem Fall anpassen kann, und ich werde ihn entsprechend modifizieren.

    #261120 quote
    axmichi
    Participant
    Senior

    ok, das system soll so sein, dass der erste SL bei 50 % liegt, wenn dieser nicht erreicht wird, dann sollen die regeln gültigkeit haben, die sie codiert haben.

    So wäre das richtig.


    Mit ihrem Code wird der trade aber viel früher geschlossen, das versteh ich nicht. im Bild die GOOGL Aktie auf tagesbasis, der trade wurde am LL ausgestoppt??!!

    DAS LL dient ja nur dazu den TP zu berechnen. mIt Tradeprice – LL * 7

    GOOGL.jpg GOOGL.jpg
    #261124 quote
    Nicolas
    Keymaster
    Master

    Gut, hier ist die Version, bei der der anfängliche Stop-Loss bei 50 % des Einstiegspreises liegt.

    // ─── Persistente Variablen zurücksetzen wenn keine Position offen ───
    IF NOT LongOnMarket THEN
        TPReached   = 0
        TrailActive = 0
        DynStop     = 0
    ENDIF
    
    
    
    
    // ─── EINSTIEG ───
    IF NOT LongOnMarket AND (close crosses over HH) AND (HH > 0) AND (LL > LLprec) AND (LLprec > 0) AND (HH > HHprec) AND (HH > LL) AND (HHprec > LLprec) THEN
        BUY Positionsize1 CONTRACT AT MARKET
        SLPRICE     = LL
        SL          = ABS(close - LL)
        TP          = close + (SL * 7)
        DynStop     = LL
        TPReached   = 0
        TrailActive = 0
        SET STOP %LOSS 50  
        LLprec = 0
    ENDIF
    
    
    
    
    // ─── DYNAMISCHE STOP-VERWALTUNG WÄHREND OFFENER POSITION ───
    IF LongOnMarket THEN
    
    
    
    
        // Phase 1 : Preis erreicht TP → Stop auf das Tief der letzten 3 Kerzen setzen
        IF TPReached = 0 AND close >= TP THEN
            TPReached   = 1
            TrailActive = 1
            DynStop     = Lowest[3](low)
        ENDIF
    
    
    
    
        // Phase 2 : Schlusskurs über dem Hoch der vorherigen Kerze
        //           → Stop auf das Tief der letzten 2 Kerzen anheben
        IF TrailActive = 1 AND close > high[1] THEN
            newStop = Lowest[2](low)
            IF newStop > DynStop THEN
                DynStop = newStop
            ENDIF
        ENDIF
    
    
    
    
        // Dynamischen Stop anwenden
        IF DynStop > 0 THEN
            SELL AT DynStop STOP
        ENDIF
    
    
    
    
    ENDIF
    
    
    
    #261127 quote
    axmichi
    Participant
    Senior

    Hallo Nicolas,


    danke kannst du es noch mal überprüfen, bei mir werden die trades immer noch am LL geschlossen…

    #261164 quote
    axmichi
    Participant
    Senior

    ok, hab die nachricht bekommen, das ivan geschrieben hat, aber hier ist die antwort nicht zu sehen. aber der code passt perfekt danke!!

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

ProOrder Trademanagement: Stop nach Kerzen‑Tiefs trailen


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
axmichi @axmichi Participant
Summary

This topic contains 8 replies,
has 2 voices, and was last updated by axmichi
22 hours, 13 minutes ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 04/30/2026
Status: Active
Attachments: 1 files
Logo Logo
Loading...