2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| 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
|
| | |
|
2026-05-01 13:27:57 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Defines |
|
| | | //+------------------------------------------------------------------+
|
| | | #define PUBLIC_VERSION
|
| | |
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
2026-04-17 17:53:19 -05:00 | | | //| Include |
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | #include "Functions.mqh"
|
2026-07-08 11:03:36 -05:00 | | | #include "Secrets.mqh"
|
2026-04-17 17:27:10 -05:00 | | |
|
2026-04-17 17:53:19 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Inputs |
|
| | | //+------------------------------------------------------------------+
|
2026-07-08 11:03:36 -05:00 | | | input string InpTbpUserId = THE_BOT_PLACE_USER_ID; // Tbp User Id
|
| | | input string InpSoketAdres = "127.0.0.1"; // Sockets address
|
| | | input uint InpSoketPort = 9999; // Socket port
|
2026-07-14 11:11:53 -05:00 | | | input int InpMsPool = 70; // Ms pool
|
2026-07-08 11:03:36 -05:00 | | | input int InpMsTimeoutReadNoTls = 10000; // Timeout for read (NO-TLS)
|
2026-04-17 17:53:19 -05:00 | | | input long InpChartIdPanel = 0;
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| Global variables |
|
| | | //+------------------------------------------------------------------+
|
2026-06-03 22:07:50 -05:00 | | | TSN::IMcpBase* g_mcp_server;
|
2026-04-17 17:53:19 -05:00 | | |
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Expert initialization function |
|
| | | //+------------------------------------------------------------------+
|
| | | int OnInit()
|
2026-04-17 17:53:19 -05:00 | | | {
|
2026-05-01 13:27:57 -05:00 | | | //---
|
| | | #ifdef TSN_MCPSERVER_FUNC_CTS
|
2026-07-08 11:03:36 -05:00 | | | g_mcp_server = TSN_MCPSERVER_FUNC_CTS(InpTbpUserId);
|
2026-05-01 13:27:57 -05:00 | | | #else
|
2026-07-08 11:03:36 -05:00 | | | g_mcp_server = McpServerByLeo_Create(InpTbpUserId);
|
2026-05-01 13:27:57 -05:00 | | | #endif // TSN_MCPSERVER_FUNC_CTS
|
| | |
|
| | |
|
2026-04-17 17:53:19 -05:00 | | | //---
|
| | | ::EventSetMillisecondTimer(InpMsPool);
|
| | | g_mcp_server.AddLogFlags(LOG_ALL);
|
| | |
|
2026-04-17 17:27:10 -05:00 | | | //---
|
2026-04-17 17:53:19 -05:00 | | | const long current_chart_id = ChartID();
|
2026-06-03 22:07:50 -05:00 | | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerAddTask(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerGetTaskTotal(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerGetTaskByIndex(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerGetTaskStatus(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerCleanAllTasks(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerExecuteAllTasks(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerSaveTasksToFile(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerLoadTasksFromFile(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerLoadConfig(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerSaveConfig(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerGetMainFolder(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerGetTaskFolder(InpChartIdPanel, current_chart_id));
|
| | | g_mcp_server.AddItemFast(new TSN::CMcpFuncAiTaskRunnerIsInCommonFolder(InpChartIdPanel, current_chart_id));
|
2026-04-17 17:27:10 -05:00 | | | //---
|
2026-04-17 17:53:19 -05:00 | | | 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);
|
| | | }
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Expert deinitialization function |
|
| | | //+------------------------------------------------------------------+
|
| | | void OnDeinit(const int reason)
|
2026-04-17 17:53:19 -05:00 | | | {
|
2026-04-17 17:27:10 -05:00 | | | //---
|
2026-04-17 17:53:19 -05:00 | | | ::EventKillTimer();
|
2026-05-01 13:27:57 -05:00 | | | //---
|
| | | if(CheckPointer(g_mcp_server) == POINTER_DYNAMIC)
|
| | | delete g_mcp_server;
|
| | |
|
2026-04-17 17:53:19 -05:00 | | | }
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Expert tick function |
|
| | | //+------------------------------------------------------------------+
|
| | | void OnTick()
|
2026-04-17 17:53:19 -05:00 | | | {
|
| | | //---
|
| | | }
|
| | | //+------------------------------------------------------------------+
|
| | | //| 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)
|
| | | {
|
2026-04-17 17:27:10 -05:00 | | | //---
|
2026-04-17 17:53:19 -05:00 | | | g_mcp_server.ChartEvent(id, lparam, dparam, sparam);
|
| | | }
|
2026-04-17 17:27:10 -05:00 | | | //+------------------------------------------------------------------+
|