function run()
{
set(PARAMETERS);
StartDate = 2002;
BarPeriod = 1440;
LookBack = 250;
NumWFOCycles = 10;
//edge trading logic
int FastPeriod = 12;
int SlowPeriod = 26;
int SignalPeriod = 9;
vars PriceClose = series(priceClose());
MACD(PriceClose,FastPeriod,SlowPeriod,SignalPeriod);
vars MainLine = series(rMACD);
vars SignalLine = series(rMACDSignal);
vars Hist = series(rMACDHist);
Stop = ATR(100) * optimize(1.99,1,15,0.5,0); // Adaptive stop
if(crossOver(SignalLine,MainLine))
reverseLong(1);
else if(crossUnder(SignalLine,MainLine))
reverseShort(1);
if(ReTrain)
{
UpdateDays = -1;
SelectWFO = -1;
}
}