AiDataTaskRuner/Backend/Mcp/McpServ.mq5
Nique_372 957e793564
2026-04-17 17:53:53 -05:00

95 lines
4.5 KiB
MQL5

//+------------------------------------------------------------------+
//| McpServ.mq5 |
//| Copyright 2026, Niquel Mendoza. |
//| https://www.mql5.com/es/users/nique_372 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza."
#property link "https://www.mql5.com/es/users/nique_372"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include "Functions.mqh"
//+------------------------------------------------------------------+
//| Inputs |
//+------------------------------------------------------------------+
input string InpSoketAdres = "127.0.0.1";
input uint InpSoketPort = 9999;
input int InpMsPool = 10000;
input int InpMsTimeoutReadNoTls = 10000;
input long InpChartIdPanel = 0;
//+------------------------------------------------------------------+
//| Global variables |
//+------------------------------------------------------------------+
CMcpServer g_mcp_server;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
::EventSetMillisecondTimer(InpMsPool);
g_mcp_server.AddLogFlags(LOG_ALL);
//---
const long current_chart_id = ChartID();
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerAddTask(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerGetTaskTotal(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerGetTaskByIndex(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerGetTaskStatus(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerCleanAllTasks(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerExecuteAllTasks(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerSaveTasksToFile(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerLoadTasksFromFile(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerLoadConfig(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerSaveConfig(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerGetMainFolder(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerGetTaskFolder(InpChartIdPanel, current_chart_id));
g_mcp_server.AddItemFast(new CMcpFuncAiTaskRunnerIsInCommonFolder(InpChartIdPanel, current_chart_id));
//---
g_mcp_server.Set(InpMsPool, InpMsTimeoutReadNoTls);
if(!g_mcp_server.Conectar(InpSoketAdres, InpSoketPort, (10 * 1000))) // 10 segundos de espera para conectarse
return INIT_FAILED;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
::EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer(void)
{
g_mcp_server.TimerEvent();
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
g_mcp_server.ChartEvent(id, lparam, dparam, sparam);
}
//+------------------------------------------------------------------+