function run()
{
set(PARAMETERS|LOGFILE);
BarPeriod = 1440;
StartDate = 2010;
LookBack = 1000;
Verbose = 7;
assetList("AssetsZ9.csv");
asset("AGG");
int Max_Long_Assets = optimize(2,1,4,1);
// int Max_Long_Assets = 2;
while(asset(loop(Assets))) {
vars Prices = series(price());
var sma5 = ROC(Prices,5);
var signal1 = SMA(Prices,5);
var signal2 = SMA(Prices,30);
var Threshold1 = optimize(0.05,0.0,0.1,0.01);
var Threshold2 = optimize(0.05,0.0,0.1,0.01);
int RR = signal1 - signal2 < Threshold1;
int TT = signal1 - signal2 >= Threshold2;
// printf("\n%.3f %.3f",sma5,signal1 - signal2);
int In = (sma5<0 && RR==1) || (sma5>0 && TT==1);
int Out= (sma5>0 && RR==1) || (sma5<0 && TT==1);
int NewShares = Balance/priceClose(0)/Max_Long_Assets-LotsPool;
if(In && NumLongTotal < Max_Long_Assets)
enterLong(NewShares);
else if (Out)
exitLong();
// plot("TT",signal1 - signal2,NEW|LINE,RED);
}
}