forked from nique_372/AiDataTaskRuner
105 lines
3.6 KiB
MQL5
105 lines
3.6 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| 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]
| |||
}
| |||
| |||
| |||
//---
| |||
__forceinline string ToStringToMTTester(const long chart_id, const string& expert_path)
| |||
{
| |||
return StringFormat("%d|%s|%s|%s|%s|%I64d|%s",
| |||
int(timeframe), // [0]
| |||
symbol, // [1]
| |||
set_file, // [2]
| |||
TimeToString(start_date), // [3]
| |||
TimeToString(end_date), // [4]
| |||
chart_id,
| |||
expert_path);
| |||
}
| |||
| |||
//---
| |||
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
|