function run() {
set(PARAMETERS);
StartDate = 20190101;
BarPeriod = 60;
Capital = 2000;
LookBack = 150;
vars Open = series(priceOpen());
vars High = series(priceHigh());
vars Low = series(priceLow());
vars Close = series(priceClose());
vars NormClose = series(Close[0] / 100);
// First layer signals - Using DTREE
int NumSignalsDTREE = 5;
vars SignalsDTREE = series(NumSignalsDTREE);
SignalsDTREE[0] = Open[0] - Open[1];
SignalsDTREE[1] = High[0] - High[1];
SignalsDTREE[2] = Low[0] - Low[1];
SignalsDTREE[3] = Close[0] - Close[1];
SignalsDTREE[4] = NormClose[0];
var DTreeLongOutput = adviseLong(DTREE, 0, SignalsDTREE, NumSignalsDTREE);
var DTreeShortOutput = adviseShort(DTREE, 0, SignalsDTREE, NumSignalsDTREE);
// Second layer signals - Using NEURAL
int NumSignalsNEURAL = 2;
vars SignalsNEURAL = series(NumSignalsNEURAL);
SignalsNEURAL[0] = DTreeLongOutput;
SignalsNEURAL[1] = DTreeShortOutput;
var vLong, vShort, Threshold = 0.5;
set(LOGFILE | PLOTNOW);
if (adviseLong(NEURAL + BALANCED, 0, SignalsNEURAL, NumSignalsNEURAL) > Threshold)
enterLong();
if (adviseShort(NEURAL + BALANCED, 0, SignalsNEURAL, NumSignalsNEURAL) > Threshold)
enterShort();
plot("Long", vLong, NEW|LINE, BLACK);
plot("Short", vShort, LINE, GREY);
}