Trailing stop + Take profit + Stop loss
Forums › ProRealTime forum Italiano › Supporto ProOrder › Trailing stop + Take profit + Stop loss
- This topic has 21 replies, 2 voices, and was last updated 6 years ago by beppe8949.
-
-
03/01/2018 at 8:08 PM #64195
Ciao a tutti!
Vorrei utilizzare uno stop fisso, un take profit fisso e un trailing stop che parta e che una volta partito disattivi il take profit fisso (se possibile). Mi spiego meglio..Il codice funziona benissimo, ma il take profit rimane fisso e quindi la posizione viene chiusa in profitto ma potrebbe andare anche oltre.
Incollo il codice e chiedo gentilmente cosa dovrei modificare per far si che ottenga questo risultato, il codice è stato ottimizzato con probacktest sul dax 5€ a punto, l’indicatore utilizzato è stato realizzato da me, oggi ha aperto una posizione short sul dax che è andata in profitto di 30 punti (valore del take profit), ma il prezzo è sceso ancora tantissimo e avrei potuto prendere tutto il movimento se avessi avuto un trailing stop funzionante.Io penso che il trailing stop non sia nemmeno partito. Da ottimizzazione, i seguenti, erano i risultati e i valori migliori, sicuramente sto sbagliando qualcosa! Grazie mille in anticipo!
1234567891011121314151617181920212223242526272829303132333435363738394041DEFPARAM PRELOADBARS = 10000DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 220000daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0myINDICATORE = CALL INDICATOREc1 = (myINDICATORE = 1)IF c1 AND NOT daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETENDIFSET STOP PLOSS 10SET TARGET PPROFIT 30trailingstart = 11trailingstep = 376IF NOT ONMARKET THENnewSL=0ENDIFIF LONGONMARKET THENIF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIFIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIFIF SHORTONMARKET THENIF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIFIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIFIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF03/01/2018 at 11:40 PM #64198Senza l’indicatore è impossibile provarlo.
03/01/2018 at 11:55 PM #64199Grazie Roberto, però vorrei sapere magari se ci sono i settaggi scorretti a livello di trailing stop, take profit e stop loss.. Cioè se li devo usare tutti e 3, se il codice per avviare il trailing stop è corretto ecc..
Grazie! 🙂03/02/2018 at 2:54 AM #64203Io l’ho provato sul DAX a 10 minuti mettendo
1myINDICATORE = 1e mi pare funzioni correttamente. Vedo che quasi tutti gli SL sono di € 250, cioè 10 pips (a 25 € caduno).
A volte il Trailing Stop entra, però con uno step di 376 pips la vedo dura che riesca a fare qualcosa di buono, è enorme,generalmente si incrementa di 10-20 pips. Nel tuo caso con un TP di 30 pips non ha molto senso.
Ho provato a cambiare i valori così
1234SET STOP PLOSS 20SET TARGET PPROFIT 35trailingstart = 11trailingstep = 15e vedo funziona molto meglio. Fai molte prove con valori diversi finché non trovi quelli giusti.
03/02/2018 at 8:21 AM #64210Ok perfetto grazie mille, un’ultima cosa, io ho 2 codici per avviare il trailing stop.. Posso chiederti quale reputi sia il migliore? Calcolando che uno però non ha il take profit, non so se posso ritenerlo affidabile, però chiedo infatti a te:
Primo codice123456789101112131415161718192021222324252627DEFPARAM PRELOADBARS = 10000DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 220000PointTarget= 123456 // limite punti di profittoPointStop= 123456 // limite punti di perditasize= 1 // numero di contratti/valore del pip (punto)PointSogliaTrailing= 123456 // valore che attiva il trailingstopPointTrailingStop= 123456 // valore del trailingstopIndicator1=CALL "EGL"c1=(Indicator1=2)c2=(Indicator1=1)daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0IF c1 AND NOT LongOnMarket AND NOT daysForbiddenEntry THENBUY size CONTRACTS AT MARKETSET STOP pLOSS PointStopSET TARGET pPROFIT PointTargetENDIFIF PointTrailingStop>0 AND ONMARKET THENif LongOnMarket and High>=POSITIONPRICE+PointSogliaTrailing*POINTVALUE thenSET STOP pTRAILING PointTrailingStopendifENDIFSecondo codice12345678910111213141516171819202122232425262728293031323334DEFPARAM PRELOADBARS = 10000DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 220000trailingstart = 123456 //trailing will start @trailinstart points profittrailingstep = 123456 //trailing step to move the "stoploss"Indicator1=CALL "EGL"c1=(Indicator1=2)daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0IF C1 AND NOT daysForbiddenEntry THENBUY 1 CONTRACT AT MARKETENDIF//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPENDIF03/02/2018 at 8:28 AM #6421103/02/2018 at 11:42 AM #64218Non saprei dirti. Se non in qualche prova iniziale, non ho mai usato
1SET STOP pTRAILINGperché non mi piaceva.
03/02/2018 at 12:48 PM #64223Ok ti ringrazio, nelle ottimizzazioni, te personalmente preferisci le variabili con maggior guadagno ma percentuale di posizioni profittevoli minore oppure scegli minor guadagno ma percentuale di posizioni profittevoli maggiore?
Grazie, ciao buona giornata e buon week end!03/02/2018 at 12:52 PM #64224Per me la precedenza assoluta va alla percentuale di profittabilità. Il guadagno può essere inferiore o maggiore, ma l’importante è chiudere in profitto ogni volta che è possibile!
Grazie. Buon fine settimana anche a te.
03/06/2018 at 1:05 PM #6457603/06/2018 at 3:13 PM #64587Io non uso
1set stop ptrailingperò l’ho provato sul Dax a 1 minuto e funziona, mi ha chiuso alcune operazioni in profitto usando il trailing stop nativo.
03/06/2018 at 3:19 PM #64589Porca miseria e che trailing stop adoperi? Perchè io uso il TF a 4H sul dax, ma non parte. Ho provato a cercare e ne ho trovato uno di Nicolas nella sezione “learning” che è spettacolare, però se metto Take profit e Stop loss in automatico il sistema mi trova variabili molto più basse rispetto al trailing stop e per tanto è come se non ci fosse perchè mi prende il take profit ancor prima che parta il trailing stop.. Se invece non metto ne stop loss e ne take profit, mi da solo risultati negativi il backtest..
dax1234567891011121314151617181920212223242526272829303132333435DEFPARAM PRELOADBARS = 10000DEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 215500Indicator1=CALL "EGL"c1=(Indicator1=2)IF C1 THENBUY 1 CONTRACT AT MARKETENDIFSET STOP PLOSS slSET TARGET PPROFIT tptrailingstart = tr1trailingstep = tr2IF NOT ONMARKET THENnewSL=0ENDIFIF LONGONMARKET THENIF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIFIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIFIF SHORTONMARKET THENIF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIFIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIFIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF03/06/2018 at 3:25 PM #64592Sul 4h occorreranno valori adeguati, specialmente sul DAX in una sola candela si possono muovere anche 100-200 pips!
Comunque io avevo fatto la prova con il trailing stop nativo della pòiattaforma.
Ad ogni modo io uso sempre il codice di Nicolas e funziona!
03/06/2018 at 10:03 PM #64626Si si ma ne sono certissimo che funziona, però non so perchè non mi trova le giuste variabili (a 4h) sul dax, ho provato anche su altri mercati.. Guarda, questo è il codice che uso, dove “TR1” e “TR2” sono le due variabili che voglio trovare ed “EGL” è l’indicatore da me creato che funziona benissimo con TAKE PROFIT E STOP LOSS.
12345678910111213141516171819202122232425262728293031323334DEFPARAM PRELOADBARS = 10000DEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 215500Indicator1=CALL "EGL"c1=(Indicator1=2)IF C1 THENBUY 1 CONTRACT AT MARKETENDIFtrailingstart = TR1trailingstep = TR2IF NOT ONMARKET THENnewSL=0ENDIFIF LONGONMARKET THENIF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIFIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIFIF SHORTONMARKET THENIF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIFIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIFIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF03/07/2018 at 12:59 AM #64636Mi pare che il codice sia corretto. Non prosso provarlo perché manca l’indicatore e parti del codice.
-
AuthorPosts
Find exclusive trading pro-tools on