//+------------------------------------------------------------------+ //| Def.mqh | //| Copyright 2025, Niquel Mendoza. | //| https://www.mql5.com/es/users/nique_372 | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, Niquel Mendoza." #property link "https://www.mql5.com/es/users/nique_372" #property strict #ifndef AIDATATASKRUNNER_BACKEND_BASES_DEF_MQH #define AIDATATASKRUNNER_BACKEND_BASES_DEF_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ //--- #include //--- enum ENUM_AIEXECUTOR_TASK_STATE { AIEXECUTOR_TASK_STATE_IN_PROCESS = 0, // Se esta procesando AIEXECUTOR_TASK_STATE_IN_QUEQE = 1, // En cola AIEXECUTOR_TASK_STATE_PENDIENTE = 2, // Pendiente AIEXECUTOR_TASK_STATE_FINISHED = 3, // Listo AIEXECUTOR_TASK_STATE_FAILED = 4 // Fallo }; //--- #define TASKTESTER_VALUES (8) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ struct TaskTester { //--- string symbol; // Simbolo string set_file; // SetFIle datetime start_date; // End date datetime end_date; // Start date ENUM_TIMEFRAMES timeframe; // Timeframe string symbol_folder; // Simbolo (Para el nombre del folder) string label; // Etiqueta int label_id; // Numero de la etiqueta ENUM_AIEXECUTOR_TASK_STATE state; // Estado //--- TaskTester() : symbol_folder(NULL), label(NULL), label_id(0), state(AIEXECUTOR_TASK_STATE_PENDIENTE), set_file(NULL), symbol(NULL), timeframe(WRONG_VALUE), start_date(0), end_date(0) { } //--- __forceinline string ToStringFile() { return StringFormat("%d|%s|%s|%s|%s|%s|%s|%d", int(timeframe), // [0] symbol, // [1] set_file, // [2] TimeToString(start_date), // [3] TimeToString(end_date), // [4] symbol_folder, // [5] label, // [6] label_id); // [7] } //--- __forceinline string ToStringToMTTester(const long chart_id, const string& expert_path, const int8_t modelado) { // 1er 0 por qeu no usaremos leverage (por defecotop) // 2do 0 por visual mode tampoco usaremos visual mode (no es nceesario ver el backtest) return StringFormat("%d|%s|%s|%s|%s|%I64d|%s|0|0|%d", int(timeframe), // [0] symbol, // [1] set_file, // [2] TimeToString(start_date), // [3] TimeToString(end_date), // [4] chart_id, expert_path, modelado); } //--- void Assing(const string& dyn_arr[]) { //--- timeframe = ENUM_TIMEFRAMES(int(dyn_arr[0])); symbol = dyn_arr[1]; set_file = dyn_arr[2]; start_date = StringToTime(dyn_arr[3]); end_date = StringToTime(dyn_arr[4]); //--- symbol_folder = dyn_arr[5]; label = dyn_arr[6]; label_id = int(dyn_arr[7]); } }; #endif // AIDATATASKRUNNER_BACKEND_BASES_DEF_MQH