protected override void OnBarUpdate() { if (CurrentBars[0] <= BarsRequiredToPlot) { return; } //Reset profile on session week or day. if (IsFirstTickOfBar && ResetProfileOn != Timeframe.Never) { DateTime previous = sessionIterator.GetTradingDay(Time[1]); DateTime current = sessionIterator.GetTradingDay(Time[0]); //Reset profile on daily basis. if (ResetProfileOn == Timeframe.Session && !current.DayOfWeek.Equals(previous.DayOfWeek)) { myProfile = new Profile(); } //Reset profile on weekly basis. else if (ResetProfileOn == Timeframe.Week && current.DayOfWeek.CompareTo(previous.DayOfWeek) < 0) { myProfile = new Profile(); } //Reset profile on monthly basis. else if (ResetProfileOn != Timeframe.Month && !current.Month.Equals(previous.Month)) { myProfile = new Profile(); } } }