AiDataTaskRuner/Backend/Tester/Def.mqh

108 líneas
3,8 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, 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