Stop loss in funzione di un guadango
Forums › ProRealTime forum Italiano › Supporto ProOrder › Stop loss in funzione di un guadango
- This topic has 24 replies, 4 voices, and was last updated 4 years ago by robertogozzi.
-
-
09/29/2020 at 2:09 PM #145835
Ciao a tutti, sto cercando di impostare uno stop loss che sia una % dell’eventuale guadagno dell’ultimo trading, nel caso l’ultimo trading sia a N barre dall’ingresso corrente.
Riporto il codice. Nsl è una variabile che calcolo per indicare con 1 se la distanza con l’ultimo trading è inferiore a N barre, con 0 se superiore. Sulla base di questa imposto un stop che sia un x %, piuttosto che una % dell’ultimo guadagno. Se inserisco differenti percentuali di stop sulla base del valore di NSL, funziona. Non funziona se uso PosoitionPerf.
Spero di essere stato chiaro.
Qualcuno mi può dare una mano
12345678IF mie condizioni thenBUY n share at MyLimitBuy stopif nsl=1 thenset stop %loss positionPerfelsif nsl=0 thenset stop %loss x%endifendif09/29/2020 at 2:54 PM #14584509/30/2020 at 8:58 PM #146017Buonasera
mi allaccio a questo topic visto che l’argomento è piuttosto simile.
E’ possibile con PRT creare un Ts in cui lo stop loss è impostato, di base, ad un valore che cambia al raggiungimento di una certa performance?
Ad esempio:
La mia condizione si avvera ed entro long con StopLoss preimpostato di 10pips
Nel momento in cui guadagno 40 pips automaticamete lo stop loss si modifica e va ad entryprice+1
E’ fattibile?
Grazie
09/30/2020 at 10:17 PM #146027Questo dovrebbe funzionare, ma non l’ho provato:
12345678910111213141516171819If Not OnMarket ThenNewSL = 0ElseIf LongOnMarket ThenIf (close - PositionPrice) >= 40 * pipsize ThenNewSL = PositionPrice + 1EndifIf NewSL > 0 ThenSELL at NewSL StopEndifElseIf (PositionPrice - close) >= 40 * pipsize ThenNewSL = PositionPrice - 1EndifIf NewSL > 0 ThenEXITSHORT at NewSL StopEndifEndifEndif10/01/2020 at 1:29 PM #14608411/04/2020 at 9:09 AM #149430Thanks!
Buongiorno
Ho creato il mio TS aggiungendo le istruzioni ma sembra non funzionare….
Ad esempio stanotte è stata aperta una posizione long sul Us Tech 100 da 11.500 e avendo fatto un max a 11.780 (+280punti) in teoria il NewSl doveva essere posizionato a 11.512 ma non lo ha fatto…..
Ipotesi 1
- non funziona mettendo anche il set stop ploss?
ipotesi 2
- bisogna aggiungere * pipsize anche dopo NewSL = PositionPrice + 12 e NewSL = PositionPrice – 14?
123456789101112131415161718192021If Not OnMarket ThenNewSL = 0ElseIf LongOnMarket ThenIf (close - PositionPrice) >= 174 * pipsize ThenNewSL = PositionPrice + 12EndifIf NewSL > 0 ThenSELL at NewSL StopEndifElseIf (PositionPrice - close) >= 90 * pipsize ThenNewSL = PositionPrice - 14EndifIf NewSL > 0 ThenEXITSHORT at NewSL StopEndifEndifEndifset stop ploss 58111/04/2020 at 9:27 AM #149433Set Stop pLoss non influisce sul trailing stop.
Pipsize è meglio metterlo sempre, me n’ero dimenticato, per un problema di portabilità ma in questo caso il rapporto tra pip e prezzo è 1:1 quindi non influisce sul risultato.
Che time frame hai usato?
11/04/2020 at 9:30 AM #149434Considera che non devi guardare i massimi o minini fatti, ma la chiusura.
11/04/2020 at 9:42 AM #149436Considera che non devi guardare i massimi o minini fatti, ma la chiusura.
Considera che non devi guardare i massimi o minini fatti, ma la chiusura.
e’ sicuramente quello il problema…… perchè uso il tf orario e non ha chiuso a +174 ma una ventina di pips in meno….
ma è possibile invece che il close usare il valore puntuale?
11/04/2020 at 12:23 PM #149449Basta sostituire close con HIGH per i long e LOW per gli short.
Per una precisione ancora maggiore potresti usare il supporto MTF (Multi Time Frame), che ti consente di operare su più TF, nel tuo caso su H1 per il setup e l’entrata a mercato, e un TF più breve, ad esempio 1 minuto, per gestire il trailing stop. In questo modo non devi attendere la chiusura della candela oraria.
L’unico inconveniente è che il TF più breve è considerato come principale, quindi deve essere quello sul grafico (non più H1, ma 1 minuto), il che comporta una backtest con uno storico più breve. 100K barre da 1 minuto sono molte meno di 100K barre da 1 ora!
Se cerchi sul forum troverai molti esempi, articoli e post in materia MTF.
Per favore non usare la citazione (quote) quando non serve. Addirittura hai citato te stesso! E in ogni caso NON quotare post dove ci sia del codice! Questo per evitare che i post diventino troppo lunghi e più difficili da leggere. Tieni sempre presente che affinché qualcuno sia disposto ad aiutarti i post devono essere chiari e non troppo lunghi, in modo la leggerli bene in poco tempo. Grazie 🙂
11/04/2020 at 12:43 PM #149450Se uso High/Low il trigger avviene comunque a chiusura barra e non istantaneo giusto?
Perchè se è così allora come hai giustamente scritto è meglio usare MTF con barra 1 minuto.
Grazie!!!!
p.s.
chiedo scusa per il quote a me stesso ma non me ne sono accorto…..
11/04/2020 at 12:58 PM #149453Si, ogni strategia viene sempre eseguita alla chiusura della barra.
È meglio usare il supporto MTF.
Nel tuo esempio di cui sopra, in ogni caso, utilizzando HIGH alla riga 5, lo stop sarebbe stato portato in profitto di 12 punti.
11/05/2020 at 4:26 PM #149550Con l’utilizzo di MTF funziona perfettamente!
Grazie
Un’ultima cosa….. è possibile duplicare le istruzioni
123If LongOnMarket ThenIf (close - PositionPrice) >= 174 * pipsize ThenNewSL = PositionPrice + 12mettendo un ulteriore step di aumento in modo da creare un trailing personalizzato o c’è un conflitto?
Ad esempio, dopo le prime istruzioni, mettere
123If LongOnMarket ThenIf (close - PositionPrice) >= 300 * pipsize ThenNewSL = PositionPrice + 5011/05/2020 at 5:05 PM #149554Si, però quando assegni un valore a NewSL fai in modo che non torni indietro, altrimenti se passa 300 lo porta a +50 e se poi scende a 174 lo porta indietro a +12:
1NewSL = max(NewSL,PositionPrice + 12)ripeti anche alla riga dove c’è +50.
1 user thanked author for this post.
11/05/2020 at 6:03 PM #149569La seconda istruzione va quindi messa dopo la prima
12345678910111213If Not OnMarket ThenNewSL = 0ElseIf LongOnMarket ThenIf (close - PositionPrice) >= 174 * pipsize ThenNewSL = max(NewSL,PositionPrice + 12)EndifIf (close - PositionPrice) >= 300 * pipsize ThenNewSL = max(NewSL,PositionPrice + 50)endifIf NewSL > 0 ThenSELL at NewSL StopEndifo va messa “esternamente” rispetto alla prima istruzione riscrivendo If Longonmarket then…..?
Tecnicamente, usando la funzione max (e min per short) posso creare quanti NewSL voglio giusto?
-
AuthorPosts
Find exclusive trading pro-tools on