djopen = Foreign(ext_symb,"O",0);
djopen = ValueWhen(djopen != 0, djopen);
ddj = djopen - Ref(djopen,-1); //Open - Open giorno precedente DJ
ydj_1 = 100*ddj/djopen ; //Open - Open in %
yield2 = 100*(Ref(O,1)/C -1);
avgrx = AMA(ydj_1,alpha);
dvstx=0;
for (i=1;i<BarCount;i++) {
dvstx[i] = sqrt( ( 1 - alpha ) * dvstx[i-1] * dvstx[i-1] + alpha * ( ydj_1[i] - avgrx[i] ) * ( ydj_1[i] - avgrx[i] ) ); }
inputx=(ydj_1-avgrx)/dvstx;
//Sliding window
kfor=20;
finestra = 50;
BuyPrice = Close;
SellPrice = Open;
Short=Cover=0;
//Genero le 21 equity per k = 0 -> 2 step 0.1
for ( kappa = 0; kappa <= kfor; kappa++ ) {
//Scrivo le condizioni operative di amibroker e salvo i risultati in equity
Buy = inputx < -kappa / 10;
Sell = Ref(Buy,-1);
eq = Equity();
VarSet( "Equity" + kappa, Ref(eq,-1) - Ref( eq, -finestra ) );//questo è il nostro indice di performance
}
bestequity = tmp = setkappa = 0;
//trovo la migliore e salvo il kappa corrispondente
for ( i = 1; i < BarCount - 1; i++ ) { //apro la modalita candela per candela
bestequity[i] = 0;
for ( kappa = 0;kappa <= kfor;kappa++ ) {
tmp = VarGet( "equity" + kappa );//recupero le equity
if ( tmp[i] > bestequity[i] ) { //confronto per trovare la migliore
setkappa[i] = kappa;
bestequity[i] = tmp[i];//memorizzo il valore della equity
}
}
}
Buy = inputx < -setkappa / 10;
Sell = Ref(Buy,-1);