//+------------------------------------------------------------------+ //| StudyForecast.mq5 | //| Copyright 2026, DNG | //| https://www.mql5.com/ru/users/dng | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, DNG" #property link "https://www.mql5.com/ru/users/dng" #property version "1.00" #property strict #property description "Харнесс обучения прогнозного блока D2." #property description "Обучает модель на заданном историческом интервале и проверяет восстановление чекпоинта." #property description "Только для тестов; ордера не выставляет." //--- #include "Trajectory.mqh" //--- input group "---- Forecast training ----" input datetime InpStart = D'2024.01.01'; //Training period start input datetime InpEnd = D'2026.01.01'; //Training period end input int InpEpochs = 100; //Training epochs //--- input group "---- Forecast recovery smoke ----" input bool InpRecoverySmoke = false; //Run recovery smoke input uint InpRecoverySmokeBatches = 2000; //Recovery smoke batches input uint InpRecoverySmokeAge = 512; //Recovery inactive age //--- datetime Start; datetime End; int Epochs; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit(void) { Start = InpStart; End = InpEnd; Epochs = InpEpochs; if(Start >= End || Epochs <= 0 || !D2SkillConfigureForecastRun(InpRecoverySmoke, InpRecoverySmokeBatches, InpRecoverySmokeAge)) return(INIT_PARAMETERS_INCORRECT); return(CreateD2SkillForecastStudy() ? INIT_SUCCEEDED : INIT_FAILED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ReleaseD2SkillForecastStudy(reason); } //+------------------------------------------------------------------+ //| Chart event callback | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id == 1001) TrainD2SkillForecast(); } //+------------------------------------------------------------------+