Modificare il take profit

Viewing 15 posts - 1 through 15 (of 22 total)
  • Author
    Posts
  • #116454 quote
    drfb
    Participant
    Average

    Scusate,

    ho provato a cercare nel forum ma non sono riuscito a trovare nulla, circa la possibilità di spostate, oltre allo stop loss, anche  il take profit, nel caso in cui la possibilità me lo permetta.

    C’è una riga di comando apposita per farlo?

    Per esempio,

    if condizione then
    
    newtp = newtp + 5
    
    ??????
    
    endif

     

    Grazie

    Francesco

    #116458 quote
    robertogozzi
    Moderator
    Master

    Puoi usare SET TARGET PROFIT o PPROFIT, a seconda che tu indichi una differenza espressa in prezzo o in pips rispetto al prezzo d’ingresso.

    In alternativa puoi verificare quando il prezzo raggiunge il TP ed uscire a mercato.

    drfb thanked this post
    #116459 quote
    fifi743
    Participant
    Master
    sell at close limit // tp buy
    exitshort at close limit // tp sell
    sell at close stop // stop buy
    exitshort at close stop // stop SELL

    Buongiorno,
    Sostituisci close con un altro valore

    drfb thanked this post
    #116478 quote
    drfb
    Participant
    Average

    Grazie!!!

    #116535 quote
    supermyguel
    Participant
    Average

    Buonasera

    Mi riallaccio a questo topic visto che si parla più o meno della stessa cosa….

    Il mio quesito è questo.

    E’ possibile inserire una stringa che mi “sposti” lo stop loss ad una determinata soglia (entrata + 100 nel mio caso) se il guadagno supera un certo importo?

    Ad esempio una cosa del genere (metto un riassunto del codice…)

    newsllong = (close – TRADEPRICE) > 400
    
    IF newsllong THEN
       SELL AT (TRADEPRICE + 100) STOP
    ENDIF
    
    SET STOP PLOSS 720
    #116537 quote
    robertogozzi
    Moderator
    Master

    >> Per chiarezza dei messaggi sul Forum di Prorealcode, separare le parti del vostro codice usando il pulsante “Insert PRT code”. <<
    Grazie 🙂

    #116538 quote
    robertogozzi
    Moderator
    Master

    Suggerisco di aggiungere * pipsize sia dopo 400 alla riga 1 che dopo 100 alla riga 4, per rendere il codice trasportabile da uno strumento all’altro.

    Il tuo codice va bene, forse è meglio spostare in alto la riga 7, l’ultima, in quanto essendo equivalente ad un’uscita SELL (quando sei Long), potrebbe sovrascriverete l’ordine di uscita della riga 4.

    #116553 quote
    supermyguel
    Participant
    Average

    Grazie per la risposta!

    Ho modificato ma sembra non funzionare….

    Il codice completo è questo…… Dove potrebbe essere errato?

    Grazie

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE TradeLong = 1
    ONCE TradeShort = 1
    
    newsllong = (close - TRADEPRICE) > 400*pipsize
    newslshort = (TRADEPRICE-CLOSE) >400*pipsize
    
    
    // Condizioni per entrare su posizioni long
    
    indicator1 = xxx
    c1 = (indicator1 >= 100)
    
    IF c1 AND TradeLong = 1 THEN
    BUY 1 CONTRACT AT MARKET
    TradeLong = 0
    TradeShort = 1
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator2 = xxx
    c2 = (indicator2 <= -10)
    
    IF c2 THEN
    SELL AT MARKET
    ENDIF
    
    IF newsllong THEN
    SELL AT (TRADEPRICE + 100* pipsize) STOP
    ENDIF
    // Condizioni per entrare su posizioni short
    
    indicator3 = xxx
    c3 = (indicator3 <= -90)
    
    IF c3 AND TradeShort = 1 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    TradeLong = 1
    TradeShort = 0
    ENDIF
    
    IF newslshort THEN
    EXITSHORT AT (TRADEPRICE - 100* pipsize) STOP
    ENDIF
    // Condizioni per uscire da posizioni short
    indicator4 = xxx
    c4 = (indicator4 >= -6)
    
    IF c4 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    //SET STOP pTRAILING 660
    //SET STOP PLOSS 720
    SET TARGET PPROFIT 950
    #116556 quote
    robertogozzi
    Moderator
    Master

    Intanto l’ultima riga la sposterei alla 5 o alla 8.

    Il problema principale è che gli ordini prendenti durano una sola barra e vanno reimmessi, se necessario, ad ogni nuova barra.

    Nel tuo caso se in una barra lo stop alle righe 6 e 7 viene settato, se nella barra successiva scende a 399, viene disattivato, vanificando quanto fatto la barra precedente, per cui devi eseguire la riga 6 solo se newsllong=0 e la riga 7 solo se newslshort=0.

    Ovviamente dovrai azzerare entrambe queste variabili quando non sei a mercato e devi farlo prima della riga 6.

    #116703 quote
    supermyguel
    Participant
    Average
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE TradeLong = 1
    ONCE TradeShort = 1
    
    SET TARGET PPROFIT 950
    
    ONCE newsllong = 0
    ONCE newslshort = 0
    
    IF newsllong = 0 then
    newsllong = (close - TRADEPRICE) > 400*pipsize
    endif
    
    IF newslshort = 0 then
    newslshort = (TRADEPRICE-CLOSE) >400*pipsize
    endif
    
    // Condizioni per entrare su posizioni long
    
    indicator1 = xxx
    c1 = (indicator1 >= 100)
    
    IF c1 AND TradeLong = 1 THEN
    BUY 1 CONTRACT AT MARKET
    TradeLong = 0
    TradeShort = 1
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator2 = xxx
    c2 = (indicator2 <= -10)
    
    IF c2 THEN
    SELL AT MARKET
    ENDIF
    
    IF newsllong THEN
    SELL AT (TRADEPRICE + 100* pipsize) STOP
    ENDIF
    // Condizioni per entrare su posizioni short
    
    indicator3 = xxx
    c3 = (indicator3 <= -90)
    
    IF c3 AND TradeShort = 1 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    TradeLong = 1
    TradeShort = 0
    ENDIF
    
    IF newslshort THEN
    EXITSHORT AT (TRADEPRICE - 100* pipsize) STOP
    ENDIF
    // Condizioni per uscire da posizioni short
    indicator4 = xxx
    c4 = (indicator4 >= -6)
    
    IF c4 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    //SET STOP pTRAILING 660
    //SET STOP PLOSS 720

    Innanzitutto grazie per il tuo aiuto….

    Ma quindi una cosa del genere? Perchè se è così c’è qualcosa che non va visto che il backtesting è orrendo….

    p.s.

    scusa ma finchè si tratta di costruire indicatori me la cavo ma azzerare variabili sono in difficoltà….

    #116708 quote
    robertogozzi
    Moderator
    Master

    Sostituisci la riga 11 con:

    IF newsllong = 0 AND LongOnMarket then

    e la riga 15 con:

    IF newslshort = 0 AND ShortOnMarket then

    Così va bene…. se il backtest è orrendo…. non preocuparti, ne scriverai decine o centinaia di strategie che dopo poco metterai nel cestino!

    Non so cosa dirti perché non l’ho provata.

    #116822 quote
    supermyguel
    Participant
    Average

    Non funziona…… Non fa mai quello che deve…. Non sposta mai lo stop…… boh

    #116824 quote
    robertogozzi
    Moderator
    Master

    Deve spostare lo SL solo una volta, al superamento di 400 pips di guadagno lo sposta a pareggio + 100 pips. Poi resta li fermo.

    #116889 quote
    supermyguel
    Participant
    Average

    Non sposta mai lo STOP a BE + 100……. nel backtest in modalità normale (senza BE+100) ho risultati soddiasfacenti….. mettendo l’istruzione BE+100 tutte le operazioni sono negative….. e mi pare impossibile…

    #116893 quote
    robertogozzi
    Moderator
    Master

    Ma va qualche volta sopra i 400 pips?

    Su quale strumento e TF lo usi?

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

Modificare il take profit


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
drfb @drfb Participant
Summary

This topic contains 21 replies,
has 4 voices, and was last updated by supermyguel
6 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/11/2020
Status: Active
Attachments: 1 files
Logo Logo
Loading...