Vorrei un aiuto per il codice che allego, entra short a mercato ed esce subito con “errore , piazza un ordine stop al disotto del limite stabilito dal broker” . Credo che l’errore sia nella riga 12, ma io non so come modificarlo.
Grazie
Può essere la Linea12, ma perché crea uno Stop Loss di oltre 30000 punti, che è sicuramente eccessivo!
Forse intendevi la differenza tra i due prezzi (la somma, sul DAX, fa circa 31000 o 32000):
SET STOP LOSS abs(low[1]-highest[2](high))+p*pointsize
se aggiungi queste due righe per il backtest, vedrai le differenze tra il + ed il -:
graph abs(low[1]+highest[2](high))+p*pointsize //+
graph abs(low[1]-highest[2](high))+p*pointsize //-
potrebbe anche essere la riga 11, se entrataS non è sufficientemente distante dal prezzo corrente, prova a scriverla così, con 10 punti di distanza che puoi variare come vuoi:
sellShort 1 CONTRACTS AT min(close - 10*pointsize,entrataS) stop //entrata con almeno 10 punti di distanza
Nel baktest si evidenzia solo due valori negativi, ho anche provato a correggere la riga 11 , ma non succede nulla. Ti allego la versione long , che funziona, così puoi vedere se le differenze sono giuste.
Grazie
Funziona, me è opportuno mettere sempre ABS() alla sottrazione, non puoi sapere se un valore è negativo o meno. Scrivila come ho scritto io.
Scusami, ma non ho capito che cosa correggere. Ripeto la versione long funziona quella short no.
Grazie
Sopra c’è una riga 2 con GRAPH, devi usare ABS() quando usi una sottrazione:
abs(low[1]-highest[2](high))+p*pointsize
nella parte Long funziona… quasi sempre. Non è certo che la differenza non sia negativa.
usa SEMPRE ABS(), che sia Long o Short.
Qui sotto come è scritto nel long
SET STOP LOSS (high[1]-lowest[2](low))+p*pointsize //stoploss: il il MAX candela[1] – il minimo del pattern + 4 punti
Questo invece è come scritto nello short
SET STOP LOSS abs(low[1]+highest[2](high))+p*pointsize //stoploss: il il MIN candela[1] – il massimo del pattern + 4 punti
Dove devo mettere abs? Ed giusto che nello short vi sia una somma?
Grazie
Devi metterlo come l’ho messo io, (high[1] devi sostituirlo con;
abs(high[1]
esattamente come nello short, dove c’è (LOW[1].
Ma è la versione short che non funziona.
Grazie
Non fuinziona nemmeno con ABS()?
Quale errore continua a darti?
La versione short ha sempre avuto abs, ma è la versione che non funziona, l’errore è sempre lo stesso.
Grazie
Hai messo “-” al posto di “+” nell’espressione dove c’è ABS()?
No , quindi devo mettere il negativo?