Dynamischer Stoploss / Trailingstop

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #112909 quote
    phoentzs
    Participant
    Master

    Hallo,

    eine Frage hätte ich noch, komme nicht ganz klar.

    Wenn ich einen dynamischen Stoploss programmieren will, auf Basis eines EMA oder vom ATR… wie schreibe ich das?
    Also zum Beispiel:

    ifshortonmarket stoploss 20 Punkte über EMA50

    iflongonmarket Stoploss 20 Punkte unter EMA50

     

    ATR Stop sollte doch so funktionieren:

     

    set stop ptrailing ATR*x

     

    wie macht man sowas bei einem EMA?

    #112913 quote
    robertogozzi
    Moderator
    Master

    Ema50 (wie jedes MA) ist ein Preis, ein Durchschnitt der Preise, SET STOP LOSS erfordert eine Distanz, die in Preis ausgedrückt wird (wie ATR), SET STOP pLOSS erfordert eine Differenz, die in Pips ausgedrückt wird, es ist dasselbe für Instrumente wie DAX, während es ist Nicht dasselbe gilt für Währungen, bei denen die ATR mit PIPSIZE multipliziert werden müsste, damit letztere korrekt funktionieren.

    Da Sie eine Differenz benötigen, ist eine Subtraktion erforderlich. Sie wissen, zu welchem Preis Sie eingegeben haben (oder zu welchem Preis Sie bei ausstehenden Bestellungen eingeben möchten), sodass Sie Ema50 davon abziehen können:

    MyStopLoss = abs(EntryPrice - Ema50)

    Jetzt behält die Variable MyStopLoss die Differenz zwischen zwei Preisen und kann mit LOSS verwendet werden:

     SET STOP LOSS MyStopLoss

    Wenn Sie pLOSS bevorzugen, müssen Sie schreiben:

     SET STOP pLOSS MyStopLoss * pipsize
    #112916 quote
    phoentzs
    Participant
    Master

    Ok, das klingt gut. Werde ich demnächst mal so versuchen.
    Danke.

    #112921 quote
    phoentzs
    Participant
    Master

    @robertogozzi

    könnte ich Ihnen vielleicht eins meiner Systeme zuschicken und Sie sagen mir Ihre Einschätzung dazu?

    #112922 quote
    robertogozzi
    Moderator
    Master

    Ja, du kannst es hier posten. Ich werde es mir nach dem Wochenende ansehen.

    #112977 quote
    phoentzs
    Participant
    Master

    @robertogozzi

    Hier ein Code von mir mit einer recht guten Performance auf den Dax. Eine Art Scalper durch Ausbruch. Vielleicht hast Du eine Meinung dazu oder einen Vorschlag zur Verbesserung. Ich nutze mehrer Abwandlungen dieses Systems bis jetzt erfolgreich im Livehandel.

    Das wäre super.

    // Festlegen der Code-Parameter
    DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
    
    // Verhindert das Platzieren von neuen Ordern zum Markteintritt oder Vergrößern von Positionen vor einer bestimmten Uhrzeit
    noEntryBeforeTime = 090000
    timeEnterBefore = time >= noEntryBeforeTime
    
    // Verhindert das Platzieren von neuen Ordern zum Markteintritt oder Vergrößern von Positionen nach einer bestimmten Uhrzeit
    noEntryAfterTime = 120000
    timeEnterAfter = time < noEntryAfterTime
    
    // Verhindert das Trading an bestimmten Wochentagen
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Bedingungen zum Einstieg in Long-Positionen
    indicator1 = DIplus[14](close)
    c1 = (indicator1 CROSSES OVER 30)
    indicator2 = SuperTrend[3,10]
    c2 = (close > indicator2)
    indicator3 = RSI[14](close)
    c3 = (indicator3 CROSSES OVER 70)
    
    IF (c1 AND c2 AND c3) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Bedingungen zum Einstieg in Short-Positionen
    indicator4 = SuperTrend[3,10]
    c4 = (close < indicator4)
    indicator5 = DIminus[14](close)
    c5 = (indicator5 CROSSES OVER 30)
    indicator6 = RSI[14](close)
    c6 = (indicator6 CROSSES UNDER 30)
    
    IF (c4 AND c5 AND c6) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Stops und Targets
    SET STOP pLOSS 90
    SET TARGET pPROFIT 16
    #112979 quote
    robertogozzi
    Moderator
    Master

    Bitte verwenden Sie nicht das @ -Zeichen, da es die empfangenen E-Mail-Nachrichten verdoppelt.

    Es sollte selten und nur dann verwendet werden, wenn Sie sich auf jemanden unter den vielen beziehen müssen. Dies ist nicht der Fall.
    Ich werde morgen einen Blick auf Ihren Code werfen.

    #113003 quote
    phoentzs
    Participant
    Master

    Sorry, lag nicht in meiner Absicht.
    Wie gesagt, vielleicht haben Sie ein paar Vorschläge zur Verbesserung der Performance.

    #113015 quote
    robertogozzi
    Moderator
    Master

    Ich persönlich bevorzuge es, dass mein Zielgewinn größer ist als mein Stop-Loss. Deshalb habe ich Ihre beiden letzten Zeilen durch Folgendes ersetzt:

    SET STOP   pLOSS   70     //90
    SET TARGET pPROFIT 15     //16

    dann habe ich Nicolas ‘Trailing Stop-Code am Ende (nach den beiden vorhergehenden Zeilen) hinzugefügt ( https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/ ):

    //************************************************************************
    //trailing stop function
    trailingstart = 10            //10   trailing will start @trailinstart points profit
    trailingstep  = 10            //10   trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF

    und führen Sie es von einem 1-Minuten-DAX-Chart mit 100K-Balken aus.

    Ich habe TP, SL und Trailing Stop optimiert. Sie können Ihre eigenen Tests machen und “walk forward”.

    Wenn Sie der Meinung sind, dass es in Ordnung ist, können Sie es 6-12 Monate lang auf Ihrem Demokonto ausführen, bevor Sie entscheiden, ob es sich lohnt, es zu behalten oder in den Papierkorb zu werfen. Viel Spaß beim Handeln!

    x-16.jpg x-16.jpg y-1.jpg y-1.jpg
    #113020 quote
    phoentzs
    Participant
    Master

    Super, danke für Ihre Arbeit.
    Natürlich sieht man jetzt das der Scalper auf den Uptrend der letzten Wochen zugeschnitten ist. Indem ich die Periodenlänge vom RSI anpasse, würden jetzt in der momentanen Schiebezone vom DAX und des zu erwartenden Downtrends die Ergebnisse weiter verbessert werden können.
    Macht das Sinn? Oder sollte man so einen Code lieber allgemein halten und ihn nicht ständig der Marktlage angleichen?

    #113025 quote
    robertogozzi
    Moderator
    Master

    Normalerweise passe ich es regelmäßig an, es hängt von deiner TF ab. Auf einem 1-Minuten-Chart optimiere ich meinen Code normalerweise etwa einmal im Monat oder alle zwei Wochen neu. Bei einem höheren TF können Sie dies etwa alle zwei Monate tun.

    #113027 quote
    robertogozzi
    Moderator
    Master

    Es ist immer eine persönliche Entscheidung, hauptsächlich basierend auf Erfahrung und Tests.

    #113035 quote
    phoentzs
    Participant
    Master

    Ich bin ja noch relativ neu in dem Thema.
    Aufgrund Ihrer Erfahrung, sollte man einen 1 minute code etwa einmal im Monat mit allen Werten optimieren oder nur Stop und Target?

    #113039 quote
    robertogozzi
    Moderator
    Master

    Alle Werte, meiner Meinung nach.

    #113290 quote
    phoentzs
    Participant
    Master

    Hallo,

     

    ich komme mit der Zuweisung von entryprice nicht zurecht.

    MyStopLoss = abs(EntryPrice - Ema50)

    Wie muss ich entryprice zuweisen damit ich das in der Art als Stop nutzen kann?

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

Dynamischer Stoploss / Trailingstop


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
phoentzs @phoentzs Participant
Summary

This topic contains 15 replies,
has 2 voices, and was last updated by robertogozzi
6 years, 3 months ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 11/16/2019
Status: Active
Attachments: 2 files
Logo Logo
Loading...