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/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