Visual Trader - Stop loss (1 Viewer)

maggioser

Nuovo forumer
Buongiorno, ho questo problema con la programmazione di VT. Non riesco a implementare il comando "se hai raggiunto il guadagno dell'1% sposta lo stop loss in pari".
Ho provato così ma non funge:

//Long
.......
ingresso=c;
sicurezza1=ingresso*1.01;
pari=ingresso;
installstoploss(inperc,valstop,"stop");
if c[0]>sicurezza1 then
removestoploss;
installstoploss(inperc,pari,"stop");


//Short
......
ingresso=c;
sicurezza2=ingresso*0.99;
pari=ingresso;
installstoploss(inperc,valstop,"stop");
if c[0]<sicurezza2 then
removestoploss;
installstoploss(inperc,pari,"stop");
endif;


Nessuno ha qualche idea?
Grazie
 

robom1

Forumer storico
a mio avviso per verificare il problema devi plottare le variabili; potrebbe esistere anche la possibilità che non vengano attivati il removestoploss e l'installstoploss. Una volta fatto si potrebbe provare con il modify e alla fine sentire anche con traderlink.
 

Ronzy2001

Forumer storico
Buongiorno, ho questo problema con la programmazione di VT. Non riesco a implementare il comando "se hai raggiunto il guadagno dell'1% sposta lo stop loss in pari".
Ho provato così ma non funge:

//Long
.......
ingresso=c;
sicurezza1=ingresso*1.01;
pari=ingresso;
installstoploss(inperc,valstop,"stop");
if c[0]>sicurezza1 then
removestoploss;
installstoploss(inperc,pari,"stop");


//Short
......
ingresso=c;
sicurezza2=ingresso*0.99;
pari=ingresso;
installstoploss(inperc,valstop,"stop");
if c[0]<sicurezza2 then
removestoploss;
installstoploss(inperc,pari,"stop");
endif;


Nessuno ha qualche idea?
Grazie

Per spostare lo stop in parti devi mettere:

installstoploss(inval,positionvalue);

ciao
 

Damien

Nessuno è mai al sicuro
Prova cosi:

ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso then
installstoploss(inval,ingresso,"stop1");
endif;
if positiondir=-1 and c*1.01<ingresso then
installstoploss(inval,ingresso,"stop2");
endif;

Ciao, Damien.
 

maggioser

Nuovo forumer
Per spostare lo stop in parti devi mettere:

installstoploss(inval,positionvalue);

ciao

Grazie, ma così ancora non mi funziona poichè in alcuni casi entra ed esce in stoploss sulla stessa barra (5 min).
Adesso provo anche con il secondo suggerimento.

Con questa sintassi sembra funzionare correttamente
// SPOSTA STOPLOSS LONG
ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso then
removestoploss;
installstoploss(inval,ingresso,"stop1");
endif;

Ora per creare un traling profit manualmente (aggiungendo altre condizioni)
che sintassi dovrei usare visto che con questa mi considera solo la prima condizione?
// SPOSTA STOPLOSS LONG AL CRESCERE DEL GAIN
ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso then
removestoploss;
installstoploss(inval,ingresso,"stop1");
endif;
if positiondir=1 and c>1.02*ingresso then
removestoploss;
installstoploss(inval,ingresso*1.01,"stop1");
endif;
.....
e così via...

Grazie
 
Ultima modifica:

Hell75

Nuovo forumer
.........
e così via...

Grazie

Hai provato così?

ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso and c<1.02*ingresso then
removestoploss; installstoploss(inval,ingresso,"stop1");
endif;
if positiondir=1 and c>1.02*ingresso and c<1.03*ingresso then
removestoploss; installstoploss(inval,ingresso*1.01,"stop2");
endif;

mettendo "c>1.01*ingresso and c<1.02*ingresso " vincoli l'esecuzione nel valore compreso tra i 2
 

maggioser

Nuovo forumer
Hai provato così?

ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso and c<1.02*ingresso then
removestoploss; installstoploss(inval,ingresso,"stop1");
endif;
if positiondir=1 and c>1.02*ingresso and c<1.03*ingresso then
removestoploss; installstoploss(inval,ingresso*1.01,"stop2");
endif;

mettendo "c>1.01*ingresso and c<1.02*ingresso " vincoli l'esecuzione nel valore compreso tra i 2

Ti ringrazio ma anche così mi considera solo la prima condizione e si "dimentica" delle altre. Per esempio dopo una operazione in guadagno del 3.06% mi esce in pari considerando solo la prima condizione.

Qui sotto il listato:
ingresso=positionvalue;
if positiondir=1 and c>1.01*ingresso and c<1.02*ingresso then
removestoploss; installstoploss(inval,ingresso,"stop1");
endif;
if positiondir=1 and c>1.02*ingresso and c<1.03*ingresso then
removestoploss; installstoploss(inval,ingresso*1.01,"stop2");
endif;
if positiondir=1 and c>1.03*ingresso and c<1.04*ingresso then
removestoploss; installstoploss(inval,ingresso*1.02,"stop3");
endif;

CIAO
 

robom1

Forumer storico
Non so ma invece di fare remove e install (stoploss) fai solo il modify dello stop loss; inoltre se non l'hai già fatto scarica la 5.1.
 

maggioser

Nuovo forumer
Non so ma invece di fare remove e install (stoploss) fai solo il modify dello stop loss; inoltre se non l'hai già fatto scarica la 5.1.

Ho già installato la 5.1 e utilizzato il comando modify senza raggiungere il risultato sperato. Ho provato comunque l'instaltrailingprofit ma i risultati non sono soddisfacenti (quelli sperati!).
Grazie a tutti per l'impegno, vedrò in futuro cosa altro introdurre per migliorare il mio ts.
Ciao
 

robom1

Forumer storico
Ciao, a me sembra strano che non funzioni; prova ad inserire il valore ingresso, ingresso*1,01, ingresso*1,02) con tre variabili che dovranno essere loro inserite dentro l'installstoploss, tipo esempio:

ingresso=positionvalue;
stopp1 = ingresso;
stopp2 = ingresso*1.01;
stopp3 = ingresso*1.02;

if positiondir=1 and c> (1.01*ingresso) and c<= (1.02*ingresso) then
removestoploss; installstoploss(inval,stopp1,"stop1");
endif;
if positiondir=1 and c> (1.02*ingresso) and c<= (1.03*ingresso) then
removestoploss; installstoploss(inval,stopp2,"stop2");
endif;
if positiondir=1 and c> (1.03*ingresso) and c<= (1.04*ingresso) then
removestoploss; installstoploss(inval,stopp3,"stop3");
endif;





delle volte avevo verificato che se si inseriva una variabile invece del calcolo in talune funzioni funzionava.
 

Users who are viewing this thread

Alto