11#property copyright " EarnForex.com"
22#property link " https://www.earnforex.com/metatrader-expert-advisors/AutoTrading-Scheduler/"
3- #property version " 1.04 "
4- string Version = " 1.04 " ;
3+ #property version " 1.05 "
4+ string Version = " 1.05 " ;
55#property strict
66
77#property description " Creates a weekly schedule when AutoTrading is enabled."
@@ -36,6 +36,8 @@ input bool WaitForNoPositions = false; // Switch A/T off only when there are no
3636input bool WaitForNoOrders = false ; // Switch A/T off only when there are no pending orders?
3737input string MagicNumbersFilter = " " ; // Magic numbers filter
3838input bool IgnoreMagicNumbers = false ; // Ignore trades with above-listed magic numbers
39+ input ENUM_WHAT_TO_CLOSE WhatToClose = WTC_ALL ; // If attempting to close trades, what to close?
40+ input bool DarkMode = false ; // DarkMode: Enable dark mode for a less bright panel.
3941
4042CScheduler Panel ;
4143
@@ -47,6 +49,23 @@ long MagicNumbers_array[];
4749//+------------------------------------------------------------------+
4850int OnInit ()
4951{
52+ if (DarkMode )
53+ {
54+ CONTROLS_EDIT_COLOR_ENABLE = DARKMODE_EDIT_BG_COLOR ;
55+ CONTROLS_EDIT_COLOR_DISABLE = 0x999999 ;
56+ CONTROLS_BUTTON_COLOR_ENABLE = DARKMODE_BUTTON_BG_COLOR ;
57+ CONTROLS_BUTTON_COLOR_DISABLE = 0x919999 ;
58+ }
59+ else
60+ {
61+ CONTROLS_EDIT_COLOR_ENABLE = C'255,255,255' ;
62+ CONTROLS_EDIT_COLOR_DISABLE = C'221,221,211' ;
63+ CONTROLS_BUTTON_COLOR_ENABLE = C'200,200,200' ;
64+ CONTROLS_BUTTON_COLOR_DISABLE = C'224,224,224' ;
65+ }
66+
67+ Panel .InitVariables ();
68+
5069 if (DeinitializationReason != REASON_CHARTCHANGE )
5170 {
5271 if (!Panel .LoadSettingsFromDisk ())
@@ -82,7 +101,60 @@ int OnInit()
82101
83102 ProcessMagicNumbers ();
84103
85- EventSetTimer (1 );
104+ if (DarkMode )
105+ {
106+ int total = ObjectsTotal (ChartID ());
107+ for (int i = 0 ; i < total ; i ++)
108+ {
109+ string obj_name = ObjectName (ChartID (), i );
110+ if (StringSubstr (obj_name , 0 , StringLen (Panel .Name ())) != Panel .Name ()) continue ; // Skip non-panel objects.
111+ if (obj_name == Panel .Name () + " Back" )
112+ {
113+
114+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_BG_DARK_COLOR );
115+ }
116+ if (obj_name == Panel .Name () + " Caption" )
117+ {
118+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_BG_DARK_COLOR );
119+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , DARKMODE_CONTROL_BRODER_COLOR );
120+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BORDER_COLOR , DARKMODE_BG_DARK_COLOR );
121+ }
122+ else if (obj_name == Panel .Name () + " ClientBack" )
123+ {
124+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , DARKMODE_MAIN_AREA_BORDER_COLOR );
125+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_MAIN_AREA_BG_COLOR );
126+ }
127+ else if (StringSubstr (obj_name , 0 , StringLen (Panel .Name () + " m_Edt" )) == Panel .Name () + " m_Edt" )
128+ {
129+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_EDIT_BG_COLOR );
130+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BORDER_COLOR , DARKMODE_CONTROL_BRODER_COLOR );
131+ }
132+ else if (StringSubstr (obj_name , 0 , StringLen (Panel .Name () + " m_Btn" )) == Panel .Name () + " m_Btn" )
133+ {
134+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_BUTTON_BG_COLOR );
135+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BORDER_COLOR , DARKMODE_CONTROL_BRODER_COLOR );
136+ }
137+ else if (StringSubstr (obj_name , 0 , StringLen (Panel .Name () + " m_Chk" )) == Panel .Name () + " m_Chk" )
138+ {
139+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , DARKMODE_TEXT_COLOR );
140+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_MAIN_AREA_BG_COLOR );
141+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BORDER_COLOR , DARKMODE_MAIN_AREA_BG_COLOR );
142+ }
143+ else if (StringSubstr (obj_name , 0 , StringLen (Panel .Name () + " m_Rgp" )) == Panel .Name () + " m_Rgp" )
144+ {
145+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , DARKMODE_TEXT_COLOR );
146+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BGCOLOR , DARKMODE_MAIN_AREA_BG_COLOR );
147+ ObjectSetInteger (ChartID (), obj_name , OBJPROP_BORDER_COLOR , DARKMODE_MAIN_AREA_BG_COLOR );
148+ }
149+ else
150+ {
151+ if (obj_name == Panel .Name () + " m_LblURL" ) ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , 0x224400 );
152+ else ObjectSetInteger (ChartID (), obj_name , OBJPROP_COLOR , DARKMODE_TEXT_COLOR );
153+ }
154+ }
155+ }
156+
157+ EventSetMillisecondTimer (200 ); // High-resolution timer to accommodate seconds in the schedule.
86158
87159 return INIT_SUCCEEDED ;
88160}
0 commit comments