refactor: Added Market Watch source option

This commit is contained in:
Toh4iem9
2025-12-04 11:16:09 +01:00
parent 736174d74a
commit 396b42b3a2
+33 -8
View File
@@ -3,12 +3,13 @@
//| Copyright 2025, xxxxxxxx| //| Copyright 2025, xxxxxxxx|
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
#property copyright "Copyright 2025, xxxxxxxx" #property copyright "Copyright 2025, xxxxxxxx"
#property version "2.00" // Configurable via Inputs/.set files #property version "2.10" // Added Market Watch source option
#property description "Opens a configurable set of charts and templates for selected symbols." #property description "Opens a configurable set of charts and templates for selected symbols."
#property script_show_inputs #property script_show_inputs
//--- Input Parameters //--- Input Parameters
input string InpSymbols = "EURUSD,USDJPY"; // Comma-separated symbols input bool InpUseMarketWatch = false; // Load ALL symbols from Market Watch?
input string InpSymbols = "EURUSD,USDJPY"; // Comma-separated symbols (ignored if Market Watch is used)
input group "Chart Configuration 1" input group "Chart Configuration 1"
input ENUM_TIMEFRAMES InpPeriod_1 = PERIOD_M15; input ENUM_TIMEFRAMES InpPeriod_1 = PERIOD_M15;
@@ -48,12 +49,37 @@ input string InpTemplate_8 = "";
void OnStart() void OnStart()
{ {
string symbols[]; string symbols[];
int count = StringSplit(InpSymbols, ',', symbols); int count = 0;
if(count <= 0) if(InpUseMarketWatch)
{ {
Print("Error: No symbols specified."); // Load from Market Watch
return; int total = SymbolsTotal(true); // true = only selected in Market Watch
if(total > 0)
{
ArrayResize(symbols, total);
for(int i=0; i<total; i++)
{
symbols[i] = SymbolName(i, true);
}
count = total;
PrintFormat("Loaded %d symbols from Market Watch.", count);
}
else
{
Print("Error: Market Watch is empty?");
return;
}
}
else
{
// Load from Input String
count = StringSplit(InpSymbols, ',', symbols);
if(count <= 0)
{
Print("Error: No symbols specified.");
return;
}
} }
// Collect configs into arrays for looping // Collect configs into arrays for looping
@@ -86,7 +112,7 @@ void OnStart()
if(symbol == "") if(symbol == "")
continue; continue;
// Check if symbol exists // Check if symbol exists (redundant for Market Watch but safe)
if(!SymbolInfoInteger(symbol, SYMBOL_SELECT)) if(!SymbolInfoInteger(symbol, SYMBOL_SELECT))
{ {
if(!SymbolSelect(symbol, true)) if(!SymbolSelect(symbol, true))
@@ -99,7 +125,6 @@ void OnStart()
// Open charts for this symbol // Open charts for this symbol
for(int j = 0; j < 8; j++) for(int j = 0; j < 8; j++)
{ {
// Skip empty slots
if(templates[j] == "") if(templates[j] == "")
continue; continue;