Nel codice modificato ci sono alcuni errori concettuali ed alcuni di sintassi. Il cross di medie mobili in genere consiglio di codificarlo come segue:
Var: Valstop, // stop loss iniziale,
pv, // positionvalue
media1,
media2;
// Calcolo delle due Media mobili
media1 = Mov(C, 10, S); // Media piu' veloce
media2 = Mov(C, 20, S); // Media piu' lenta
pv = positionvalue;
SECTION_ENTERLONG:
If Crossover(media1, media2) Then
Enterlong(nextbar, atopen);// Ingresso long
valstop = AddPerc(pv, -3); // Stop-Loss:il prezzo d'ingresso meno il 3%
Endif;
END_SECTION
Utilizzando il simbolo di > anzichè il crossover potrebbe capitare di avere continui rientri nella stessa direzione se veniamo stoppati e la media veloce è ancora sopra alla lenta. In questo caso funzionerebbe comunque discretamente perchè la condizione d'uscita prevede che la media veloce sia scesa sotto alla lenta (in alternativa al 3% di perdita).
Si ricordi che non si possono inserire degli operatori relazionali, quali and od or, dopo un THEN. L'editor le segnerà sempre errore.
Lo stop ad inseguire si potrebbe codificare in modo abbastanza grezzo ma efficace nel seguente modo, ipotizzando di avere chiusure crescenti lo stop viene riacalcolato sull'ultima chiusura:
If PositionDir = 1 and C > C[1] and C > Pv Then
valstop = addPerc(C, -3);
Endif;
Recentemente però sono state apportate modifiche alla sintassi per cui io le consiglio di utilizzare le nuove funzioni perle uscite che sono più precise ed affidabili (ed anche intuitive)
.
Per lo stop loss la funzione è INSTALLSTOPLOSS(INPERC, 3)
(calcola uno stop loss del 3% anche a barra aperta senza necessariamente dover aspettare la chiusura della barra per dare il segnale d'uscita)
Per il trailing stop, con cui lei potrebbe realizzare un trailing molto preciso calcolando il guadagno della posizione aperta e regolando il trailing di conseguenza, può usare INSTALLTRAILINGPROFIT(INPERC, 3, 1.5),
(se la sua posizione arriva ad un guadagno pari o maggiore del 3% chiude la posizione se il mercato ritraccia dell'1,5%). Stop, trailing e target possono essere calcolati anche in valore economico e in punti. In questo modo potrebbe utilizzare una serie di condizioni ad inseguimento per cui se il guadagno è tot, esce su un ritracciamento di x, se il guadagno diventa tot+1 esce su un ritracciamento y
Cordiali saluti,
em