riduzione dello stop dopo n barre

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #191194 quote
    KAMJKAZE
    Participant
    Junior

    salve a tutti,
    ho provato a cercare nel forum una funzione simile, ma senza successo.
    l’idea è quella di ridurre lo stop di una percentuale (considerando i punti/pip) rispetto allo stop iniziale, se il trade in corso è perdente dopo un numero definito di barre.
    ho trovato una funzione chiamata “exit zombie trade” dal quale ho preso spunto.
    esempio:
    trade aperto perdente, dopo 10 barre, se il close si trova entro il 50% dell stop originario allora riduco lo stop del 20 % (tipo da 100 a 80 punti).
    ovviamente è una bozza e non so ne se si può fare ne se è corretto come l’ho scritto, magari qualcuno ha pensato o fatto già qualcosa di simile.
    allego le stringhe del codice.

    
    ratiostop=(stoploss/100)*50 //percentuale dello stop iniziale in punti/pip entro la quale può essere ridotto lo stop
    entry=tradeprice(1)*pipsize
    stopreduce=((stoploss/100)*80) *pipsize //percentuale in cui lo stop dovrebbe essere ridotto (20%)
    
    closepositionatxbars= abs (entry- close)*pipsize //posizione del close dopo n barre
    
    if onmarket  and barindex-tradeindex(1)>xbars and (MFE=0) and  closepositionatxbars<ratiostop then
    sell at stopreduce
    endif
    #191251 quote
    robertogozzi
    Moderator
    Master

    Il tuo codice non è completo, inoltre non capisco cosa tu voglia fare alla riga 2, per cui ho scritto questo:

    IF OnMarket AND Not OnMarket[1] THEN
       StopLoss = TradePrice - 100*PipSize
    ENDIF
    IF average[10] CROSSES OVER average[100] THEN
       BUY AT MARKET
       StopLoss = close - 100*PipSize
       SELL AT StopLoss STOP
       SET TARGET pPROFIT 50
    ENDIF
    IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN    //risuci del 20% dopo 10 barre se in perdita ed entro il 50%
       IF (close + 50*PipSize >= TradePrice) AND PositionPerf < 0 THEN
          StopLoss = TradePrice - 80*PipSize
       ENDIF
    ENDIF
    IF OnMarket THEN
       SELL AT StopLoss STOP
    ENDIF
    graphonprice StopLoss   coloured(255,0,0,255)
    graphonprice TradePrice
    graph PositionPerf
    #191253 quote
    KAMJKAZE
    Participant
    Junior

    Ciao Roberto,
    il senso è piu o meno quello che hai scritto:

    l’esempio che avevo fatto in punti era esplicativo, in pratica l’idea era utilizzare una percentuale dello stop originaro, ti riporto ad esempio:

    IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN    //riduci del 20% dopo 10 barre se in perdita ed entro il 50%
       IF (close < al tradeprice ma maggiore del 50% dello stop originario) AND PositionPerf < 0 THEN
          StopLoss = (stoploss/100)*80 //80% dello stop di partenza
       ENDIF
    ENDIF

    il punto è che non so come indicargli (oltre al resto) che deve calcolarmi la percentuale x dello stop
    lo scopo è quello di ridurre il drawdown di un sistema durante quei trade che sono destinati a perdere.

    #191254 quote
    robertogozzi
    Moderator
    Master

    Si, va bene quello che hai scritto.

    #191257 quote
    KAMJKAZE
    Participant
    Junior

    ok quindi in teoria andrebbe scritto cosi, riporto il tuo esempio, dimmi se scrivo corbellerie.
    esempio di profitto perdite 1:1

    
    IF average[10] CROSSES OVER average[100] THEN
       BUY AT MARKET
       StopLoss = (close - lowest[10](low))
       perdita = StopLoss
       profitto= StopLoss
          SELL AT StopLoss STOP
       SET TARGET pPROFIT stoploss
    ENDIF
    
    ratiostop= (perdita/100)*50 //la metà dello stop originario
    nuovostop= perdita- (perdita*0.2) // nuovo stoploss ridotto del 20 %
    IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN    // dopo 10 barre se in perdita ed entro il 50%
       IF (close + ratiostop >= TradePrice) AND PositionPerf < 0 THEN
          sell at  nuovostop stop 
       ENDIF
    ENDIF
    
    #191280 quote
    robertogozzi
    Moderator
    Master

    Mancano le righe 1-3 del mio codice. Non che sia fondamentale, serve solo ad ottenere uno SL più preciso, in caso di gap o slippage.

    Alla riga 7 usa PROFIT, senza la “p” iniziale.

    Ma ci sono altre cose errate. Ad esempio alla riga 6 piazzi un ordine pendente per uscire, ma deve essere un prezzo, non una differenza tra prezzi.

    #191283 quote
    KAMJKAZE
    Participant
    Junior

    Ok, tutto chiaro.
    domani da pc riscrivo tutto.
    per la prima parte non ci ho fatto molto caso onestamente  quando scrivevo mi stavo concentrando sulle righe Dalla 10–>16.

    :/

    Ma le righe del codice dalla 1–>3 vengono rilette anche in caso in cui vengono eseguite le ultime righe?

    Grazie ancora

    #191293 quote
    robertogozzi
    Moderator
    Master

    Vengono eseguite solo una volta, alla chiusura della prima candela dopo l’entrata.

    #191321 quote
    KAMJKAZE
    Participant
    Junior

    ecco il codice, spero di averlo scritto corretto

    IF OnMarket AND Not OnMarket[1] THEN
       StopLoss = TradePrice - 100*pipsize
    ENDIF
    IF average[10] CROSSES OVER average[100] THEN
       BUY AT MARKET
       StopLoss = close - (lowest [10] (low)
       profitto = stoploss*pipsize
       SELL AT StopLoss STOP
       SET TARGET pPROFIT profitto
    ENDIF
    
    perdita=stoploss *pipsize
    ratiostop= (perdita/100)*50 //la metà dello stop originario
    nuovostop= perdita- (perdita*0.2) // nuovo stoploss ridotto del 20 %
    IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN    // dopo 10 barre se in perdita ed entro il 50%
       IF (close + ratiostop >= TradePrice) AND PositionPerf < 0 THEN
          sell at  nuovostop stop 
       ENDIF
    ENDIF
    IF OnMarket THEN
       SELL AT StopLoss STOP
    ENDIF
    graphonprice StopLoss   coloured(255,0,0,255)
    graphonprice TradePrice
    graph PositionPerf
    #191347 quote
    robertogozzi
    Moderator
    Master

    Ci sono ancora alcuni errori:

    • riga 8, devi usare un PREZZO quando piazzi un ordine pendente, mentre alla riga 6 tu hai calcolato lo stop loss come una differenza tra due prezzi (chiusura e minimo)
    • riga 7, moltiplicare per pipsize serve per convertire dei PIP in un prezzo, ma alla riga 6 lo stoploss è già calcolato come prezzo (differenza di prezzi)
    • riga 9, devi usare PROFIT (senza la “p” iniziale), in quanto è una differenza di prezzi (non PIP).

    Effettivamente per digerire il discorso Pips e Prezzi non è cosa facilissima. Se tu avessi la certezza che le tue strategie fossero SEMPRE usate con indici, dove il rapporto prezzo:pip è di 1:1, potresti anche dimenticarti di questo aspetto, però se vuoi creare delle strategie che funzionino sempre, indipendentemente dallo strumento, allora devi sapere applicare la conversione.

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

riduzione dello stop dopo n barre


Supporto ProOrder

New Reply
Author
author-avatar
KAMJKAZE @kamjkaze Participant
Summary

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

Topic Details
Forum: Supporto ProOrder
Language: Italian
Started: 04/04/2022
Status: Active
Attachments: No files
Logo Logo
Loading...