コード例 #1
0
        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();
                }
            }
        }