Trailing stop progressivo

Forums ProRealTime forum Italiano Supporto ProOrder Trailing stop progressivo

Viewing 6 posts - 1 through 6 (of 6 total)
  • #189620

    Salve. Mi piacerebbe aggiungere al mio sistemino un trailing stop in progressione. Ovvero che parte da un valore 18 e man mano che va in positivo si sposti  fino a 29. Fattibile ?

    #189622

    Puoi scrivere un esempio, per capire cosa intendi per partire da 18 ed arrivare a 29?

     

    #189634

    Innanzitutto grazie per la rapidità. Troppo onore.  Posto sotto il mio sistema che di base ha un trailing di 28.5 . Mi piacerebbe invece che quando parte il trailing sia di 18 . Il trade si muove in positivo fino al pareggio: nel momento che sto guadagnando 1 pip lo stop  resta dov’è (come se il trailing fosse 19) . Così via fino a 29 , (cioè lo stop iniziale di 18 più il positivo di 11) e da quel momento in poi lo stop inizia a muoversi per guadagnare.  La mia idea è di limitare a 18 la perdita (soprattutto se va subito contro) , ma se si muove in positivo di allargare la forbice in modo da  tollerare dei rintracciamenti non troppo grandi. Spero si capisca . E grazie ancora

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    // Condizioni per entrare su posizioni long
    indicator1 = RSI[4](close)
    c1 = (indicator1 > 60)
    indicator2 = ExponentialAverage[2](close)
    indicator3 = SuperTrend[3.1,10]
    c2 = (indicator2 > indicator3)
    indicator4 = CALL “Il Mio Indicatore(14)”
    c3 = (indicator4 = 1)
    indicator5 = Volume
    c4 = (indicator5 >= 260)

    IF c1 AND c2 AND c3 AND c4 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    // Condizioni per uscire da posizioni long
    indicator6 = ExponentialAverage[2](close)
    indicator7 = TEMA[62](close)
    c5 = (indicator6 < indicator7)

    IF c5 THEN
    SELL AT MARKET
    ENDIF

    // Condizioni per entrare su posizioni short
    indicator8 = RSI[4](close)
    c6 = (indicator8 < 40)
    indicator9 = ExponentialAverage[2](close)
    indicator10 = SuperTrend[3.1,10]
    c7 = (indicator9 < indicator10)
    indicator11 = CALL “Il Mio Indicatore(14)”
    c8 = (indicator11 = -1)
    indicator12 = Volume
    c9 = (indicator12 > 260)

    IF c6 AND c7 AND c8 AND c9 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF

    // Condizioni per uscire da posizioni short
    indicator13 = ExponentialAverage[2](close)
    indicator14 = TEMA[62](close)
    c10 = (indicator13 > indicator14)

    IF c10 THEN
    EXITSHORT AT MARKET
    ENDIF

    // Stop e target
    SET STOP pTRAILING 28.5

    #189815

    Aggiornamento, mi sono reso conto che quello di cui parlavo era semplicemente uno stop-loss +  trailing . Il fatto è che non ho mai programmato prima… Ora ho sostituito la riga automatica del trailing con quello scritto da Nicolas, valore 15 e step 1 , e già così il back è performante. Il mio problema è che live non va…un paio di volte lo stop non è proprio scattato, un’altra è partito ma non saliva col trailing . Qualcuno ha voglia di darci un occhiata ?       Ripeto per me è un campo abbastanza oscuro…

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    // Condizioni per entrare su posizioni long
    indicator1 = RSI[4](close)
    c1 = (indicator1 > 55)
    indicator2, ignored = CALL “Il Mio Indicatore(23)”
    c2 = (indicator2 = 0)
    ignored, indicator3 = CALL “Il Mio Indicatore(23)”
    c3 = (indicator3 = 0)
    indicator4 = CALL “Il Mio Indicatore(14)”
    c4 = (indicator4 = 1)
    indicator5 = ExponentialAverage[2](close)
    indicator6 = SuperTrend[3.1,10]
    c5 = (indicator5 >= indicator6)

    IF c1 AND c2 AND c3 AND c4 AND c5 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    // Condizioni per entrare su posizioni short
    indicator7 = RSI[4](close)
    c6 = (indicator7 < 45)
    indicator8, ignored = CALL “Il Mio Indicatore(23)”
    c7 = (indicator8 = 0)
    ignored, indicator9 = CALL “Il Mio Indicatore(23)”
    c8 = (indicator9 = 0)
    indicator10 = CALL “Il Mio Indicatore(14)”
    c9 = (indicator10 = -1)
    indicator11 = ExponentialAverage[2](close)
    indicator12 = SuperTrend[3.1,10]
    c10 = (indicator11 <= indicator12)

    IF c6 AND c7 AND c8 AND c9 AND c10 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF

    //************************************************************************
    //trailing stop function
    trailingstart = 15 //trailing will start @trailinstart points profit
    trailingstep = 1 //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
    //***************************************************************

     

    #189853

    Quel trailing stop funziona, solo che si attiva, come ogni strategia, alla chiusura della candela, per cui se usi un TF un pò alto, tipo 1 ora, può darsi che il prezzo raggiunga il limite per attivare il trailing, ma può darsi che alla chiusura sia tornato indietro, quindi non si attiva. Se vuoi puoi sostituire CLOSE con HIGH/LOW, così non verifichi il prezzo di chiusura, bensì il minimo/massimo (però sempre alla chiusura di ogni candela).

    Un altro problema potrebbe essere la distanza minima tra il prezzo dell’ordine pendente di uscita ed il prezzo corrente. Una distanza richiesrta dal broker, IG per il Dax richiede almeno 6 punti ma puyò variare durante i periodi di alta volatilità.

    Questa è la versione del trailing stop di Nicolas, aggiornata per tenere conto di:

    • distanza minima richiesta dal broker
    • punti di profitto da assicurare quando mette in pareggio (breakeven):
    #189900

    Attendere la chiusura … ora capisco . Volevo ringraziarti per la disponibilità anche perchè in pochi giorni di forum mi sono reso conto che rispondi a tutti ed in tutte le lingue. Pian piano proverò a tirar fuori qualcosa, anche perchè mi sembra un mondo dalle potenzialità importanti. Grazie ancora

Viewing 6 posts - 1 through 6 (of 6 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login