Raccolta di T.S. per Visual Trader

a questo punto lo scrivo anche qui...vale anche per visualtrader

Ciao a tutti .
Esiste la possibilità (linguaggio multichart/tradestation ) di dire al trading system, onde evitare gap contro, di uscire alla fine della seduta giornaliera(esempio ore 20.00) e poi in apertura del giorno dopo di riprendere la stessa posizione del giorno prima :
A)in caso di long solo se il prezzo di apertura è = o inferiore a quello di chiusura delle 20 del giorno prima
B)in caso di short solo se il prezzo di apertura è = o superiore a quello di chiusura delle 20 del giorno prima

Grazie a chi vorrà rispondermi
 
ciao Luca ..in uno dei video dimostrativi di Visual Trader un utente spiegava di un sistema/gestore che usava per "parcheggiare" i sistemi con l'equity negativa per poi riprenderli quando il tutto migliorava...non so se questo sistema si può recuperare da qualche parte
personalmente per avere nello stesso ts informazioni che mi aiutino a "parcheggiarlo" conteggio per ogni operazione la percentuale prodotta sia positiva che negativa e quando questa va sotto di una certa soglia( osservata e calcolata sullo storico) la utilizzo per adattare lo stoploss oppure nei casi estremi appunto per uscire completamente dal mercato

Buongiorno, anch'io sto cercando di capire con VT come "parcheggiare" un TS in base alla sua equity line.
Semplice esempio, mi calcolo l'equity line (come fare?) ci applico una media e il ts va in stand-bye quando la curva equity è sotto la sua media mobile per poi riattivarsi quando torna sopra la sua media.
Un grazie a eventuali contributi.
 
Buongiorno, anch'io sto cercando di capire con VT come "parcheggiare" un TS in base alla sua equity line.
Semplice esempio, mi calcolo l'equity line (come fare?) ci applico una media e il ts va in stand-bye quando la curva equity è sotto la sua media mobile per poi riattivarsi quando torna sopra la sua media.
Un grazie a eventuali contributi.

ciao Rocco..ti metto un ts di esempio che plotta l'equity e un filtro a parte...ho messo uno Wilder come filtro ma tu metti quello che preferisci
Codice:
//_____Rocco78____4 marzo 2020____//

var: media1,media2,idlastop,nuovaequity,filtroequity,indzona1;
var: newequity,newequitylong,newequityshort,meseprec;

media1 = MOV(C, 10, E);
media2 = MOV(C, 30, E);

if media1>media2 then enterlong(nextbar,atopen);endif;
if media1<media2 then entershort(nextbar,atopen);endif;


///////////////////////////////////////////////////////////////////////////////////

if IdLastOpClosed > idlastop then
   newequity = newequity + LastTradeClosedPerc;
endif;
idlastop = IdLastOpClosed;
////////////////////////equity long e short/////////////////////////////////////

if newequity<>newequity[1] and (LastOpClosed = tsEnterLong) then
newequitylong = newequitylong + LastTradeClosedPerc;
endif;

if newequity<>newequity[1] and (LastOpClosed = tsEntershort) then
newequityshort = newequityshort + LastTradeClosedPerc;
endif;
if getMonth <> meseprec then
   newequitylong = 0;
endif;
if getMonth <> meseprec then
   newequityshort = 0;
endif;
meseprec=getmonth;
filtroequity= WILDER(newequity, 750);

indzona1=Createviewport(300);
PlotChart(newequity,indzona1,red,solid,2);
PlotChart(filtroequity,indzona1,yellow,solid,2);
 
Ciao a tutti .
Esiste la possibilità (linguaggio multichart/tradestation ) di dire al trading system, onde evitare gap contro, di uscire alla fine della seduta giornaliera(esempio ore 20.00) e poi in apertura del giorno dopo di riprendere la stessa posizione del giorno prima :
A)in caso di long solo se il prezzo di apertura è = o inferiore a quello di chiusura delle 20 del giorno prima
B)in caso di short solo se il prezzo di apertura è = o superiore a quello di chiusura delle 20 del giorno prima

Grazie a chi vorrà rispondermi

ciao..VT lo permette perchè riporta l'ultimo trade eseguito e il prezzo di uscita ma non conosco multichart/tradestation
 
ciao Picchio
allora dicevi che volevi uscire ad una certa ora ieri per rientrare oggi nella stessa direzione per evitare eventuali gap

con visualtrader si può dire
se voglio uscire alle 1700 il prezzo che mi serve da tenere in memoria è quello dell'apertura della candela delle 17.00

if t=1700 then prezzochemiserve=o;endif;

e poi il giorno dopo con la funzione Lastopenclosed mi ritorna che tipo di operazione era la ultima fatta..Lastopenclose=1...Long
Lastopenclosed=3..short
percio ieri se eri long e lo hai chiuso oggi gli dici di rientrare long solo se il prezzo è uguale o inferiore al prezzo tenuto in memoria

if c<= prezzochemiserve and Lastopenclose=1 then enterlong(nextbar,atopen);endif;
( spero di aver capito bene cosa intendevi ;) )
 
ciao Picchio
allora dicevi che volevi uscire ad una certa ora ieri per rientrare oggi nella stessa direzione per evitare eventuali gap

con visualtrader si può dire
se voglio uscire alle 1700 il prezzo che mi serve da tenere in memoria è quello dell'apertura della candela delle 17.00

if t=1700 then prezzochemiserve=o;endif;

e poi il giorno dopo con la funzione Lastopenclosed mi ritorna che tipo di operazione era la ultima fatta..Lastopenclose=1...Long
Lastopenclosed=3..short
percio ieri se eri long e lo hai chiuso oggi gli dici di rientrare long solo se il prezzo è uguale o inferiore al prezzo tenuto in memoria

if c<= prezzochemiserve and Lastopenclose=1 then enterlong(nextbar,atopen);endif;
( spero di aver capito bene cosa intendevi ;) )

Si perfetto, solo una domanda per lo short hai scritto 3 ma non sarebbe - 1 ( +1 per il long e - 1 per lo short?)
Inoltre questa stringa va messa su ogni singolo ingresso (long/short) o alla fine del listato?
Grazie mille!!
 
Ultima modifica:
Si perfetto, solo una domanda per lo short hai scritto 3 ma non sarebbe - 1 ( +1 per il long e - 1 per lo short?)
Inoltre questa stringa va messa su ogni singolo ingresso (long/short) o alla fine del listato?
Grazie mille!!

devi mettere 3 per lo short..lo uso io in un ts e funziona...-1 è per la funzione positiondir
"Inoltre questa stringa va messa su ogni singolo ingresso (long/short) o alla fine del listato?"...questa domanda non la ho capito..a che stringa ti riferisci?;)
 
devi mettere 3 per lo short..lo uso io in un ts e funziona...-1 è per la funzione positiondir
"Inoltre questa stringa va messa su ogni singolo ingresso (long/short) o alla fine del listato?"...questa domanda non la ho capito..a che stringa ti riferisci?;)

if c<= prezzochemiserve and Lastopenclose=1 then enterlong(nextbar,atopen);endif;

Questa stringa dove va messa all'inzio del Ts , alla fine o su ogni condizione di ingresso ?
 
if c<= prezzochemiserve and Lastopenclose=1 then enterlong(nextbar,atopen);endif;

Questa stringa dove va messa all'inzio del Ts , alla fine o su ogni condizione di ingresso ?

la metti dopo la stringa enterlong e quella riferita allo sh la metti dopo la stringa entershort
 
la metti dopo la stringa enterlong e quella riferita allo sh la metti dopo la stringa entershort

Grazie mille , ultima cosa, se il sistema esce alle 20.00 come faccio a dire al sistema che deve entrare dopo le 0900 del giorno successivo ?
Se uso T>900 il ts rientra lo stesso giorno che esce (alle 2100 in quanto 2100 maggiore di 0900) In sostanza devo dire al sistema che deve entrare dopo le 0900 ma del giorno dopo
 
non uso visual trader ma la base logica del linguaggio è la stessa di altri quindi se vuoi dire di iniziare alle 9 del giorno dopo basta che metti un controllo in qui dici:
if Day[0] <> Day[1] then
begin
if T>900 then
blablabla
end
end
 
Grazie mille , ultima cosa, se il sistema esce alle 20.00 come faccio a dire al sistema che deve entrare dopo le 0900 del giorno successivo ?
Se uso T>900 il ts rientra lo stesso giorno che esce (alle 2100 in quanto 2100 maggiore di 0900) In sostanza devo dire al sistema che deve entrare dopo le 0900 ma del giorno dopo

per come lavora Visualtrader non è possibile entrare alle 0900 perchè ha bisogno che si concluda una candela del nuovo giorno per confermare i dati
poi perchè non rientri lo stesso giorno ...se tu esci alle 2000..basta che gli dici di non fare operazioni dopo...and t<2000 ...in ogni stringa di enter
se sei uscito alle 2000 di ieri ad esempio ..oggi...se le condizioni sono a favore..se usi il frame a 15 minuti..alle 0915 il sistema ti dira di rientrare

faccio alcuni lavoretti in casa e poi butto giù tutto il listato del ts come esempio
 
Ultima modifica:
x Picchio
ho inserito una mm veloce ed una lenta come input e come orari alle 1700 perchè lo ho applicato a Fiat..tu naturalmente metti orari che ti son comodi
praticamente..ad esempio nel long..ci sono 2 entrate ed una uscita..l'uscita è quella determinata dall'orario
le entrate sono..enterlong 1=la base con incrocio delle mm e si attiva solo dopo le 0930 perchè se lo facesse prima darebbe fastidio al enterlong 2 che è quello che prosegue il segnale del giorno precedente e si attiva alle 0915

Codice:
//__________________TS Notti Tranquille___Picchio63__marzo 2020_______________//

Var: mediaveloce,medialenta,prezzochemiserve,indzona1;


if t=1700 then prezzochemiserve=o;endif;

mediaveloce = MOV(C, 10, S);
medialenta = MOV(C, 50, S);
PlotChart(mediaveloce,0,red,solid,2);
PlotChart(medialenta,0,green,solid,2);

//______________Enter ed Exit Long____________//

if t>0900 and t<1700 and mediaveloce>medialenta  then enterlong( nextbar,atopen,STOP, 0,"Enter Lg 1");endif;
if positiondir=1 and t>1630 then exitlong(nextbar,atopen);endif;
if positiondir=0 and Lastopclosed=1 and t<0930 and c<= prezzochemiserve  then enterlong( nextbar,atopen,STOP, 0,"Enter Lg 2");endif;


//______________Enter ed Exit Short__________//

if t>0900 and t<1700 and mediaveloce<medialenta then entershort(nextbar,atopen,STOP, 0,"Enter Sh 1" );endif;
if positiondir=-1 and t>1630 then exitshort(nextbar,atopen);endif;
if positiondir=0 and Lastopclosed=3 and t<0930 and c>= prezzochemiserve then entershort(nextbar,atopen,STOP, 0,"Enter Sh 2" );endif;

indzona1 = Createviewport(250);
Plotchart(prezzochemiserve,indzona1,green,solid,2);
DrawText(1,indzona1,D,prezzochemiserve , "prezzochemiserve",prezzochemiserve ,aqua, 10, 1+4,Alleft);
 

Allegati

  • ScreenShot088.gif
    ScreenShot088.gif
    39,7 KB · Visite: 8
non uso visual trader ma la base logica del linguaggio è la stessa di altri quindi se vuoi dire di iniziare alle 9 del giorno dopo basta che metti un controllo in qui dici:
if Day[0] <> Day[1] then
begin
if T>900 then
blablabla
end
end

Grazie mille
 
x Picchio
ho inserito una mm veloce ed una lenta come input e come orari alle 1700 perchè lo ho applicato a Fiat..tu naturalmente metti orari che ti son comodi
praticamente..ad esempio nel long..ci sono 2 entrate ed una uscita..l'uscita è quella determinata dall'orario
le entrate sono..enterlong 1=la base con incrocio delle mm e si attiva solo dopo le 0930 perchè se lo facesse prima darebbe fastidio al enterlong 2 che è quello che prosegue il segnale del giorno precedente e si attiva alle 0915

Codice:
//__________________TS Notti Tranquille___Picchio63__marzo 2020_______________//

Var: mediaveloce,medialenta,prezzochemiserve,indzona1;


if t=1700 then prezzochemiserve=o;endif;

mediaveloce = MOV(C, 10, S);
medialenta = MOV(C, 50, S);
PlotChart(mediaveloce,0,red,solid,2);
PlotChart(medialenta,0,green,solid,2);

//______________Enter ed Exit Long____________//

if t>0900 and t<1700 and mediaveloce>medialenta  then enterlong( nextbar,atopen,STOP, 0,"Enter Lg 1");endif;
if positiondir=1 and t>1630 then exitlong(nextbar,atopen);endif;
if positiondir=0 and Lastopclosed=1 and t<0930 and c<= prezzochemiserve  then enterlong( nextbar,atopen,STOP, 0,"Enter Lg 2");endif;


//______________Enter ed Exit Short__________//

if t>0900 and t<1700 and mediaveloce<medialenta then entershort(nextbar,atopen,STOP, 0,"Enter Sh 1" );endif;
if positiondir=-1 and t>1630 then exitshort(nextbar,atopen);endif;
if positiondir=0 and Lastopclosed=3 and t<0930 and c>= prezzochemiserve then entershort(nextbar,atopen,STOP, 0,"Enter Sh 2" );endif;

indzona1 = Createviewport(250);
Plotchart(prezzochemiserve,indzona1,green,solid,2);
DrawText(1,indzona1,D,prezzochemiserve , "prezzochemiserve",prezzochemiserve ,aqua, 10, 1+4,Alleft);

Grazie Xavier gentilissimo, non appena posso lo provo. Sono proprio curioso di vedere se migliora o peggiora il sistema
 
Ultima modifica:
Grazie Xavier gentilissimo, non appena posso lo provo. Sono proprio curioso di vedere se migliora o peggiora il sistema

Grazie anche da parte mia che ero interessato a questo argomento. Mi pare di capire però che questo codice può essere utilizzato solo con grafici con timeframe diversi da quelli giornalieri in quanto questi ultimi non hanno un controllo di tipo orario.

Avevo contattato l'assistenza traderlink in merito a questo argomento e mi avevano informato che nel trading automatico è consigliato utilizzare il comando atopen anziché di atclose perchè di fatto il sistema riconosce la chiusura solamente quando viene creata una nuova barra e dunque di fatto è un comando eseguito sempre quando viene aperta la nuova barra.

Peccato che poi cambiando il codice del TS i risultati degradano per la presenza dei vari gap presenti tra la chiusura del giorno prima e l'apertura del giorno dopo.
Per questo avevo pensato di inserire un comando che chiuda verso le 17.00 la posizione per il grafico daily ma anche questo mi pare di capire non si posso fare....
 
si...atopen e non atclose...perchè ad esempio oggi che più o meno tutti i titoli hanno aperto in gap down se la stringa fosse atclose i sistemi in apertura alle 0900 avrebbero piazzato il close di eventuali operazioni aperte sulla chiusura di ieri
i backtest avrebbero conteggiato una operazione positiva ma che nella realta dei fatti era impossibile da fare
 
si...atopen e non atclose...perchè ad esempio oggi che più o meno tutti i titoli hanno aperto in gap down se la stringa fosse atclose i sistemi in apertura alle 0900 avrebbero piazzato il close di eventuali operazioni aperte sulla chiusura di ieri
i backtest avrebbero conteggiato una operazione positiva ma che nella realta dei fatti era impossibile da fare

Non so se sia un problema o meno, ma ho notato in realtime che inserendo uno stop fisso in tick (esempio 120 sul fib) Vt5 è uscito non appena è scattato lo stop(corretto quindi) mentre Vt cloud è uscito allo stesso prezzo, ma ha aspettato la chiusura della barra (oraria in questo caso , visto che il ts è su tf orario) quando il prezzo reale era completamente diverso In sostanza entrambi hanno dato l'uscita a 20850 ma VT cloud l'ha data in ritardo (in chiusura di barra oraria) quando il fib era risalito a 21940
 
Indietro