Problema con stop loss non eseguiti

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #192619 quote
    albespo
    Participant
    New

    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:

    DEFPARAM CumulateOrders=False
    clo = close
    st = SuperTrend[3,10]
    c1 = clo crosses over st
    c2 = clo crosses under st
    
    IF c1 AND AverageTrueRange[14](close)>= 20 THEN
    BUY 1 contract AT close[1] stop
    SET TARGET PROFIT 4
    SET STOP LOSS c2
    ENDIF
    
    IF c2 AND AverageTrueRange[14](close)>= 20 THEN
    SELLSHORT 1 contract AT close[1] stop
    SET TARGET PROFIT 4
    SET STOP LOSS c1
    endif

    So 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

    #192627 quote
    robertogozzi
    Moderator
    Master

    La 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?

    albespo thanked this post
    #192795 quote
    albespo
    Participant
    New

    Grazie 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?

    DEFPARAM CumulateOrders=False
    clo = close
    st = SuperTrend[3,10]
    c1 = clo crosses over st
    c2 = clo crosses under st
     
    IF c1 AND AverageTrueRange[14](close)>= 20 THEN
    if WeightedClose>= close[1] then
    BUY 1 contract AT close[1] stop
    elsif WeightedClose<= close[1] then
    BUY 1 contract AT close[1] limit
    endif
    SET TARGET PROFIT 4
    ENDIF
    if longonmarket and clo crosses under st then
    SELL 1 contract at market
    endif
     
    IF c2 AND AverageTrueRange[14](close)>= 20 THEN
    if WeightedClose<= close[1] then
    SELLSHORT 1 contract AT close[1] stop
    elsif WeightedClose>= close[1] then
    sellshort 1 contract AT close[1] limit
    endif
    SET TARGET PROFIT 4
    endif
    if shortonmarket and clo crosses over st then
    EXITSHORT 1 contract at market
    endif
    #192810 quote
    robertogozzi
    Moderator
    Master

    Potresti 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.

    albespo thanked this post
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Problema con stop loss non eseguiti


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
albespo @albespo Participant
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by robertogozzi
3 years, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 05/03/2022
Status: Active
Attachments: 1 files
Logo Logo
Loading...