Ciao,
E’ possibile impostare uno stop loss ad un determinato prezzo, ad esempio il minimo della candela di ingresso, e il trailing stop che si aggiorna al minimo di ogni candela che ottiene un nuovo massimo (in caso di long)?
Grazie
Non si possono usare entrambe le istruzioni SET STOP e SET TRAILING STOP:
- se messi sulla stessa riga (es.: SET STOP PLOSS 100 TRAILING 10) verrà segnalato un errore dall’autotrading (anche se il backtest funziona)
- se su righe separate verrà eseguito sempre quello indicato per ultimo sequenzialmente.
Per risolvere questo occorre:
- settare lo STOP al prezzo che vuuoi con
SET STOP PRICE PrezzoPrescelto
- utilizzare, invece, un trailing stop a mezzo codice. Il più noto è quello scritto da Nicolas e che puoi vedere alle righe 17-56 a questo link https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/, dove dovrai cambiare solo i due valori trailingstart e trailingstep (oppuri li lasci come sono).
Ciao Roberto e grazie
Ho capito il codice scritto da Nicolas ma al momento non riuscirei a riprodurlo nel mio codice. Prima che mi cimento nello studio e provo a sviluppare ciò che mi serve vorrei farti una domanda.
Vedo che Nicolas usa come condizione per lo STOP TRAILING dei movimenti calcolati in pip, ma è possibile stabilire delle condizioni del tipo : se la barra ha chiuso ad un nuovo massimo (in caso di long) – lo STOP TRAILING si aggiorna e si posiziona al minimo dell’ultima candela? Esempio: ‘IF close > close[1] THEN SET TRAILING STOP low’
Non ho problemi con l’autotrading in quanto adesso non sono interessato ad utilizzarlo, mi serve solo il backtest.
Buon fine settimana!
Il codice di Nicolas è semplice riprodurlo, basta aggiungerlo alla fine del tuo codice ed eventualmente variare i due valorim indicati. L’importante è che nel tuo codice tu non utilizzi nessun nome di variabile identico ad uno di quel codice.
Ad ogni modo questo è l’esempio che chiedi:
// supponiamo che il tuo prezzo di Stop Loss sia contenuto
// nella variabile PrezzoUscita
//
IF LongOnMarket THEN
PrezzoUscita = max(low,PrezzoUscita)
SET STOP PRICE PrezzoUscita
ENDIF