Day Separator and Session Lighter free

by Capt.Z-Fort.Builder in category Other at 05/06/2022
Description

 New update ver 1.09:

  • Draw vertical lines as day separators;
  • Draw background colour to highlight sessions;
  • User can set start and end day numbers and times;
  • User can set the colour of the session background and separators;
  • User can set highlight gridlines by 5 min, (4) hourly at different timeframes;
  • User can turn on/off background colour for each month;
  • Framework .NET 6.0 ready, Source code is compatible with .NET 4.0; 

Note: The attachment .algo is compiled by .NET6.0, to run with the old version (4.1.17), please copy the source code and compile it at the cTrader version to fit your environment.

Interested in the currency strength meter in the chart?
Get the free download link at Telegram Group: cTrader FOREX Club

Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
Formula / Source Code
Language: C#
Trading Platform: cAlgocTrader
using System;
using System.Linq;
using System.Globalization;
using cAlgo.API;

//v1.01 Add Function: Day-Separator time setting;
//v1.02 Add Function: Setting Day-Separator Start-End as days range;
//v1.03 Add Function: Session Lither to highlight market sessions;
//v1.04 Add Function: User can set start and end time for each session;
//v1.05 Optimise    : Session background color up to Y-axis ±9999;
//v1.06 Optimise    : CodeStructure, User can set each session start and end;
//v1.07 Add Function: User can set color for each sessions;
//v1.08 Add Function: User can set Session Lighter On/Off in setting;
//v1.09 Add Function: User can set 5Min 1, 4Hour Gridlines On/Off; Month Lighter On/Off;
//      Optimise    : Framework .NET 6.0 ready;

namespace cAlgo
{
    [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class FXDaySeperatorNet6 : Indicator
    { 
        [Parameter("Day-Start Time:",   DefaultValue = "22:00:00",          Group = "Day Separator (Ver. 1.09)" )]  public string   DayStartTime    { get; set; }
        [Parameter("Days-Start From: ", DefaultValue = 365, MinValue = 0,   Group = "Day Separator (Ver. 1.09)" )]  public int      DaysStart       { get; set; }
        [Parameter("Days-End Till:",    DefaultValue = 7,   MinValue = 0,   Group = "Day Separator (Ver. 1.09)" )]  public int      DaysEnd         { get; set; }
        [Parameter("Hex Color Code",    DefaultValue = "#15FFFFFF",         Group = "Day Separator (Ver. 1.09)" )]  public string   DaySepColor     { get; set; }
        
        [Parameter("Min,Hour Gridlines",DefaultValue = true,                Group = "Others"                    )]  public bool     MinHorLne       { get; set; }
        [Parameter("Month Lighter",     DefaultValue = false,               Group = "Others"                    )]  public bool     MnthLit         { get; set; }

        [Parameter("Lighten  Past   Days",  DefaultValue = 5, MaxValue = 30, MinValue = 0, Step = 1,    Group = "Session Ligther")]  public int  PastDaysNumber { get; set; }
        [Parameter("Lighten Future Days",   DefaultValue = 1, MaxValue =  7, MinValue = 0, Step = 1,    Group = "Session Ligther")]  public int  FutrDaysNumber { get; set; }
        [Parameter("Longest TimeFrame",     DefaultValue = "Minute5",                                   Group = "Session Ligther")]  public TimeFrame LgstTmFrm { get; set; }
        [Parameter("Active",                DefaultValue = true,                                        Group = "Session Ligther")]  public bool LiterOn { get; set; }

        [Parameter("Last Evening Start",    DefaultValue = "21:00:00",      Group = "Break Period"  )]  public string   PZ1S    { get; set; }
        [Parameter("Last Evening End",      DefaultValue = "23:59:59",      Group = "Break Period"  )]  public string   PZ1E    { get; set; }
        [Parameter("Hex Color Code",        DefaultValue = "#15FF0000",     Group = "Break Period"  )]  public string   PZ1CL   { get; set; }   //DarkRed Break Period
        [Parameter("Night Start",           DefaultValue = "00:00:00",      Group = "Break Period"  )]  public string   PZ2S    { get; set; }
        [Parameter("Night End",             DefaultValue = "04:30:00",      Group = "Break Period"  )]  public string   PZ2E    { get; set; }
        [Parameter("Hex Color Code",        DefaultValue = "#15FF0000",     Group = "Break Period"  )]  public string   PZ2CL   { get; set; }   //DarkRed Break Period

        [Parameter("PreHeat.am Start",      DefaultValue = "04:30:00",      Group = "Morning Trade" )]  public string   PH1S    { get; set; }
        [Parameter("PreHeat.am End",        DefaultValue = "07:00:00",      Group = "Morning Trade" )]  public string   PH1E    { get; set; }
        [Parameter("PreHeat.am Color",      DefaultValue = "#1500FF00",     Group = "Morning Trade" )]  public string   PH1CL   { get; set; }   //DarkGrn PreHeat Period
        [Parameter("PeakTime.am Start",     DefaultValue = "07:00:00",      Group = "Morning Trade" )]  public string   PK1S    { get; set; }
        [Parameter("PeakTime.am End",       DefaultValue = "11:00:00",      Group = "Morning Trade" )]  public string   PK1E    { get; set; }
        [Parameter("PeakTime.am Color",     DefaultValue = "#15FFFF00",     Group = "Morning Trade" )]  public string   PK1CL   { get; set; }   //DarkYlw PeakHours

        [Parameter("PreHeat.pm Start",      DefaultValue = "11:00:00",      Group = "Afternoon Deal")]  public string   PH2S    { get; set; }
        [Parameter("PreHeat.pm End",        DefaultValue = "13:30:00",      Group = "Afternoon Deal")]  public string   PH2E    { get; set; }
        [Parameter("PreHeat.pm Color",      DefaultValue = "#1500FF00",     Group = "Afternoon Deal")]  public string   PH2CL   { get; set; }   //DarkGrn PreHeat Period
        [Parameter("PeakTime.pm Start",     DefaultValue = "13:30:00",      Group = "Afternoon Deal")]  public string   PK2S    { get; set; }
        [Parameter("PeakTime.pm End",       DefaultValue = "18:00:00",      Group = "Afternoon Deal")]  public string   PK2E    { get; set; }
        [Parameter("PeakTime.pm Color",     DefaultValue = "#15FFFF00",     Group = "Afternoon Deal")]  public string   PK2CL   { get; set; }   //DarkYlw PeakHours

        private Bars Seires_D1;     //Bars to load TF.Daily
        private DateTime LstStart;  //Time of LastTradingDayStart
        private DateTime DayStart;  //Time of DayStart
        private DateTime DayEnd;    //Time of DayEnd

        private readonly string pfx_DySp = "DaySep_",   fmt_DySp = "yyyy-MM-dd ";   //DaySeparator  : NamePrefix, ObjectName format;
        private readonly string pfx_PZ1 = "PZ#1_",      pfx_PZ2 = "PZ#2_";          //SessionLighter: NamePrefix;
        private readonly string pfx_PH1 = "PH#1_",      pfx_PK1 = "PK#1_";
        private readonly string pfx_PH2 = "PH#2_",      pfx_PK2 = "PK#2_"; 


        protected override void Initialize()
        {
            //Get TF.Day1 Bars
            Seires_D1 = MarketData.GetBars(TimeFrame.Daily);
            LstStart = Seires_D1.Last(1).OpenTime;
            DayStart = Seires_D1.LastBar.OpenTime;
            DayEnd = DayStart.AddDays(1);

            //Plot DaySeparator (-365 ~ +7 Days) of all TimeFrame      
            PlotDaySeprt();

            //Plot WokingHour on TradingDays
            PlotDayLight(); 
            
            //Plot MonthLighter on HalfYearChart
            PlotMthLight();

            //Plot Intraday VerticalLines
            DrawIntradayVertLnes();
            Bars.BarOpened += Bars_BarOpened;

            //Chart.DrawStaticText("Debug", TFGroup(TimeFrame), VerticalAlignment.Bottom, HorizontalAlignment.Center, Color.FromHex("AAEEDDCC")); 
        }

        public override void Calculate(int index)
        {   

        }
        
        //ChartControl  - NewBar to Plot Intraday VerticalLines
        private void Bars_BarOpened(BarOpenedEventArgs obj)
        { 
            if (Seires_D1.LastBar.OpenTime > DayStart)
            {
                LstStart = Seires_D1.Last(1).OpenTime;
                DayStart = Seires_D1.LastBar.OpenTime;
                DayEnd = DayStart.AddDays(1);
                DrawIntradayVertLnes();
            }

        }

        //Plot DaySeparator 
        private void PlotDaySeprt() //On Past365 + Next7 EveryDay(include weekend), of all TimeFrame;
        {
            Color cl_DaySep = Color.FromHex(DaySepColor);                                                                                           //Convert Color code to Color
            DateTime dt_TdySepHr = DateTime.Parse(DateTime.Today.ToString(fmt_DySp) + DayStartTime).Add(-Application.UserTimeOffset);               //Get SplitTime Today, and Convert UserTime to ServerTime;
            for (DateTime crntDay = (dt_TdySepHr.AddDays(-DaysStart)); crntDay <= (dt_TdySepHr.AddDays(+DaysEnd)); crntDay = crntDay.AddDays(1))    //Separator Past365 ~ Next7 Days
            { Chart.DrawVerticalLine(pfx_DySp+crntDay.ToString(fmt_DySp), crntDay, cl_DaySep, 1, LineStyle.Solid); }                                //Plot VerticalLines

        }

        //Plot SessionLighter on TradingDays
        private void PlotDayLight() 
        {
            //Plot only in TimeFrame shorter than Setting 
            if ( !LiterOn || TimeFrame > LgstTmFrm ) return;

            //Define Parameters for and WorkHour Highlight: DateTime of FirstDate, LastDate;  
            DateTime startDate = (Bars.LastBar.OpenTime.AddDays(-PastDaysNumber)).Date; DayOfWeek FDoW = startDate.DayOfWeek;
            startDate = (FDoW==DayOfWeek.Saturday) ? startDate.AddDays(-1) : (FDoW==DayOfWeek.Sunday) ? startDate.AddDays(-2) : startDate; //Move startDate Friday, if allocated in Weekend
            DateTime last_Date = (Bars.LastBar.OpenTime.AddDays(+FutrDaysNumber)).Date; DayOfWeek LDoW = last_Date.DayOfWeek;
            last_Date = (LDoW==DayOfWeek.Saturday) ? last_Date.AddDays(+2) : (FDoW==DayOfWeek.Sunday) ? last_Date.AddDays(+1) : last_Date; //Move last_Date Monday, if allocated in Weekend

            //Define color for each working period
            Color cl_PZ1 = Color.FromHex(PZ1CL), cl_PZ2 = Color.FromHex(PZ2CL);     //DarkRed Break Period
            Color cl_PH1 = Color.FromHex(PH1CL), cl_PH2 = Color.FromHex(PH2CL);     //DarkGrn PreHeat Period
            Color cl_PK1 = Color.FromHex(PK1CL), cl_PK2 = Color.FromHex(PK2CL);     //DarkYlw PeakHours

            //Prefix of each working period
            //Get startDate in string format
            string s_fstDay = startDate.ToString(fmt_DySp);     

            //Fix FirstDayTime for X1, X2 positions of all Periods 
            DateTime dt_PZ1S = DateTime.Parse(s_fstDay + PZ1S).Add(-Application.UserTimeOffset).AddDays(-1), dt_PZ1E = DateTime.Parse(s_fstDay + PZ1E).Add(-Application.UserTimeOffset).AddDays(-1);    //BreakPeriod#1 StartTime, EndTime
            DateTime dt_PZ2S = DateTime.Parse(s_fstDay + PZ2S).Add(-Application.UserTimeOffset)            , dt_PZ2E = DateTime.Parse(s_fstDay + PZ2E).Add(-Application.UserTimeOffset)            ;    //BreakPeriod#2 StartTime, EndTime
            DateTime dt_PH1S = DateTime.Parse(s_fstDay + PH1S).Add(-Application.UserTimeOffset)            , dt_PH1E = DateTime.Parse(s_fstDay + PH1E).Add(-Application.UserTimeOffset)            ;    //PreHeat    #1 StartTime, EndTime
            DateTime dt_PK1S = DateTime.Parse(s_fstDay + PK1S).Add(-Application.UserTimeOffset)            , dt_PK1E = DateTime.Parse(s_fstDay + PK1E).Add(-Application.UserTimeOffset)            ;    //PeakTime   #1 StartTime, EndTime
            DateTime dt_PH2S = DateTime.Parse(s_fstDay + PH2S).Add(-Application.UserTimeOffset)            , dt_PH2E = DateTime.Parse(s_fstDay + PH2E).Add(-Application.UserTimeOffset)            ;    //PreHeat    #2 StartTime, EndTime
            DateTime dt_PK2S = DateTime.Parse(s_fstDay + PK2S).Add(-Application.UserTimeOffset)            , dt_PK2E = DateTime.Parse(s_fstDay + PK2E).Add(-Application.UserTimeOffset)            ;    //PeakTime   #2 StartTime, EndTime

            //Initialize X1, X2 Positions of all Periods - Vars. to Plot
            DateTime dt_pz1s = dt_PZ1S, dt_pz1e = dt_PZ1E; 
            DateTime dt_pz2s = dt_PZ2S, dt_pz2e = dt_PZ2E; 
            DateTime dt_ph1s = dt_PH1S, dt_ph1e = dt_PH1E;
            DateTime dt_pk1s = dt_PK1S, dt_pk1e = dt_PK1E;
            DateTime dt_ph2s = dt_PH2S, dt_ph2e = dt_PH2E;
            DateTime dt_pk2s = dt_PK2S, dt_pk2e = dt_PK2E;

            //Initialize Accumulator
            int i = 0;

            //Day by Day plot Retangles
            for ( DateTime crntme = startDate; crntme <= last_Date; crntme = startDate.AddDays(i) ) 
            {   
                if ( crntme.DayOfWeek != DayOfWeek.Saturday && crntme.DayOfWeek != DayOfWeek.Sunday ) //Skip Weekend
                {
                    //Reset Ploting X1 X2 DateTime
                    dt_pz1s = dt_PZ1S.AddDays(i); dt_pz1e = dt_PZ1E.AddDays(i); if (dt_pz1s.DayOfWeek == DayOfWeek.Sunday) {dt_pz1s = dt_pz1s.AddDays(-2);}  //Move Start from Sunday evening to Friday evening;
                    dt_pz2s = dt_PZ2S.AddDays(i); dt_pz2e = dt_PZ2E.AddDays(i);
                    dt_ph1s = dt_PH1S.AddDays(i); dt_ph1e = dt_PH1E.AddDays(i);
                    dt_pk1s = dt_PK1S.AddDays(i); dt_pk1e = dt_PK1E.AddDays(i);
                    dt_ph2s = dt_PH2S.AddDays(i); dt_ph2e = dt_PH2E.AddDays(i);
                    dt_pk2s = dt_PK2S.AddDays(i); dt_pk2e = dt_PK2E.AddDays(i);
                    //Plot the Rectangles (BreakPeriods, PreHeatPeriods, PeakHours)
                    ChartRectangle rt_PzN1 = Chart.DrawRectangle(pfx_PZ1 + dt_pz1s, dt_pz1s, -9999, dt_pz1e, 9999, cl_PZ1, 0, LineStyle.DotsVeryRare); rt_PzN1.IsFilled = true;
                    ChartRectangle rt_PzN2 = Chart.DrawRectangle(pfx_PZ2 + dt_pz2s, dt_pz2s, -9999, dt_pz2e, 9999, cl_PZ2, 0, LineStyle.DotsVeryRare); rt_PzN2.IsFilled = true; 
                    ChartRectangle rt_PhN1 = Chart.DrawRectangle(pfx_PH1 + dt_ph1s, dt_ph1s, -9999, dt_ph1e, 9999, cl_PH1, 0, LineStyle.DotsVeryRare); rt_PhN1.IsFilled = true; 
                    ChartRectangle rt_PkN1 = Chart.DrawRectangle(pfx_PK1 + dt_pk1s, dt_pk1s, -9999, dt_pk1e, 9999, cl_PK1, 0, LineStyle.DotsVeryRare); rt_PkN1.IsFilled = true; 
                    ChartRectangle rt_PhN2 = Chart.DrawRectangle(pfx_PH2 + dt_ph2s, dt_ph2s, -9999, dt_ph2e, 9999, cl_PH2, 0, LineStyle.DotsVeryRare); rt_PhN2.IsFilled = true; 
                    ChartRectangle rt_PkN2 = Chart.DrawRectangle(pfx_PK2 + dt_pk2s, dt_pk2s, -9999, dt_pk2e, 9999, cl_PK2, 0, LineStyle.DotsVeryRare); rt_PkN2.IsFilled = true; 
                }
                //Next Day
                i++;
            }

        }

        //Plot MonthLighter on HalfYearChart
        private void PlotMthLight()
        {
            if (!MnthLit) return;
            int yr = DayStart.Year;
            ChartRectangle rt_Jan = Chart.DrawRectangle("M-Jan", new DateTime(yr, 1, 1, 0, 0, 0), -9999, new DateTime(yr, 2, 1, 0, 0, 0), 9999, Color.FromHex("103333FF"), 0, LineStyle.Solid); rt_Jan.IsFilled = true;
            ChartRectangle rt_Feb = Chart.DrawRectangle("M-Feb", new DateTime(yr, 2, 1, 0, 0, 0), -9999, new DateTime(yr, 3, 1, 0, 0, 0), 9999, Color.FromHex("10AAAAAA"), 0, LineStyle.Solid); rt_Feb.IsFilled = true;
            ChartRectangle rt_Mar = Chart.DrawRectangle("M-Mar", new DateTime(yr, 3, 1, 0, 0, 0), -9999, new DateTime(yr, 4, 1, 0, 0, 0), 9999, Color.FromHex("10AAFFAA"), 0, LineStyle.Solid); rt_Mar.IsFilled = true;
            ChartRectangle rt_Apr = Chart.DrawRectangle("M-Apr", new DateTime(yr, 4, 1, 0, 0, 0), -9999, new DateTime(yr, 5, 1, 0, 0, 0), 9999, Color.FromHex("1033FF33"), 0, LineStyle.Solid); rt_Apr.IsFilled = true;
            ChartRectangle rt_May = Chart.DrawRectangle("M-May", new DateTime(yr, 5, 1, 0, 0, 0), -9999, new DateTime(yr, 6, 1, 0, 0, 0), 9999, Color.FromHex("1000FFAA"), 0, LineStyle.Solid); rt_May.IsFilled = true;
            ChartRectangle rt_Jun = Chart.DrawRectangle("M-Jun", new DateTime(yr, 6, 1, 0, 0, 0), -9999, new DateTime(yr, 7, 1, 0, 0, 0), 9999, Color.FromHex("1055FFFF"), 0, LineStyle.Solid); rt_Jun.IsFilled = true;
            ChartRectangle rt_Jul = Chart.DrawRectangle("M-Jul", new DateTime(yr, 7, 1, 0, 0, 0), -9999, new DateTime(yr, 8, 1, 0, 0, 0), 9999, Color.FromHex("10AAEE55"), 0, LineStyle.Solid); rt_Jul.IsFilled = true;
            ChartRectangle rt_Aug = Chart.DrawRectangle("M-Aug", new DateTime(yr, 8, 1, 0, 0, 0), -9999, new DateTime(yr, 9, 1, 0, 0, 0), 9999, Color.FromHex("10FFFF00"), 0, LineStyle.Solid); rt_Aug.IsFilled = true; 
            ChartRectangle rt_Sep = Chart.DrawRectangle("M-Sep", new DateTime(yr, 9, 1, 0, 0, 0), -9999, new DateTime(yr,10, 1, 0, 0, 0), 9999, Color.FromHex("10FF9900"), 0, LineStyle.Solid); rt_Sep.IsFilled = true; 
            ChartRectangle rt_Oct = Chart.DrawRectangle("M-Oct", new DateTime(yr,10, 1, 0, 0, 0), -9999, new DateTime(yr,11, 1, 0, 0, 0), 9999, Color.FromHex("10FF3377"), 0, LineStyle.Solid); rt_Oct.IsFilled = true; 
            ChartRectangle rt_Nov = Chart.DrawRectangle("M-Nov", new DateTime(yr,11, 1, 0, 0, 0), -9999, new DateTime(yr,12, 1, 0, 0, 0), 9999, Color.FromHex("10EE11AA"), 0, LineStyle.Solid); rt_Nov.IsFilled = true; 
            ChartRectangle rt_Dec = Chart.DrawRectangle("M-Dec", new DateTime(yr,12, 1, 0, 0, 0), -9999, new DateTime(yr,12,31,23,59,59), 9999, Color.FromHex("10AAAAFF"), 0, LineStyle.Solid); rt_Dec.IsFilled = true; 
        }

        //Plot 5Mins, 1-4Hour on(Today and Yesterday) <=80Tick, 250Tick, 1000Tick TimeFrame
        private void DrawIntradayVertLnes()
        {
            if (!MinHorLne) return;
            string TFGroup = new string(TimeFrame.ToString().Take(4).ToArray()); //Get TimeFrame GroupName
            if (TFGroup == "Tick" && TimeFrame <= TimeFrame.Tick80)
            {
                for (DateTime currentTime = DayStart; currentTime <= DayEnd; currentTime = currentTime.AddMinutes(5))
                {
                    DateTime dt5MinMkr = currentTime; string s5MinMkr = string.Format("5Min_VertLnes {0}", dt5MinMkr);  //Time of 5Min Seperator Marker, Line ObjectName
                    Chart.DrawVerticalLine(s5MinMkr, dt5MinMkr, clrTikMkr(DayStart, dt5MinMkr), 1, LineStyle.Solid);
                }
            }
            else if (TimeFrame.ToString() == "Tick250")
            {
                for (DateTime currentTime = DayStart; currentTime <= DayEnd; currentTime = currentTime.AddHours(1))
                {
                    DateTime dt1hrMkr = currentTime; string s1hrMkr = string.Format("1Hour_VertLnes {0}", dt1hrMkr);    //Time of 1hour Seperator Marker, Line ObjectName
                    Chart.DrawVerticalLine(s1hrMkr, dt1hrMkr, clrTikMkr(DayStart, dt1hrMkr), 1, LineStyle.Solid);
                }
            }
            else if (TimeFrame.ToString() == "Tick1000" || TimeFrame.ToString() == "Minute5")
            {
                for (DateTime currentTime = LstStart; currentTime <= DayStart; currentTime = currentTime.AddHours(4))   //2 Days ago
                {
                    DateTime dt4hrMkr = currentTime; string s4hrMkr = string.Format("4Hour_VertLnes {0}", dt4hrMkr);    //Time of 4Hour Seperator Marker, Line ObjectName
                    Chart.DrawVerticalLine(s4hrMkr, dt4hrMkr, clrTikMkr(LstStart, dt4hrMkr), 1, LineStyle.Solid);
                }
                for (DateTime currentTime = DayStart; currentTime <= DayEnd; currentTime = currentTime.AddHours(4))     //1 Day ago
                {
                    DateTime dt4hrMkr = currentTime; string s4hrMkr = string.Format("4Hour_VertLnes {0}", dt4hrMkr);    //Time of 4Hour Seperator Marker, Line ObjectName
                    Chart.DrawVerticalLine(s4hrMkr, dt4hrMkr, clrTikMkr(DayStart, dt4hrMkr), 1, LineStyle.Solid);
                }
            }
        }
        //Define 5Min 1-4Hour Seperator's Colour
        private Color clrTikMkr(DateTime dt_St, DateTime dtTMkr) 
        {
            if      (dtTMkr == dt_St              || dtTMkr == dt_St.AddHours( 1) || dtTMkr == dt_St.AddHours( 2) || dtTMkr == dt_St.AddHours( 3) ) { return Color.FromHex("#667788FF"); } //DarkBlue
            else if (dtTMkr == dt_St.AddHours( 4) || dtTMkr == dt_St.AddHours( 5) || dtTMkr == dt_St.AddHours( 6) || dtTMkr == dt_St.AddHours( 7) ) { return Color.FromHex("#AA7788FF"); } //LightBlue

            else if (dtTMkr == dt_St.AddHours( 8) || dtTMkr == dt_St.AddHours( 9) || dtTMkr == dt_St.AddHours(10) || dtTMkr == dt_St.AddHours(11) ) { return Color.FromHex("#AA99FF99"); } //MorningGreen
            else if (dtTMkr == dt_St.AddHours(12) || dtTMkr == dt_St.AddHours(13) || dtTMkr == dt_St.AddHours(14) || dtTMkr == dt_St.AddHours(15) ) { return Color.FromHex("#6699FF99"); } //MorningNoon

            else if (dtTMkr == dt_St.AddHours(16) || dtTMkr == dt_St.AddHours(17) || dtTMkr == dt_St.AddHours(18) || dtTMkr == dt_St.AddHours(19) ) { return Color.FromHex("#AAFF7777"); } //AfternoonFight
            else if (dtTMkr == dt_St.AddHours(20) || dtTMkr == dt_St.AddHours(21) || dtTMkr == dt_St.AddHours(22) || dtTMkr == dt_St.AddHours(23) ) { return Color.FromHex("#66FF7777"); } //AfternoonToEnd

            else { return Color.FromHex("#15FFFFFF"); } //5min Grey
        }

    }

}
Comments

ledonna66 - June 06, 2022 @ 07:57

I have been looking for this information for a long time, thank you very much, the information in the article has helped me a lot in my work. <a href="https://quordle.onl/">quordle</a> <a href="https://wafflegame.co/">waffle game</a>

ledonna66 - June 06, 2022 @ 07:58

Mình tìm kiếm thông tin này cũng lâu rồi, cảm ơn bạn rất nhiều, thông tin trong bài đã giúp ích cho mình rất nhiều trong công việc. waffle gamequordle

maiharrison000 - June 06, 2022 @ 14:37

Usually an great web journal which i am attending to investigate and presently at this time i have pick up a ace work from your web journal. Such a well logical and mens biker leather jackets enlightening words have composed in this page. keep posting assist like this.

among012a - June 08, 2022 @ 13:22

Great article. provide me with a lot of useful and timely information.

coloring pages

edwardssheppard - June 13, 2022 @ 09:41

great article! it is very informative. thanks for sharing to us. 

slope 2 unblocked 

nobit2021 - July 04, 2022 @ 11:11

Your writing is excellent, so allow me to share a little of myself. One of the best available limitless running games is poppy playtime. Control your ball as you compete in a fast ramp race to see how far you can climb the leaderboard.

steveehruby - July 06, 2022 @ 10:22

If you want to learn to code, you should always keep learning, even when you're working full time. C is a good thing for you to learn. C is similar to C++, so you won't have to relearn from the beginning. It's one of the basic of programming language. Here you will learn about day separator and session lighter in C. Source pay someone to do my essay for me

i.smirnou - September 08, 2022 @ 23:34

Thank you for these kind words and for downloading the cTrader FOREX Club Telegram Group. We really appreciate it! It is great to see people using the tools to help with their trading. If there is anything else we can do for you please contact Andersen. Andersen is a software programming company that specializes in developing software for businesses of all sizes. The company was founded in 2007, and Andersen has since grown to become one of the leading software development firms in the world.

junealexis001 - September 12, 2022 @ 12:06

Interesting  site i love it keep posting more!   https://newbraunfelsfencecompany.com

pa705087 - September 23, 2022 @ 08:54

What if there was a platform where you could instantly unbox any or all mystery boxes and win a prize? Not only that, but you can get a shopping location to visit right now - today - in the next minute - right now - in addition to exciting prizes and perks! Yup!

https://ello.co/henlyjames/post/opiiauat1eyzligbhshhbq

5