metto il codice di un ts come esempio per capire come funziona il filtro trend
ho preso 2 medie ...una lenta ed una veloce
i due report ed equity con e senza il filtro trend
//__________________________Esempio incrocio 2 medie con filtro tendenza________________________// marzo 2018
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),metaieri;
Var: wmax,wmin,metaoggi,DMAX,DMIN;
Var: fflat,lg,sh,contalg,contash,contaflat;
Var: cambiatogiorno,prova,contagiornoinessere;
Var: meseprec,meseprec8,meseprec9;
Var: condizionelong,condizioneshort,contalong,contashort,numerogiornilong,numerogiornishort,contalungo,contacorto,entratalong,entratashort;
Var: primadiff,secondiff,terzadiff,totaldiff,totaldiff1;
Var: medialenta,mediaveloce,vp1,vp2;
medialenta = Mov(C,65,S);
mediaveloce = Mov(C,14,S);
/////////////////////////////////////////////////////////////////////////////////////////////////////
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
metaieri= miomin+(50*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
metaoggi=wmax-(wmax-wmin)*0.5;
endif;
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
//////////////////////////////////////////////////////////////////////////////////////////////
if getmonth<>meseprec9 then contagiornoinessere=0;endif;
meseprec9=getmonth;
cambiatogiorno = GetValues(days, 1, prova, prova, prova, prova);
if cambiatogiorno then contagiornoinessere=contagiornoinessere+1;endif;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if mediaveloce>medialenta then condizionelong=1;endif;
if mediaveloce<medialenta then condizionelong=0;contalong=0;endif;
if mediaveloce<medialenta then condizioneshort=1;endif;
if mediaveloce>medialenta then condizioneshort=0;contashort=0;endif;
if condizionelong=1 then contalong=contalong+1;endif;
numerogiornilong=op(contalong,34,divis);
if condizioneshort=1 then contashort=contashort+1;endif;
numerogiornishort=op(contashort,34,divis);
////////////////////////////////////////////////////////////////////////////////////////////////
//
if condizionelong=1 then entratalong=o;endif; //
if condizioneshort=1 then entratashort=o;endif; //
if Condizionelong=1 and contalungo>1 then entratalong=entratalong[1];endif; //
if CondizioneShort=1 and contacorto>1 then entratashort=entratashort[1];endif; // tenuta in memoria ultime 2 entrate ( short e long )
If Condizionelong=1 and contalungo=1 then DrawVline (NEWOGG, 0, getdate, green, 1, 0);endif; //
If Condizioneshort=1 and contacorto=1 then DrawVline (NEWOGG, 0, getdate, red, 1, 0);endif; //
//
////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//
if condizionelong=1 then contalungo=contalungo+1;endif; //
if condizioneshort=1 then contacorto=contacorto+1;endif; //
if condizionelong=1 then contacorto=0;endif; //
if condizioneshort=1 then contalungo=0;endif; //
plotchart(entratalong, 0 , green, solid, 1); //
plotchart(entratashort, 0 , red, solid, 1); //
DrawText(NEWOGG,0 , D,entratalong , "last price lg",entratalong, green, 12, 1+4,Alleft); //
DrawText(NEWOGG,0 , D,entratashort , "last price sh",entratashort , red, 12, 1+4,Alleft); //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
primadiff=abs(entratashort-entratalong);
secondiff=abs(entratashort-c);
totaldiff=abs(((primadiff+secondiff)/entratalong)*100);
terzadiff=abs(c-entratalong);
totaldiff1=abs(((primadiff+terzadiff)/entratashort)*100);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,2.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 15, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if condizionelong=1 { and totaldiff>5} then EnterLong(nextbar,atopen);endif;
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if condizioneshort=1 {and totaldiff>5} then EnterShort(nextbar,atopen);endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
vp1 = Createviewport(250);
plotchart(mediaveloce, vp1 , green, solid, 2);
plotchart(medialenta, vp1 , red, solid, 2);
vp2 = Createviewport(250);
Plotchart(totaldiff,VP2,GREEN,solid,2);
ho preso 2 medie ...una lenta ed una veloce
i due report ed equity con e senza il filtro trend
//__________________________Esempio incrocio 2 medie con filtro tendenza________________________// marzo 2018
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),metaieri;
Var: wmax,wmin,metaoggi,DMAX,DMIN;
Var: fflat,lg,sh,contalg,contash,contaflat;
Var: cambiatogiorno,prova,contagiornoinessere;
Var: meseprec,meseprec8,meseprec9;
Var: condizionelong,condizioneshort,contalong,contashort,numerogiornilong,numerogiornishort,contalungo,contacorto,entratalong,entratashort;
Var: primadiff,secondiff,terzadiff,totaldiff,totaldiff1;
Var: medialenta,mediaveloce,vp1,vp2;
medialenta = Mov(C,65,S);
mediaveloce = Mov(C,14,S);
/////////////////////////////////////////////////////////////////////////////////////////////////////
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
metaieri= miomin+(50*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
metaoggi=wmax-(wmax-wmin)*0.5;
endif;
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
//////////////////////////////////////////////////////////////////////////////////////////////
if getmonth<>meseprec9 then contagiornoinessere=0;endif;
meseprec9=getmonth;
cambiatogiorno = GetValues(days, 1, prova, prova, prova, prova);
if cambiatogiorno then contagiornoinessere=contagiornoinessere+1;endif;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if mediaveloce>medialenta then condizionelong=1;endif;
if mediaveloce<medialenta then condizionelong=0;contalong=0;endif;
if mediaveloce<medialenta then condizioneshort=1;endif;
if mediaveloce>medialenta then condizioneshort=0;contashort=0;endif;
if condizionelong=1 then contalong=contalong+1;endif;
numerogiornilong=op(contalong,34,divis);
if condizioneshort=1 then contashort=contashort+1;endif;
numerogiornishort=op(contashort,34,divis);
////////////////////////////////////////////////////////////////////////////////////////////////
//
if condizionelong=1 then entratalong=o;endif; //
if condizioneshort=1 then entratashort=o;endif; //
if Condizionelong=1 and contalungo>1 then entratalong=entratalong[1];endif; //
if CondizioneShort=1 and contacorto>1 then entratashort=entratashort[1];endif; // tenuta in memoria ultime 2 entrate ( short e long )
If Condizionelong=1 and contalungo=1 then DrawVline (NEWOGG, 0, getdate, green, 1, 0);endif; //
If Condizioneshort=1 and contacorto=1 then DrawVline (NEWOGG, 0, getdate, red, 1, 0);endif; //
//
////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//
if condizionelong=1 then contalungo=contalungo+1;endif; //
if condizioneshort=1 then contacorto=contacorto+1;endif; //
if condizionelong=1 then contacorto=0;endif; //
if condizioneshort=1 then contalungo=0;endif; //
plotchart(entratalong, 0 , green, solid, 1); //
plotchart(entratashort, 0 , red, solid, 1); //
DrawText(NEWOGG,0 , D,entratalong , "last price lg",entratalong, green, 12, 1+4,Alleft); //
DrawText(NEWOGG,0 , D,entratashort , "last price sh",entratashort , red, 12, 1+4,Alleft); //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
primadiff=abs(entratashort-entratalong);
secondiff=abs(entratashort-c);
totaldiff=abs(((primadiff+secondiff)/entratalong)*100);
terzadiff=abs(c-entratalong);
totaldiff1=abs(((primadiff+terzadiff)/entratashort)*100);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,2.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 15, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if condizionelong=1 { and totaldiff>5} then EnterLong(nextbar,atopen);endif;
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if condizioneshort=1 {and totaldiff>5} then EnterShort(nextbar,atopen);endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
vp1 = Createviewport(250);
plotchart(mediaveloce, vp1 , green, solid, 2);
plotchart(medialenta, vp1 , red, solid, 2);
vp2 = Createviewport(250);
Plotchart(totaldiff,VP2,GREEN,solid,2);
No hay comentarios:
Publicar un comentario