TimeFiltersNumberEnum Ninjatrader

https://pastecode.io/s/2mj8xbbw https://pastecode.io/s/ow7sge2r https://pastecode.io/s/2mj8xbbw https://ninjatraderecosystem.com/user-app-share-download/renko-trader-bot-semi-automatic-with-interface-and-higher-time-frame-filter/
 avatar
unknown
csharp
9 months ago
3.9 kB
9
No Index

    public class RenkoTrader : Indicator
	{

        List<TimeFilter> timeFilters = new List<TimeFilter>();
        

/////////////////


		protected override void OnStateChange()
		{
			

            else if (State == State.DataLoaded)
            {


                timeFilters.Add(new TimeFilter(StartTime1, EndTime1, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._1 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._2
                                                                                        || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
                timeFilters.Add(new TimeFilter(StartTime2, EndTime2, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._2 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
                timeFilters.Add(new TimeFilter(StartTime3, EndTime3, TimeFilterEnabled && (TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._3 || TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4)));
                timeFilters.Add(new TimeFilter(StartTime4, EndTime4, TimeFilterEnabled && TimeFiltersNumber == RenkoTraderEnums.TimeFiltersNumberEnum._4));
        

/////////////////


        #region TimeFilterClass

        public class TimeFilter
        {
            public TimeSpan StartTime { get; set; }
            public TimeSpan EndTime { get; set; }

            public bool Enabled { get; set; }

            public TimeFilter(TimeSpan StartTime, TimeSpan EndTime, bool Enabled)
            {
                this.StartTime = StartTime;
                this.Enabled = Enabled;
                this.EndTime = EndTime;
            }

            public bool IsValidTime(DateTime time)
            {
                TimeSpan dayTime = time.TimeOfDay;
                if (StartTime < EndTime)
                {
                    if (dayTime >= StartTime && dayTime <= EndTime)
                        return (true);
                }
                else if (StartTime > EndTime)
                {
                    if (dayTime >= StartTime || dayTime <= EndTime)
                    {
                        return (true);
                    }
                }
                else
                {
                    return (true);
                }

                return (false);
            }
        }

        bool IsNewTime(DateTime time0, DateTime time1)
        {
            if (timeFilters.Count == 0)
            {
                if (BarsArray[0].IsFirstBarOfSession)
                {
                    return true;
                }
            }

            for (int i = 0; i < timeFilters.Count; i++)
            {
                if (time0.TimeOfDay > timeFilters[i].StartTime && time1.TimeOfDay <= timeFilters[i].EndTime)
                {
                    return true;
                    break;
                }
            }



            return false;
        }

        bool IsValidTime(DateTime time)
        {
            int disabledCount = 0;

            for (int i = 0; i < timeFilters.Count; i++)
            {

                if (!timeFilters[i].Enabled)
                {
                    disabledCount++;
                    continue;
                }
                if (timeFilters[i].Enabled)
                {

                    if (timeFilters[i].IsValidTime(time))
                        return (true);
                }
            }


            if (disabledCount == timeFilters.Count)
                return (true);

            return (false);
        }

        #endregion
        

/////////////////


namespace RenkoTraderEnums
{
    public enum TimeFiltersNumberEnum { _1, _2, _3, _4 };


}
Editor is loading...
Leave a Comment