Thank you for giving me my kind enthusiasm :-) I guess this one will have problems with memory management.

Code
#define INPUTS_PER_MODEL 10
#define TOTAL_INPUTS 50  // Adjusted for additional volume data
#define NUM_MODELS 5     // Adjusted for the additional inputs

function run() {
    set(PARAMETERS);
    StartDate = 20190101;
    BarPeriod = 60;
    Capital = 2000;
    LookBack = 20; // Increased LookBack to cover 10 previous bars

    vars Open = series(priceOpen());
    vars High = series(priceHigh());
    vars Low = series(priceLow());
    vars Close = series(priceClose());
    vars Volume = series(marketVol());

    // Define your 50 inputs including volume
    vars Inputs = series(TOTAL_INPUTS);
    int i;
    for(i = 0; i < 10; ++i) { // Previous 10 bars
        Inputs[i] = Open[i + 1];      // Past opens
        Inputs[i + 10] = High[i + 1];  // Past highs
        Inputs[i + 20] = Low[i + 1];   // Past lows
        Inputs[i + 30] = Close[i + 1]; // Past closes
        Inputs[i + 40] = Volume[i + 1]; // Past volumes
    }

    // Divide inputs among five neural networks
    var ModelInputs[NUM_MODELS][INPUTS_PER_MODEL];
    int i;
    for(i = 0; i < TOTAL_INPUTS; ++i) {
        ModelInputs[i / INPUTS_PER_MODEL][i % INPUTS_PER_MODEL] = Inputs[i];
    }

    vars ModelOutputs[NUM_MODELS];
    int i;
    var ModelLongOutputs[NUM_MODELS];
    var ModelShortOutputs[NUM_MODELS];
    for(i = 0; i < NUM_MODELS; ++i) {
        ModelLongOutputs[i] = adviseLong(NEURAL + BALANCED, 0, &ModelInputs[i][0], INPUTS_PER_MODEL);
        ModelShortOutputs[i] = adviseShort(NEURAL + BALANCED, 0, &ModelInputs[i][0], INPUTS_PER_MODEL);
    }

    var CombinedLongSignal = 0;
    var CombinedShortSignal = 0;
    for(i = 0; i < NUM_MODELS; ++i) {
        CombinedLongSignal += ModelLongOutputs[i];
        CombinedShortSignal += ModelShortOutputs[i];
    }

    CombinedLongSignal /= NUM_MODELS;
    CombinedShortSignal /= NUM_MODELS;

    var Threshold = 0.5;
    set(LOGFILE | PLOTNOW);
    if (CombinedLongSignal > Threshold)
        enterLong();
    if (CombinedShortSignal > Threshold)
        enterShort();

    plot("Long Signal", CombinedLongSignal, NEW|LINE, BLACK);
    plot("Short Signal", CombinedShortSignal, NEW|LINE, RED);
}


Last edited by TipmyPip; 01/03/24 07:07.

ZorroTraderGPT - https://bit.ly/3Gbsm4S