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);
int NumSignalsFirstLayer = 5; // Number of signals for the first neural network
vars SignalsFirstLayer = series(NumSignalsFirstLayer);
SignalsFirstLayer[0] = Open[0] - Open[1];
SignalsFirstLayer[1] = High[0] - High[1];
SignalsFirstLayer[2] = Low[0] - Low[1];
SignalsFirstLayer[3] = Close[0] - Close[1];
SignalsFirstLayer[4] = NormClose[0];
// Outputs from the first layer
var LongOutputFirstLayer = adviseLong(NEURAL + BALANCED, 0, SignalsFirstLayer, NumSignalsFirstLayer);
var ShortOutputFirstLayer = adviseShort(NEURAL + BALANCED, 0, SignalsFirstLayer, NumSignalsFirstLayer);
int NumSignalsSecondLayer = 2; // Number of signals for the second neural network
vars SignalsSecondLayer = series(NumSignalsSecondLayer);
// Use the outputs from the first layer as inputs for the second layer
SignalsSecondLayer[0] = LongOutputFirstLayer;
SignalsSecondLayer[1] = ShortOutputFirstLayer;
var vLong, vShort, Threshold = 0.5;
set(LOGFILE | PLOTNOW);
if (adviseLong(NEURAL + BALANCED, 0, SignalsSecondLayer, NumSignalsSecondLayer) > Threshold)
enterLong();
if (adviseShort(NEURAL + BALANCED, 0, SignalsSecondLayer, NumSignalsSecondLayer) > Threshold)
enterShort();
plot("Long", vLong, NEW|LINE, BLACK);
plot("Short", vShort, LINE, GREY);
}