forked from nique_372/AiDataTaskRuner
95 lines
4.5 KiB
MQL5
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);
|
|
}
|
|
//+------------------------------------------------------------------+
|