diff --git a/MQL5/Experts/MultiAgentTest/Core/Orchestrator.mqh b/MQL5/Experts/MultiAgentTest/Core/Orchestrator.mqh index fd9fc5d..76ba483 100644 --- a/MQL5/Experts/MultiAgentTest/Core/Orchestrator.mqh +++ b/MQL5/Experts/MultiAgentTest/Core/Orchestrator.mqh @@ -1125,19 +1125,19 @@ UpdateHealth(actualReturn); int WinCount() const { return winCount; } // --- Neural Network Methods --- - void InitNeuralNet(int inputs, int hidden, int outputs, double dropoutRate = 0.2) { - if(m_neuralNet == NULL) { - m_neuralNet = new CNeuralNet(); - m_trainBuffer = new NNTrainBuffer(); - } - m_neuralNet.Init(inputs, hidden, outputs, 1e-4, dropoutRate); - m_useNeural = true; - } + void InitNeuralNet(int inputs, int hidden, int outputs, bool setUseNeural = false, double dropoutRate = 0.2) { + if(m_neuralNet == NULL) { + m_neuralNet = new CNeuralNet(); + m_trainBuffer = new NNTrainBuffer(); + } + m_neuralNet.Init(inputs, hidden, outputs, 1e-4, dropoutRate); + if(setUseNeural) m_useNeural = true; + } double TrainNN() { if(m_neuralNet == NULL || !m_neuralNet.IsInitialized()) { Print("TrainNN: rete non inizializzata. Inizializzo..."); - InitNeuralNet(NN_FEATURES, m_nnHidden, NN_TARGETS); + InitNeuralNet(NN_FEATURES, m_nnHidden, NN_TARGETS, true); } if(m_trainBuffer == NULL || m_trainBuffer.Count() < 3) { Print("TrainNN: campioni insufficienti (", diff --git a/MQL5/Experts/MultiAgentTest/MultiAgentTest.mq5 b/MQL5/Experts/MultiAgentTest/MultiAgentTest.mq5 index f06d7bc..df23f97 100644 --- a/MQL5/Experts/MultiAgentTest/MultiAgentTest.mq5 +++ b/MQL5/Experts/MultiAgentTest/MultiAgentTest.mq5 @@ -95,7 +95,7 @@ orchestrator.AddAgent(new RegimeDetector("Hurst", 1.0, Inp_HurstPeriod)); if(Inp_UseNeural) { Print(" NN model not found, initializing fresh network..."); } - orchestrator.InitNeuralNet(8, Inp_NNHidden, 3); + orchestrator.InitNeuralNet(8, Inp_NNHidden, 3, Inp_UseNeural); } }