Buongiorno a tutti, son o Alessandro
ho realizzato un sistema che entra alla rottura del massimo o del minimo di una determinata candela, il mio problema è che vorrei impostare lo stop loss sul massimo (se entro in short) o sul minino (entrata long), ho usato la funzione range, ma così facendo lo imposta correttamente ma all’apertura di un altra candela modifica lo stop loss.
Il take profit lo vorrei impostare a ipotesi 1.5 o 2 volte il range della candela di ingresso, senza che questo si modifichi ad ogni nuova candela.
Inoltre è possibile impostare un ingresso di qualche pips sopra il massimo o sotto il minimo della candela di set-up?
Grazie mille per l’aiuto!
Ciao, devi aggiornare il tuo paese nel profilo. È possibile sfogliare i forum per questa domanda, dal momento che è spesso richiesto. Ho trovato una discussione su questo argomento in inglese:
http://www.prorealcode.com/topic/stops-in-relation-to-previous-candlesbars/
Fammi sapere se sei ancora nei guai.
Grazie per la risposta, solo che non riesco a piazzare lo stop loss e il take profit dove vorrei, di seguito riporto parte del codice per gli ingressi a mercato.
Ho provato ad inserire il codice SET STOP LOSS low oppure high a seconda della posizione ma non me lo imposta dove vorrei.
Riepilogo la richiesta:
- posizione long ordine stop high della candela di set-up (ok) e stop loss su low della stessa candela, take profit 1,5 volte il range della candela di set-up;
- posizione short ordine stop low della candela di set-up (ok) e stop loss su high della stessa candela, take profit 1,5 volte il range della candela di set-up;
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
BuyPrice = High[1]+2*Pipsize
SellPrice = Low[1]-2*Pipsize
miecondizioniLONG
if miecondizionilong then
BUY AT BuyPrice STOP
endif
miecondizioniSHORT
if micondizioniSHORT then
sellshort at SellPrice STOP
endif
GRAZIE PER L'AIUTO!
So che esiste un modo per realizzare quello che vorrei, ma non riesco a farlo, nessuno sa darmi un mano?
Grazie!
È possibile aggiungere queste 2 righe alla fine del codice che dovrebbero soddisfare la sua richiesta :
SET STOP LOSS mystoploss
SET TARGET PROFIT range[1]*1.5
Ma in primo luogo, è necessario calcolare lo stop loss se la configurazione del segnale è SHORT o LONG:
Aggiungere questa linea dopo la nona :
mystoploss = close-low[1]
e questa dopo la quindicesima:
mystoploss = high[1]-close
Ciao
ho provato più soluzioni per cercare di ottenere quello che mi serve, ma non riesco.
ad ogni nuova candela modifica lo stop loss ed il take profit, inoltre aggiungendo le stringhe mystoploss il sistema mi dice che voglio inserire un ordine ad un livello negativo e quindi interrompe il sistema.
di seguito riporto dei codici (solo per provare come vengono piazzati gli ordini) e che non funzionano:
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
//candela ingresso -entry-
e = 1
//indicatori
indicator1 = ExponentialAverage[21](close)
BuyPrice = High[1]+2*Pipsize
SellPrice = Low[1]-2*Pipsize
Rem Classic Long
c1 = (close[0] > indicator1[0])
if c1 then
BUY 1 contracts AT BuyPrice STOP
stoploss = close-low[1]
endif
Rem Classic Short
c9 = (close[0] < indicator1[0])
if c9 then
sellshort 1 contracts at SellPrice STOP
stoploss = high[1]-close
endif
SET STOP LOSS stoploss
SET TARGET PROFIT range[1]*1.5
questo codice non fa quello che vorrei
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
//candela ingresso -entry-
e = 1
//indicatori
indicator1 = ExponentialAverage[21](close)
BuyPrice = High[1]+2*Pipsize
SellPrice = Low[1]-2*Pipsize
Rem Classic Long
c1 = (close[0] > indicator1[0])
if c1 then
stoploss = close-low[1]
BUY 1 contracts AT BuyPrice STOP
endif
Rem Classic Short
c9 = (close[0] < indicator1[0])
if c9 then
stoploss = high[1]-close
sellshort 1 contracts at SellPrice STOP
endif
SET STOP LOSS stoploss
SET TARGET PROFIT range[1]*1.5
questo codice non funziona e blocca subito proorder
—————————————————————————————————————————–
Grazie per l’aiuto!
GRAZIE!
Richiesta codici per i seguenti comandi:
posizioni LONG
– impostare ordine stop X pips sopra il massimo della candela di set-up;
– Stop loss X pips sotto il minimo della candela di set-up, che non si modifichi ad ogni nuova candela;
posizioni SHORT
– impostare ordine stop X pips sotto il minimo della candela di set-up;
– stop loss X pips sopra il massimo della candela di set-up, che non si modifichi ad ogni nuova candela;
– impostare take profit X volte lo stop loss;
– impostare trailing stop a tempo: se alla candela successiva quella di ingresso, si arriva a un livello, es. 0.5 volte il rischio, si sposta lo stop a pari + x pips e poi attivare un traling stop (so che è possibile eseguire tale operazione)
– se stop loss > di X annulla ordine
di seguito riporto parte del codice che ho provato ad usare (senza le condizioni)
CODICE PROREALTIME
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
//candela ingresso -entry-
e = 1
//indicatori
indicator1 = ExponentialAverage[50](close)
BuyPrice = High[e]+2*Pipsize
SellPrice = Low[e]-2*Pipsize
Tp= range[1]*1.5
CONDIZIONI LONG
if CONDIZIONI LONG then
BUY 1 contracts AT BuyPrice STOP
stoploss = close-low[1]
endif
CONDIZIONI SHORT
if CONDIZIONI SHORT then
sellshort 1 contracts at SellPrice STOP
once stoploss = high[1]-close
endif
SET STOP LOSS stoploss
SET TARGET PROFIT tp
Ciao Alessandro, sei riuscito a risovolvere?
Anche io ho provato ad impostare uno stop loss al minimo della candela di entrata in posizione long, per esempio quando avviene una rottura rilazista della resistenza del canale di donchian ed un take profit alla stessa distanza,
calcolando la distanza tra chisura (o apertura della candela successiva) e minimo:
set stop loss (close[0]-low[0])
set target profit (close[0]-low[0])
ma come dici tu, il programma sposta lo stop loss.
Non riesco a capire perchè non piazza correttamente stop loss e take profit a quella distanza, è così banale l’operazione!
Fammi sapere, grazie e buona giornata
Massimo
Ciao ho risolto,
stop loss e target profit vanno messe nelle condizioni nelle condizioni di buy e sell, prima di endif e non in fondo a tutti i codici.
Se vuoi impostare in un trade long lo stop loss sotto il minimo della candela di breakout definisci prima lo stop loss:
stoploss=close[0]-low[0]
ed il target profit alla distanza dall’entry che vuoi, per esempio:
targetprofit=(close[0]-low[0])*2
Nel tuo caso quindi:
if CONDIZIONI LONG then
BUY 1 contracts AT BuyPrice STOP
set stop loss stoploss
set target profit targetprofit
endif
Fai lo stesso per le condizioni short.
Ciao
Massimo
Ciao
finalmente sono riuscito ad accedere nuovamente all’account, si avevo già risolto, e ti avrei risposto, ma secondo me l’errore sta che se devi mettere lo stop sotto la candela di che ti ha dato il segnale il codice deve essere
stoploss=close[1]-low[1] e non 0, dato che 0 è la candela attualmente in formazione e 1 è la candela precedente che quindi ti da la dimensione dello stop loss.
Ciao Alessandro
Ciao Alessandro, si infatti, [0] è la candela corrente, siccome il trade viene aperto all’apertura della candela successiva, la candela di riferimento rimane quella [0].
Ho sperimentato con il backtest e funziona con [0], imposta lo stop loss ed il target profit sotto il minimo della candela che ha fatto da breakout.
Ho provato anche con la condizione di buy stop al prezzo high + 2 pips come nel tuo sistema sopra, ed effettivamente compra o vende al giusto prezzo sempre utilizzando [0]
BuyPrice = High[0]+2*Pipsize
SellPrice = Low[0]-2*Pipsize
Questo solo nel caso in cui la candela successiva supera il massimo della candela precedente, altrimenti l’ordine stop viene cancellato nelle candele successive.
Ho dei problemi però con il posizionamento di stop loss e take profit.
Sei riuscito a settarli in modo giusto?
Ciao
Massimo
Ciao Massimo,
si è corretto [0], ho provato anche io…ma mi rimane ancora il problema dello stop loss, che anche provando a mettere come range[0], lo stop loss viene cambiato ad ogni nuova candela.