stop loos dinamico
Forums › ProRealTime forum Italiano › Supporto ProOrder › stop loos dinamico
- This topic has 8 replies, 3 voices, and was last updated 3 years ago by robertogozzi.
-
-
02/13/2021 at 10:47 AM #161273
Buongiorno a tutti, vorei inserire uno stop loos dinamico, mi spiego, la posizione una volta aperta funziona senza stop loos, se dovvesse raggiungere i 20 pip di guadagno lo stop loos si piazza al prezzo di acquisto, sia su posizioni long che short. Come posso scrivere il codice?
Grazie
02/13/2021 at 11:08 AM #161276Eccolo:
123456789101112131415161718IF Not OnMarket THENStopLoss = 0ENDIFIF LongOnMarket THENIF (close - PositionPrice) >= 20 * PipSize THENStopLoss = max(StopLoss,PositionPrice)ENDIFIF StopLoss > 0 THENSELL AT StopLoss STOPENDIFELSIF ShortOnMarket THENIF (PositionPrice - close) >= 20 * PipSize THENStopLoss = min(StopLoss,PositionPrice)ENDIFIF StopLoss > 0 THENSELLSHORT AT StopLoss STOPENDIFENDIF02/13/2021 at 11:12 AM #161278Grazie Roberto, sulle posizioni long funziona alla grande mentre non funziona sulle posizioni short
02/13/2021 at 11:49 AM #161282Hai ragione, perché non ho messo il controllo sullo zero iniziale dello StopLoss:
123456789101112131415161718IF Not OnMarket THENStopLoss = 0ENDIFIF LongOnMarket THENIF (close - PositionPrice) >= 20 * PipSize AND (StopLoss = 0) THENStopLoss = PositionPriceENDIFIF StopLoss > 0 THENSELL AT StopLoss STOPENDIFELSIF ShortOnMarket THENIF (PositionPrice - close) >= 20 * PipSize AND (StopLoss = 0) THENStopLoss = PositionPriceENDIFIF StopLoss > 0 THENSELLSHORT AT StopLoss STOPENDIFENDIFcosì dovrebbe andare bene (non l’ho priovato).
02/13/2021 at 11:53 AM #161283Ho provato, ma niente la posizione short non si chiude come dovrebbe
02/13/2021 at 12:49 PM #16129012345678910111213141516171819IF Not OnMarket THENStopLoss = 0ENDIFIF LongOnMarket THENIF (close - PositionPrice) >= 20 * PipSize AND (StopLoss = 0) THENStopLoss = PositionPriceENDIFIF StopLoss > 0 THENSELL AT StopLoss STOPENDIFENDIFIF ShortOnMarket THENIF (PositionPrice - close) >= 20 * PipSize AND (StopLoss = 0) THENStopLoss = PositionPriceENDIFIF StopLoss > 0 THENEXITSHORT AT StopLoss STOPENDIFENDIFHo fatto delle modifiche cosi sembra che funzioni, mi puoi dare uno squardo se va tutto bene, grazie
02/13/2021 at 2:31 PM #161301Si, è corretto.
02/25/2021 at 6:07 PM #162630Ciao a tutti, non riesco proprio a fare in modo che lo stop venga spostato a breakeven +5 quando il prezzo raggiunge il targhe price 1.
Ci tengo a sottolineare che nel backtest sembra che funzioni ma in reale succede che lo stop viene spostato al momento giusto ma alla barra successiva viene rispostato dov’era all’inizio.
allego il file che sto utilizzando.
Grazie a chi vorrà aiutarmi.
123456789101112131415161718192021222324252627282930313233343536373839404142434445rem test spostamento stop loss a breakeven al raggingimento di TP1DEFPARAM CumulateOrders = false // Posizioni cumulaterem ********* INPUT ********direzione=-1 //-1=SHORT +1=LONGentry=6100 //prezzo entrataTP1=6050 //prezzo targhet price 1TP2=5900 //prezzo targhet price 2SL=6180 //prezzo stop losstp1p=ABS(entry-TP1) //pip TP1tp2p=ABS(entry-TP2) //pip TP"slp =ABS(entry-SL) //pip SLrem impostazione orario fine programmaif time >200000 and not onmarket then rem esco se non sono a mercato dopo le 20.00quitelsif counter=1 and not onmarket then rem esco se posizione è stata chiusaquitendifrem ingressoif onmarket and counter=0 then rem contatore voglio che venga aperta una sola operazionecounter=1endifrem -------- ingresso + targhet + stop lossif direzione=1 and counter=0 thenbuy 1 contract at entry limitset stop ploss slpset target pprofit tp2pendifif direzione=-1 and counter=0 thensellshort 1 contract at entry limitset stop ploss slpset target pprofit tp2pendifrem ------- uscita a breakeven +5if longonmarket and high>TP1 thensell at (entry)+(5*pointsize) stopendifif shortonmarket and low<TP1 thenexitshort at (entry)-(5*pointsize) stopendif//graph counter//graph tp1p//graph tp2p//graph slp02/25/2021 at 6:21 PM #162633Perché gli ordini pendenti (Limit o Stop che siano) durano solo una barra e vanno piazzati nuovamente barra dopo barra, se ervono ancora.
Nel tuo caso tu non memorizzi lo SL in una variabile, ma piazzi l’ordine pendente SOLO se il prezzo < TP1 (tra l’altro non usi TP1P).
Inoltre la riga 38 calcola un presunto SL (che in realtà non è) in modo errato, infatti LOW < TP1 è già vero dalla prima candela, perché il prezzo d’entrata è sicuramente inferiore al LOW.
Devi rivedere un pò la logica di quel codice.
-
AuthorPosts
Find exclusive trading pro-tools on