SAMParticipant
Senior
Buongiorno a tutti, è possibile impostare il prezzo di entrata di una posizione come stop loss (una volta che la posizione è in profitto?)
sto testando la seguente idea:
acquista una posizione quando : nel time frame daily EMA>EMA [1] e nel time frame default: chiusura supera il supertrand.
Quello che non riesco a fare è inserire è il (takeprofit) e (il prezzo di acquisto magari+ 1 punto) come stop loss una volta che la posizione è in positivo
allego il codice che ho scritto, cosi mi potete indicare dove sbalgio…
Grazie mille Sam
defparam cumulateorders=false
once size =1
timeframe (daily, updateonclose)
mov=ExponentialAverage[20](close)
cond1= mov > mov[1]
timeframe (default)
a1= supertrend[3,10]
clong = close crosses over a1
c2= close crosses under a1
if cond1 then
if clong then
buy size shares at market
Tprofit= close + ((close-a1) *0.5)
chiudi= tradeprice
endif
endif
if longonmarket and c2 then
sell size shares at market
endif
sell at tprofit stop
sell at chiudi stop
Intanto alla riga 24 inserisci
If OnMarket Then
e dopo la 26 aggiungi ENDIF.
Alla riga 17 assegna a CHIUDI uno stop loss che non sia TRADEPRICE. Non perché sis vietato (si può fare) ma perché è troppo vicino al prezzo d’acquisto, essendo uguale, mentre IG richiede uns distanza minima diverday per ciascun strumento.
Alla riga 20 stabilisci di entrare in pareggio + 1 pip quando hai almeno N Pips di profitto, con:
If close > (tradeprice + 10 * pipsize) non Then
Chiudi = tradeprice + 1 * pipsize
Endif
io ho messo 10. Cambialo purché sia > del minimo richiesto.
SAMParticipant
Senior
Roberto intanto ti ringrazio moltissimo!!
provo a fare le modifiche da te suggerite. :))
Sam
SAMParticipant
Senior
Ciao Roberto, ho testato oggi il codice come tu hai scritto, ma non riesco a capire se le uscite che fà dalla posizione sono per raggiungimento del profit o dello stop… In ogni caso ci sono delle operazioni che non capisco… tipo questa della quale posto una immagine. Per esempio qui entra giustamente come da condizione, ma non capisco perché esce… secondo la mia idea questa operazione avrebbe dovuto raggiungere il profit…
Allego il codice che ho usato:
defparam cumulateorders=false
once size =1
timeframe (daily, updateonclose)
mov=ExponentialAverage[20](close)
cond1= mov > mov[1]
timeframe (default)
a1= supertrend[3,10]
clong = close crosses over a1
c2= close crosses under a1
if cond1 then
if clong then
buy size shares at market
Tprofit= close + ((close-a1) *0.5)
endif
endif
If close > (tradeprice + 1.50 * pipsize) then
Chiudi = (tradeprice + 1.50 * pipsize)
Endif
if longonmarket and c2 then
sell size shares at market
endif
if longonmarket then
sell at tprofit stop
sell at chiudi stop
endif
1.5 pips di guadagno è davvero poco, IG richiede una distanza minima dal prezzo corrente quando inserisci un ordine pendente, nel DAX credo sia almeno 6 pips, per cui se piazzi un ordine entro quell’intervallo verrà eseguito a mercato, non al prezzo da te indicato.
Inoltre quando alle righe 27 e 28 inserisci gli ordini di uscita, non puoi mettere STOP o LIMIT secondo le tue preferenza. Si mette STOP (sempre nel rispetto della distanza minima di cui sopra) quando il prezzo di uscita è peggiorativo rispetto a quello corrente, si mette LIMIT quando il prezzo di uscita è migliorativo.
Se non rispetti queste regole l’ordine viene esguito a mercato.
SAMParticipant
Senior
Grazie mille Roberto per la disponibilità!