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