stop loss sotto minimo barra di ingresso

mauri32

Nuovo Utente
Registrato
15/10/02
Messaggi
3
Punti reazioni
0
Volevo solo sapere come faccio a inserire uno stop loss alla violazione del minimo della barra di ingresso...ho provato in alcuni modi ma mi da sempre errore. Grazie
 
Scritto da mauri32
Volevo solo sapere come faccio a inserire uno stop loss alla violazione del minimo della barra di ingresso...ho provato in alcuni modi ma mi da sempre errore. Grazie

Può già vedere la soluzione a questo problema negli esempi distribuiti con il Visual Trader o fra quelli descritti in questo forum: si tratta semplicimente di utilizzare una variabile per "salvarsi" il valore a cui uscire in stop loss quando si entra nel mercato, per poi utilizzare tale valore come condizione di uscita.

Esempio:
Codice:
Var: stoploss(0);

SECTION_ENTERLONG:
   if ([devo comprare])
      stoploss = L;     // minimo della barra di ingresso
       EnterLong(Bar, AtClose);
   endif;
END_SECTION

SECTION_ENTERSHORT:
    ExitLong(Bar, stoploss, LIMIT);
END_SECTION

Cordiali saluti,
Staff TRaderlink
 
Ho provato inserendo tali parametri ma mi da sempre qualche tipo di errore. Questo è il TS per esteso:

Var: media(0), // Valore delle media mobile
stoploss(0);

// Media mobile
media = Mov(C, 30, S);


SECTION_ENTERLONG:
// Acquistiamo se il titolo scende sotto la media mobile del 5%
if C < AddPerc(media, -5) then
Stoploss = L; // Stop al livello del minimo del pattern
EnterLong(NextBar, AtOpen); // COMPRA
endif;
END_SECTION


SECTION_EXITLONG:
// Chiudiamo se il titolo scende sotto la media mobile
if C >= AddPerc(media, -0.5) then
ExitLong(NextBar, AtOpen); // Liquida posizione long
endif;
// Chiudiamo la posizione nel caso di violazione del livello di stop
if C < stoploss Then
ExitLong(Bar, stoploss. LIMIT); // Vendiamo al break del livello di stop
endif;
END_SECTION

SECTION_ENTERSHORT:
// Vendiamo SHORT se il titolo sale sopra la media mobile del 5%
if C > AddPerc(media, 5) then
stoploss = H;
EnterShort(NextBar, AtOpen); // COMPRA
endif;

END_SECTION


SECTION_EXITSHORT:
// Chiudiamo lo SHORT se il titolo riscende fino a 0,5% sopra la media mobile
if C <= AddPerc(media, 0.5) then
ExitShort(NextBar, AtOpen); // Liquida posizione short
endif;
if C > stoploss Then
ExitLong(Bar, stoploss, LIMIT); // Vendiamo al break del livello di stop
endif;

END_SECTION


Se poteste vedere voi cos'è che non funziona. Inoltre come faccio a inserire il comando di vendita al superamento del 1% del livello di stoploss? Grazie infinite!
 
Scritto da mauri32
SECTION_EXITLONG:
// Chiudiamo se il titolo scende sotto la media mobile
if C >= AddPerc(media, -0.5) then
ExitLong(NextBar, AtOpen); // Liquida posizione long
endif;
// Chiudiamo la posizione nel caso di violazione del livello di stop
if C < stoploss Then
ExitLong(Bar, stoploss. LIMIT); // Vendiamo al break del livello di stop
endif;
END_SECTION

Il problema è nella riga "ExitLong(Bar, stoploss. LIMIT)". Per separare fra loro i parametri passati ad una funzione bisogna utilizzare la virgola (,): il TS da errore in caso contrario.
La riga esatta è dunque: "ExitLong(Bar, stoploss, LIMIT)". Con questa semplice correzione il TS compila senza problemi.


Scritto da mauri32
Inoltre come faccio a inserire il comando di vendita al superamento del 1% del livello di stoploss? Grazie infinite!

Utilizzando la funzione AddPerc, che aggiunge una certa percentuale ad un valore.
Codice:
if (C < AddPerc(stoploss, 1)) Then
   ExitLong(Bar, AddPerc(stoploss, 1), LIMIT);
endif;
Meglio ancora sarebbe utilizzare AddPerc direttamente quando si assegna un valore a stoploss.

Nota: nel Ts postato c'è un piccolo problema: le condizioni di uscita dal mercato sono inserite nei blocchi SECTION_ENTERLONG e SECTION_ENTERSHORT. Dovrebbero essere scritte in SECTION_EXITLONG e SECTION_EXITSHORT.
 
Indietro