From e104adbbea305a05700d36fd759bcfb1c5f799ad Mon Sep 17 00:00:00 2001 From: Toh4iem9 Date: Thu, 4 Dec 2025 10:14:58 +0100 Subject: [PATCH] new files added --- Scripts/MyScripts/Workspace_Loader_Pro.mq5 | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Scripts/MyScripts/Workspace_Loader_Pro.mq5 diff --git a/Scripts/MyScripts/Workspace_Loader_Pro.mq5 b/Scripts/MyScripts/Workspace_Loader_Pro.mq5 new file mode 100644 index 0000000..023f0e1 --- /dev/null +++ b/Scripts/MyScripts/Workspace_Loader_Pro.mq5 @@ -0,0 +1,126 @@ +//+------------------------------------------------------------------+ +//| Workspace_Loader_Pro.mq5 | +//| Copyright 2025, xxxxxxxx| +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, xxxxxxxx" +#property version "2.00" // Configurable via Inputs/.set files +#property description "Opens a configurable set of charts and templates for selected symbols." +#property script_show_inputs + +//--- Input Parameters +input string InpSymbols = "EURUSD,USDJPY"; // Comma-separated symbols + +input group "Chart Configuration 1" +input ENUM_TIMEFRAMES InpPeriod_1 = PERIOD_M15; +input string InpTemplate_1 = "Default.tpl"; // Template Name (empty to skip) + +input group "Chart Configuration 2" +input ENUM_TIMEFRAMES InpPeriod_2 = PERIOD_M15; +input string InpTemplate_2 = "MyTemplates\\trend.ha.base.tpl"; + +input group "Chart Configuration 3" +input ENUM_TIMEFRAMES InpPeriod_3 = PERIOD_CURRENT; +input string InpTemplate_3 = ""; + +input group "Chart Configuration 4" +input ENUM_TIMEFRAMES InpPeriod_4 = PERIOD_CURRENT; +input string InpTemplate_4 = ""; + +input group "Chart Configuration 5" +input ENUM_TIMEFRAMES InpPeriod_5 = PERIOD_CURRENT; +input string InpTemplate_5 = ""; + +input group "Chart Configuration 6" +input ENUM_TIMEFRAMES InpPeriod_6 = PERIOD_CURRENT; +input string InpTemplate_6 = ""; + +input group "Chart Configuration 7" +input ENUM_TIMEFRAMES InpPeriod_7 = PERIOD_CURRENT; +input string InpTemplate_7 = ""; + +input group "Chart Configuration 8" +input ENUM_TIMEFRAMES InpPeriod_8 = PERIOD_CURRENT; +input string InpTemplate_8 = ""; + +//+------------------------------------------------------------------+ +//| Script program start function | +//+------------------------------------------------------------------+ +void OnStart() + { + string symbols[]; + int count = StringSplit(InpSymbols, ',', symbols); + + if(count <= 0) + { + Print("Error: No symbols specified."); + return; + } + +// Collect configs into arrays for looping + ENUM_TIMEFRAMES periods[8]; + string templates[8]; + + periods[0] = InpPeriod_1; + templates[0] = InpTemplate_1; + periods[1] = InpPeriod_2; + templates[1] = InpTemplate_2; + periods[2] = InpPeriod_3; + templates[2] = InpTemplate_3; + periods[3] = InpPeriod_4; + templates[3] = InpTemplate_4; + periods[4] = InpPeriod_5; + templates[4] = InpTemplate_5; + periods[5] = InpPeriod_6; + templates[5] = InpTemplate_6; + periods[6] = InpPeriod_7; + templates[6] = InpTemplate_7; + periods[7] = InpPeriod_8; + templates[7] = InpTemplate_8; + + for(int i = 0; i < count; i++) + { + string symbol = symbols[i]; + StringTrimLeft(symbol); + StringTrimRight(symbol); + + if(symbol == "") + continue; + + // Check if symbol exists + if(!SymbolInfoInteger(symbol, SYMBOL_SELECT)) + { + if(!SymbolSelect(symbol, true)) + { + Print("Error: Symbol '", symbol, "' not found."); + continue; + } + } + + // Open charts for this symbol + for(int j = 0; j < 8; j++) + { + // Skip empty slots + if(templates[j] == "") + continue; + + long chart_id = ChartOpen(symbol, periods[j]); + if(chart_id > 0) + { + if(!ChartApplyTemplate(chart_id, templates[j])) + { + Print("Error applying template '", templates[j], "' to ", symbol); + } + else + { + Print("Opened ", symbol, " ", EnumToString(periods[j]), " with ", templates[j]); + } + } + else + { + Print("Error opening chart for ", symbol); + } + } + } + } +//+------------------------------------------------------------------+ +//+------------------------------------------------------------------+