2026-03-18 12:10:52 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| 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 <TSN\\ExtraCodes\\RunnerProtDef.mqh>
|
| | |
|
| | |
|
| | | //---
|
| | | 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]
|
| | | }
|
| | |
|
| | |
|
| | | //---
|
2026-04-11 17:18:10 -05:00 | | | __forceinline string ToStringToMTTester(const long chart_id, const string& expert_path, const int8_t modelado)
|
2026-03-18 12:10:52 -05:00 | | | {
|
2026-04-11 17:18:10 -05:00 | | | // 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",
|
2026-03-18 12:10:52 -05:00 | | | int(timeframe), // [0]
|
| | | symbol, // [1]
|
| | | set_file, // [2]
|
| | | TimeToString(start_date), // [3]
|
| | | TimeToString(end_date), // [4]
|
| | | chart_id,
|
2026-04-11 17:18:10 -05:00 | | | expert_path,
|
| | | modelado);
|
2026-03-18 12:10:52 -05:00 | | | }
|
| | |
|
| | | //---
|
| | | 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
|