Buona domenica a tutti, di seguito vi posto il listato con alcune modifiche per l' SP500 che ne migliorana il rendimento, io l'ho testato su 30 giorni.
Var: miavar(0),MioWILDER1,MioRSI1,MioEXPSMOOTH2,MIOMOV1,MioMOV2,Miowilder0,mioosc5,zona1;
Var: previousH,previousL,previousC,Pivot,R1,S1, R1mid,S1mid, prova, cambiatogiorno,lin1,lin2,lin3,lin4,lin5,indperiodo, numper, ggini, primavolta(-1);
Var: Miacondizione1, Miacondizione2; // zona del grafico principale
Var: miomax10g, miomin10g,kkj,jjk,yyk,MiaOP1,MiaOP2,miaOP3,MiaOP4,constval4,MiaOP5, MiaOP6;
miomax10g = HHV (H, 5);
mioMIN10g =LLV (L,5);
kkj = MOV(C,7,0,3,0);
jjk = MOV(C,13,0,8,0);
previousH=EOD.H[1];
previousL=EOD.L[1];
previousC=EOD.C[1];
cambiatogiorno = GetValues(days, 1, prova, prova, prova, prova);// Calcola Pivot
R1=(2*Pivot)-previousL;
Pivot=(previousH+previousC+previousL)/3;
S1=(2*Pivot)-previousH;
R1mid=(R1+pivot)/2;
S1mid=(S1+pivot)/2;
if cambiatogiorno then// Termina le linee precedenti qui, Crea nuove Linee per il prossimo Giorno
lin1 = CREATEOGG;
lin2 = CREATEOGG;
lin3 = CREATEOGG;
lin4 = CREATEOGG;
lin5 = CREATEOGG;
indperiodo = 0;
ggini = GetDate;// da dove parto a tracciare la linea orizzontale
primavolta = false;
endif;
indperiodo = indperiodo + 1;
numper = indperiodo;
// Disegna Linee orizzontali lunghe solo in quel giorno
lin1 = drawhlineper(lin1,0,ggini, r1, numper, fuchsia,1,0);
lin2 = drawhlineper(lin2,0,ggini, Pivot, numper, blue,2,0);
lin3 = drawhlineper(lin3,0,ggini, s1, numper, black,1,0);
lin4 = drawhlineper (lin4,0,ggini, R1mid, numper, fuchsia,1,2);
lin5 = drawhlineper (lin5,0,ggini, S1mid, numper, black,1,2);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
constval4 =constval(4);
MioWILDER1 = WILDER(C,3);
mioWILDER0 = MOV(MioWILDER1,3,0,2,0);
MiaOP1 = OP(MioWILDER1,MioWILDER0,add);
MiaOP2 = OP(jjk,kkj,add);
MiaOP3 = OP(MiaOP1,MiaOP2,add);
MiaOP4 = OP(MiaOP3,constval4,divis);
MiaOP5 = OP(C,MiaOP4,sub);
MiaOP6 = OP(miaOP4,C,sub);
MiaCondizione1 = (MiaOP5 > 3.5); // mettere la condizione
MiaCondizione2 = (MiaOP6 >-5);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if (MIOWILDER1 > kkj and Miacondizione1 = true and Miacondizione2 = false) then EnterLong(NextBar, AtOpen);
endif;
if (MIOWILDER1 < kkj and Miacondizione2 = true and miacondizione1 = false) then ExitLong(NextBar, AtOpen);
endif;
if ( MIOWILDER1 < kkj and Miacondizione2 = true and miacondizione1 = false) then entershort (Nextbar,AtOpen);
endif;
if (MIOWILDER1 > kkj and Miacondizione1 = true and Miacondizione2 = false) theN ExitShort(NextBar, AtOpen);
endif;
installstoploss(INPERC,1);
installtakeprofit(inperc,3.0);