questo è il codice
nelle stringhe long e short sono attive solo 4 condizioni
poi come uscite la solita collegata al 50% del giorno precedente ed altre due...una migliora pochissimo ma non da fastidio..l'altra più importante( fa rimanere meno a mercato ed aumenta la resa ) che scatta solo in determinate situazioni ma dopo 34 candele col ts attivo
//__________________________________________Tecnica 50%________________________// 18 luglio 2017
Var: miomax5g,miomin5g,miomax11g,miomin11g,miomax22g,miomin22g,rangemensile5g,rangemensile11g,rangemensile22g;
Var: input1,input2;
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvmed;
Var: wmax,wmin,wmed,DMAX,DMIN,vp1;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,contanuovimassimi,contanuoviminimi,rapportosegnalepositivodown;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),condizioneA,condizioneB,ivp;
Var: condizionenolong,condizionenoshort;
Var: contalongsi,contalongno,contashortsi,contashortno,vp2,vp3;
Var: miomax5g;
miomax5g = HHV (H, 187);
Var: miomin5g;
miomin5g = LLV (L, 187);
Var: miomax11g;
miomax11g = HHV (H, 374);
Var: miomin11g;
miomin11g = LLV (L, 374);
Var: miomax22g;
miomax22g = HHV (H, 748);
Var: miomin22g;
miomin22g = LLV (L, 748);
rangemensile5g=(((miomax5g-miomin5g)/miomin5g)*100);
rangemensile11g=(((miomax11g-miomin11g)/miomin11g)*100);
rangemensile22g=(((miomax22g-miomin22g)/miomin22g)*100);
if rangemensile5g<10 and miomax5g>miomax5g[136] and miomin5g=miomin5g[136] then condizionenoshort=1;else condizionenoshort=0;endif;
if rangemensile5g<10 and miomax5g=miomax5g[136] and miomin5g<miomin5g[136] then condizionenolong=1;else condizionenolong=0;endif;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvmed= 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]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
PlotChart(WMED,0, gray, dot, 1);
Plotchart(dvmed,0,blue,solid,1);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___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 positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
/////////////////////////////////// Gain /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
if positiondir=1 and gain>0 then contalongsi=contalongsi+1;endif;
if positiondir=1 and gain<0 then contalongno=contalongno+1;endif;
if positiondir=-1 and gain>0 then contashortsi=contashortsi+1;endif;
if positiondir=-1 and gain<0 then contashortno=contashortno+1;endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if c>highd(1)
and GetNumOpEnterLongToday=0
and c>input1 //migliora un 100% a 14 anni
and condizioneB=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 //ininfluente a 14 anni
//and condizionenolong=0 //migliora un 18% a 14 anni
then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=1 and gain>2 and rangemensile22g<12 then exitlong(nextbar,atopen);endif;// non da fastidio
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if c<lowd(1)
and GetNumOpEntershortToday=0
and c<input2 // migliora un 100% a 14 anni
and condizioneA=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 // ininfluente a 14 anni
//and condizionenoshort=0 //migliora un 18% a 14 anni
then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=-1 and gain>2 and rangemensile22g<12 then exitshort(nextbar,atopen);endif;//non da fastidio
vp1 = Createviewport(250);
Plotchart(Max_Gain_perc,vp1,red,solid,2);
Plotchart(Gain,vp1,green,solid,2);
vp2 = Createviewport(250);
Plotchart(contalongno,vp2,red,solid,2);
Plotchart(contalongsi,vp2,green,solid,2);
vp3 = Createviewport(250);
Plotchart(contashortno,vp3,red,solid,2);
Plotchart(contashortsi,vp3,green,solid,2);
nelle stringhe long e short sono attive solo 4 condizioni
poi come uscite la solita collegata al 50% del giorno precedente ed altre due...una migliora pochissimo ma non da fastidio..l'altra più importante( fa rimanere meno a mercato ed aumenta la resa ) che scatta solo in determinate situazioni ma dopo 34 candele col ts attivo
//__________________________________________Tecnica 50%________________________// 18 luglio 2017
Var: miomax5g,miomin5g,miomax11g,miomin11g,miomax22g,miomin22g,rangemensile5g,rangemensile11g,rangemensile22g;
Var: input1,input2;
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvmed;
Var: wmax,wmin,wmed,DMAX,DMIN,vp1;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,contanuovimassimi,contanuoviminimi,rapportosegnalepositivodown;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),condizioneA,condizioneB,ivp;
Var: condizionenolong,condizionenoshort;
Var: contalongsi,contalongno,contashortsi,contashortno,vp2,vp3;
Var: miomax5g;
miomax5g = HHV (H, 187);
Var: miomin5g;
miomin5g = LLV (L, 187);
Var: miomax11g;
miomax11g = HHV (H, 374);
Var: miomin11g;
miomin11g = LLV (L, 374);
Var: miomax22g;
miomax22g = HHV (H, 748);
Var: miomin22g;
miomin22g = LLV (L, 748);
rangemensile5g=(((miomax5g-miomin5g)/miomin5g)*100);
rangemensile11g=(((miomax11g-miomin11g)/miomin11g)*100);
rangemensile22g=(((miomax22g-miomin22g)/miomin22g)*100);
if rangemensile5g<10 and miomax5g>miomax5g[136] and miomin5g=miomin5g[136] then condizionenoshort=1;else condizionenoshort=0;endif;
if rangemensile5g<10 and miomax5g=miomax5g[136] and miomin5g<miomin5g[136] then condizionenolong=1;else condizionenolong=0;endif;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvmed= 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]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
PlotChart(WMED,0, gray, dot, 1);
Plotchart(dvmed,0,blue,solid,1);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___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 positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
/////////////////////////////////// Gain /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
if positiondir=1 and gain>0 then contalongsi=contalongsi+1;endif;
if positiondir=1 and gain<0 then contalongno=contalongno+1;endif;
if positiondir=-1 and gain>0 then contashortsi=contashortsi+1;endif;
if positiondir=-1 and gain<0 then contashortno=contashortno+1;endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if c>highd(1)
and GetNumOpEnterLongToday=0
and c>input1 //migliora un 100% a 14 anni
and condizioneB=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 //ininfluente a 14 anni
//and condizionenolong=0 //migliora un 18% a 14 anni
then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=1 and gain>2 and rangemensile22g<12 then exitlong(nextbar,atopen);endif;// non da fastidio
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if c<lowd(1)
and GetNumOpEntershortToday=0
and c<input2 // migliora un 100% a 14 anni
and condizioneA=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 // ininfluente a 14 anni
//and condizionenoshort=0 //migliora un 18% a 14 anni
then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=-1 and gain>2 and rangemensile22g<12 then exitshort(nextbar,atopen);endif;//non da fastidio
vp1 = Createviewport(250);
Plotchart(Max_Gain_perc,vp1,red,solid,2);
Plotchart(Gain,vp1,green,solid,2);
vp2 = Createviewport(250);
Plotchart(contalongno,vp2,red,solid,2);
Plotchart(contalongsi,vp2,green,solid,2);
vp3 = Createviewport(250);
Plotchart(contashortno,vp3,red,solid,2);
Plotchart(contashortsi,vp3,green,solid,2);
dopo lo vedo meglio...
ResponderEliminartra oggi e l'altroieri belle sberle stiamo prendendo
ok ma perché le hai commentate fuori le due condizioni rangemensile22g e condizionenolong ?
ResponderEliminaruna ok ininfluente, l'altra migliora un 18% a 14 anni
ah altra domanda, va bene se aggiungo and t<1730 anziché 1715 ? perché magari alle 17.15 puó ancora entrare, visto che alle 17 é ancora una candela utile
ResponderEliminarmi pare di ricordare che se metti 1730 non va bene perchè praticamente per come lavora VT i dati confermati della candela delle 1715 li ha solo in apertura il giorno dopo..tipo il long scattato oggi alle 0900
ResponderEliminarMa con <1715 non entrerebbe con la candela della 1715 no?
ResponderEliminarPosso mettere una cosa intermedia tipo 1720? :D
mi sembra che se usi il frame 15 minuti dopo <1715 non funziona..controlla bene perchè altrimenti ti sbaglia tutto il backtest
ResponderEliminarho la versione free, quindi ho solo due mesi di storico.
ResponderEliminarper il resto, l'altra sera il ts é uscito in after e mi ha eseguito (mi é pure andata bene), a sto punto quello che posso fare é di staccare il trading automatico dopo la chiusura e riaccenderlo al mattino...
per il backtest mi fido dei tuoi, anche perché se backtesto gli ultimi due mesi col 50% non é molto entusiasmante :D