Take profit e stop loss con ATR

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #76804 quote
    mourning33
    Participant
    Junior

    Ciao a tutti,

    sto cercando di effettuare il backtest di una strategia che prevede l’uscita in take profit o in stop loss basandosi sull’ATR a 5 periodi, ma non riesco a settare le corrette uscite dalle posizioni.

    Ecco di seguito il codice che ho provato ad utilizzare, ma che non funziona perchè mi entra in posizione su ogni barra e mi esce dalla posizione nella barra successiva.

    mm200 = average[200] (close)
    mm20 = average[20](close)
    stddeviation = STD[20](close)
    bsup = mm20 + 1.5 * stddeviation
    binf = mm20 - 1.5 * stddeviation
    MYLIMITBUY = binf - (binf*5/100)
    MYLIMITSELL = bsup + (bsup*5/100)
    tplong = mylimtbuy + (averagetruerange[5](close))*2
    sllong = mylimitbuy - (averagetruerange[5](close))*2
    tpshort = mylimitsell - (averagetruerange[5](close))*2
    slshort = mylimitsell + (averagetruerange[5](close))*2
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket AND close>mm200 and close<binf THEN
    BUY 100 SHARES AT MYLIMITBUY LIMIT
    ENDIF
    // Condizioni per uscire da posizioni long
    If LongOnMarket AND tplong OR sllong THEN
    SELL AT MARKET
    ENDIF
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket AND close<mm200 and close>bsup THEN
    SELLSHORT 100 SHARES AT MYLIMITSELL LIMIT
    ENDIF
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket AND tpshort OR slshort THEN
    BUY AT MARKET
    ENDIF

    Grazie per l’aiuto!

    #76847 quote
    papero76
    Participant
    Senior

    CIAO

    TI SUGGERISCO DI USARE  IL COMANDO GRAPH

    PER VEDERE A MONITOR I VALORI CALCOLATI

    GRAPH MYLIMITBUY
    GRAPH tplong
    GRAPH sllong

    POI MI SEMBRA CHE I CALCOLI SONO ERRATI COMUNQUE LO SCRIPT DOVREBBE ESSERE QUESTO

    IF NOT LongOnMarket AND close>mm200 and close<binf THEN
    BUY 1 SHARES AT MYLIMITBUY LIMIT
    SET STOP LOSS sllong
    ENDIF
    // Condizioni per uscire da posizioni long
    If LongOnMarket THEN
    SELL AT tplong LIMIT
    ENDIF
    
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket AND close<mm200 and close>bsup THEN
    SELLSHORT 1 SHARES AT MYLIMITSELL LIMIT
    SET STOP LOSS slshort
    ENDIF
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket THEN
    EXITSHORT AT tpshort LIMIT
    ENDIF
    #76859 quote
    robertogozzi
    Moderator
    Master

    Buongiorno papero76, ti prego di evitare di scrivere SEMPRE in maiuscolo, è contrario alla netiquette (l’etichetta, o galateo, della rete) in quanto associato allo STRILLARE, URLARE per affermare le proprie ragioni. Usa il maiuscolo solo in qualche occasione quando devi evidenziare una certa parola o un breve concetto. Grazie.

    #76861 quote
    robertogozzi
    Moderator
    Master

    Per l’entrata in posizione su ogni barra basta che metti sul grafico di tua scelta una media a 200, una media a 20 con le bande superiori ed inferiori (la bande sono semplicemente la setssa media con in + o – i parametri che tu gli hai detto, cioè STD[20]*1.5) in modo da verificare, visivamente ed usando GRAPH, come ti ha suggerito papero76, i valori delle variabili interessate, che sono

    • mm200
    • binf
    • bsup

    le altre, almeno in un primo tempo, non t’interessano. Con questo riuscirai a capire perché entra ad ogni barra.

    Quanto all’uscita è più semplice, esce perché alle righe 17 e 25 tu verifichi solo che le variabili

    • tplong
    • sllong
    • tpshort
    • slshort
    siano vere (cioè diverse da zero) e lo sono SEMPRE avendogli assegnato tu un valore alle precedenti righe 8-11, mentre dovresti mettere un ordine pendente come ha fatto parzialmente papero76, lui ha usato il comando SET per lo stop loss ed un ordine pendente per il target profit. Suggerisco di usare la stessa tecnica, usare SET o ordini pendenti per entrambi.
    Quanto alle righe 3 e 13 scritte da papero76, non vanno bene, perchè quelle due variabili contengono un prezzo (che andrebbe bene con ordini pendenti), mentre LOSS vuole una DIFFERENZA tra prezzi espressa in prezzo (ad esempio 0.0020) e PLOSS vuole la stessa cosa ma espressa in pips (ad esempio 20).
    #76891 quote
    mourning33
    Participant
    Junior

    Alla fine ho deciso di fissare stop loss e take profit in percentuale e perciò sono riuscito a far funzionare i backtest!

    Grazie a tutti per l’aiuto!

    #77019 quote
    papero76
    Participant
    Senior

    sta cosa del maiscolo non la ricordo mai?

    se scrivo in maiscolo sicnifica che sto lavorando un codice….. per comodità e velocità non cambio

    #77021 quote
    robertogozzi
    Moderator
    Master

    Non preoccuparti, stavolta l’hai ricordata!

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

Take profit e stop loss con ATR


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
mourning33 @mourning33 Participant
Summary

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

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 07/26/2018
Status: Active
Attachments: No files
Logo Logo
Loading...