Problema con stop loss non eseguiti
Forums › ProRealTime forum Italiano › Supporto ProOrder › Problema con stop loss non eseguiti
- This topic has 3 replies, 2 voices, and was last updated 2 years ago by robertogozzi.
-
-
05/03/2022 at 10:57 PM #192619
Buonasera,
mi sono avvicinato al “mondo” dei trading system di prorealtime da pochi giorni, pur avendo una discreta esperienza da trader.
Sto provando a fare dei primi test di strategie utilizzando il probacktest, ma riscontro dei problemi con l’applicazione degli stop loss, che talvolta vengono ignorati dal sistema.
Ad esempio, Dax time frame 3 minuti:
1234567891011121314151617DEFPARAM CumulateOrders=Falseclo = closest = SuperTrend[3,10]c1 = clo crosses over stc2 = clo crosses under stIF c1 AND AverageTrueRange[14](close)>= 20 THENBUY 1 contract AT close[1] stopSET TARGET PROFIT 4SET STOP LOSS c2ENDIFIF c2 AND AverageTrueRange[14](close)>= 20 THENSELLSHORT 1 contract AT close[1] stopSET TARGET PROFIT 4SET STOP LOSS c1endifSo che non è una buona strategia, ma mi serve solo a titolo di test: non capisco perchè non venga applicato lo stop loss al cambio di colore del supertrend (ad esempio ordine del 21 marzo ore 10.06 non viene stoppato alle 12.30).
Grazie
05/04/2022 at 9:08 AM #192627La cosa principale è l’utilizzo, alle righe 10 e 16, di due valori logici (booleani) per lo stop loss. C1 e C2 possono solo avere valore 1 o 0 (Vero o Falso) in quanto relative alla verifica di una condizione. Quin di otterrai uno Stop Loss disabilitato quando hanno valore 0 (la naggior part6e delle volte), oppure uno stop loss di 1 solo punto (più raramente).
Poi c’è la questione del Take Profit (ma anche dello Stop Loss) troppo vicino al prezzo corrente. Il broker IG richiede che ci sia una certa distanza minima, da verificare sul sito di IG (varia da strumento a strumento), 4 mi sembra poco (figurarsi 1 per lo Stop Loss). In Backtest funziona, perché il backtest non conosce le condizioni del broker, ma quando andrai a fare girare la strategia in autotrading (demo o reale che sia, il broker te la interromperà se le distanze non sono almeno quelle richieste).
Infine c’è il problema degli ordini pendenti (vedi schema allegato). Alle righe 8 e 14 non puoi essere certo che il prezzo attuale (CLOSE) sia per forza migliore della chiusura precedente (anche se solitamente dovrebbe essere così), per cui dovresti verificare se usare STOP, LIMIT o addirittora AT MARKET se la distanza minima richiesta non c’è.
Con C1 e C2, dove vuoi che sia messo lo Stop Loss?
1 user thanked author for this post.
05/06/2022 at 1:46 AM #192795Grazie mille per la risposta.
Per la questione di take profit e stop loss troppo vicini per i criteri di IG, credevo di superare il problema cliccando sul flag “aggiustare gli stop” al momento dell’avvio dell’esecuzione della strategia.
Per il discorso degli ordini pendenti, alle righe 8 e 14 ho inserito Close[1] per indicare il prezzo di chiusura della candela precedente (quella che ha “provocato” il cambio di colore di supertrend), ma effettivamente non avevo considerato che può essere sia sopra che sotto il prezzo.
Infine, con stop loss c1 per lo short e c2 per il long intendevo inserirli al cambio di colore di supertrend.
Ho provato a fare delle modifiche, che ne pensi?
1234567891011121314151617181920212223242526272829DEFPARAM CumulateOrders=Falseclo = closest = SuperTrend[3,10]c1 = clo crosses over stc2 = clo crosses under stIF c1 AND AverageTrueRange[14](close)>= 20 THENif WeightedClose>= close[1] thenBUY 1 contract AT close[1] stopelsif WeightedClose<= close[1] thenBUY 1 contract AT close[1] limitendifSET TARGET PROFIT 4ENDIFif longonmarket and clo crosses under st thenSELL 1 contract at marketendifIF c2 AND AverageTrueRange[14](close)>= 20 THENif WeightedClose<= close[1] thenSELLSHORT 1 contract AT close[1] stopelsif WeightedClose>= close[1] thensellshort 1 contract AT close[1] limitendifSET TARGET PROFIT 4endifif shortonmarket and clo crosses over st thenEXITSHORT 1 contract at marketendif05/06/2022 at 10:53 AM #192810Potresti usare C2 alla riga 15 e C1 alla riga 27, come condizioni di uscita (per non ripetere CROSSES OVER/UNDER).
Per la decisione se usare ordini LIMIT o STOP, devi invertire LIMIT e STOP. Quando il prezzo d’entrata è MIGLIORE rispetto a quello attuale (tu usi il prezzo ponderato, ma il broker fa sempre riferimento alla chiusura) occorre usare LIMIT, nell’altro caso STOP. Quindi se compri ad un prezzo più basso (o vendi ad uno più alto), essendo migliore, usa LIMIT, mentre se compri ad un prezzo più alto (o vendi ad uno più basso), essendo peggiore, usa STOP.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on