refactor: Added visibility toggles

This commit is contained in:
Toh4iem9
2025-12-02 19:09:01 +01:00
parent 56f3caf3f4
commit 95e6447b08
@@ -3,7 +3,7 @@
//| Copyright 2025, xxxxxxxx| //| Copyright 2025, xxxxxxxx|
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
#property copyright "Copyright 2025, xxxxxxxx" #property copyright "Copyright 2025, xxxxxxxx"
#property version "1.10" // Added 3 decimal precision and robust error handling #property version "2.00" // Added visibility toggles
#property description "Displays the relative strength of user-defined symbols (Indices, Commodities, etc.)." #property description "Displays the relative strength of user-defined symbols (Indices, Commodities, etc.)."
#property indicator_separate_window #property indicator_separate_window
@@ -39,20 +39,28 @@ input bool InpShowPanel = true; // Show Dashboard Panel?
input group "Symbols & Colors" input group "Symbols & Colors"
input string InpSymbol1 = "US500"; // Symbol 1 input string InpSymbol1 = "US500"; // Symbol 1
input bool InpShow1 = true; // Show Symbol 1
input color InpColor1 = clrGreen; // Color 1 input color InpColor1 = clrGreen; // Color 1
input string InpSymbol2 = "USTEC"; // Symbol 2 input string InpSymbol2 = "USTEC"; // Symbol 2
input bool InpShow2 = true; // Show Symbol 2
input color InpColor2 = clrRed; // Color 2 input color InpColor2 = clrRed; // Color 2
input string InpSymbol3 = "US30"; // Symbol 3 input string InpSymbol3 = "US30"; // Symbol 3
input bool InpShow3 = true; // Show Symbol 3
input color InpColor3 = clrDodgerBlue;// Color 3 input color InpColor3 = clrDodgerBlue;// Color 3
input string InpSymbol4 = "DE40"; // Symbol 4 input string InpSymbol4 = "DE40"; // Symbol 4
input bool InpShow4 = true; // Show Symbol 4
input color InpColor4 = clrGold; // Color 4 input color InpColor4 = clrGold; // Color 4
input string InpSymbol5 = "UK100"; // Symbol 5 input string InpSymbol5 = "UK100"; // Symbol 5
input bool InpShow5 = true; // Show Symbol 5
input color InpColor5 = clrMagenta; // Color 5 input color InpColor5 = clrMagenta; // Color 5
input string InpSymbol6 = "JP225"; // Symbol 6 input string InpSymbol6 = "JP225"; // Symbol 6
input bool InpShow6 = true; // Show Symbol 6
input color InpColor6 = clrOrange; // Color 6 input color InpColor6 = clrOrange; // Color 6
input string InpSymbol7 = "XAUUSD"; // Symbol 7 input string InpSymbol7 = "Gold"; // Symbol 7
input bool InpShow7 = true; // Show Symbol 7
input color InpColor7 = clrSlateGray; // Color 7 input color InpColor7 = clrSlateGray; // Color 7
input string InpSymbol8 = "XTIUSD"; // Symbol 8 input string InpSymbol8 = ""; // Symbol 8
input bool InpShow8 = true; // Show Symbol 8
input color InpColor8 = clrTurquoise; // Color 8 input color InpColor8 = clrTurquoise; // Color 8
//--- Buffers //--- Buffers
@@ -64,6 +72,7 @@ string g_prefix;
int g_window_idx; int g_window_idx;
string g_symbols[8]; string g_symbols[8];
color g_colors[8]; color g_colors[8];
bool g_show_flags[8];
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
int OnInit() int OnInit()
@@ -80,20 +89,28 @@ int OnInit()
// Collect inputs // Collect inputs
g_symbols[0] = InpSymbol1; g_symbols[0] = InpSymbol1;
g_colors[0] = InpColor1; g_colors[0] = InpColor1;
g_show_flags[0] = InpShow1;
g_symbols[1] = InpSymbol2; g_symbols[1] = InpSymbol2;
g_colors[1] = InpColor2; g_colors[1] = InpColor2;
g_show_flags[1] = InpShow2;
g_symbols[2] = InpSymbol3; g_symbols[2] = InpSymbol3;
g_colors[2] = InpColor3; g_colors[2] = InpColor3;
g_show_flags[2] = InpShow3;
g_symbols[3] = InpSymbol4; g_symbols[3] = InpSymbol4;
g_colors[3] = InpColor4; g_colors[3] = InpColor4;
g_show_flags[3] = InpShow4;
g_symbols[4] = InpSymbol5; g_symbols[4] = InpSymbol5;
g_colors[4] = InpColor5; g_colors[4] = InpColor5;
g_show_flags[4] = InpShow5;
g_symbols[5] = InpSymbol6; g_symbols[5] = InpSymbol6;
g_colors[5] = InpColor6; g_colors[5] = InpColor6;
g_show_flags[5] = InpShow6;
g_symbols[6] = InpSymbol7; g_symbols[6] = InpSymbol7;
g_colors[6] = InpColor7; g_colors[6] = InpColor7;
g_show_flags[6] = InpShow7;
g_symbols[7] = InpSymbol8; g_symbols[7] = InpSymbol8;
g_colors[7] = InpColor8; g_colors[7] = InpColor8;
g_show_flags[7] = InpShow8;
for(int i=0; i<8; i++) for(int i=0; i<8; i++)
{ {
@@ -101,8 +118,8 @@ int OnInit()
PlotIndexSetInteger(i, PLOT_LINE_COLOR, g_colors[i]); PlotIndexSetInteger(i, PLOT_LINE_COLOR, g_colors[i]);
PlotIndexSetString(i, PLOT_LABEL, g_symbols[i]); PlotIndexSetString(i, PLOT_LABEL, g_symbols[i]);
// Hide unused plots // Hide unused or disabled plots
if(g_symbols[i] == "") if(g_symbols[i] == "" || !g_show_flags[i])
PlotIndexSetInteger(i, PLOT_DRAW_TYPE, DRAW_NONE); PlotIndexSetInteger(i, PLOT_DRAW_TYPE, DRAW_NONE);
} }
@@ -252,23 +269,25 @@ void DrawDashboard(int last_idx)
} }
int x_base = 10; int x_base = 10;
int x_step = 105; int x_step = 95;
int y_pos = 20; int y_pos = 20;
int drawn_count = 0; int drawn_count = 0;
for(int i=0; i<8; i++) for(int i=0; i<8; i++)
{ {
int idx = indices[i]; int idx = indices[i];
if(g_symbols[idx] == "")
continue; // Skip empty slots // Skip empty OR disabled slots
if(g_symbols[idx] == "" || !g_show_flags[idx])
continue;
string name = g_prefix + "Label_" + IntegerToString(i); string name = g_prefix + "Label_" + IntegerToString(i);
string val_str; string val_str;
if(values[idx] == 0.0 && (Buf1[last_idx] == EMPTY_VALUE)) // Check if it was truly empty if(values[idx] == 0.0 && (Buf1[last_idx] == EMPTY_VALUE))
val_str = "N/A"; val_str = "N/A";
else else
val_str = StringFormat("%.3f%%", values[idx]); // 3 decimals val_str = StringFormat("%.3f%%", values[idx]);
string text = StringFormat("%s: %s", g_symbols[idx], val_str); string text = StringFormat("%s: %s", g_symbols[idx], val_str);