private void CreateDateGroups() { var weekly = from q in AlsiUtils.Data_Objects.GlobalObjects.Points group q by new { Y = q.TimeStamp.Year, M = q.TimeStamp.Month, W = Math.Floor((decimal)q.TimeStamp.DayOfYear / 30) + 1, //D=(DateTime)q.TimeStamp } into FGroup orderby FGroup.Key.Y, FGroup.Key.M, FGroup.Key.W select new { Year = FGroup.Key.Y, Month = FGroup.Key.M, Week = FGroup.Key.W, FirstTradeDate = FGroup.First().TimeStamp, LastTradeDate = FGroup.Last().TimeStamp, //AvPrice = (double)FGroup.Where(z => z.Reason == Trade.Trigger.CloseShort || z.Reason == Trade.Trigger.CloseLong) // .Average(t => t.RunningProfit), //SumPrice = (int)FGroup.Where(z => z.Reason == Trade.Trigger.CloseShort || z.Reason == Trade.Trigger.CloseLong) //.Sum(t => t.RunningProfit), //marketmovement = (FGroup.Last().CurrentPrice) - (FGroup.First().CurrentPrice), //Prices = FGroup.Select(z => z.CurrentPrice), }; foreach (var v in weekly) { Console.WriteLine("Year {0} Month {1} Week {2} Start {3} End {4}", v.Year, v.Month, v.Week, v.FirstTradeDate, v.LastTradeDate); var tp = new TradePeriod() { Start = v.FirstTradeDate, End = v.LastTradeDate, }; _Periods.Add(tp); } }
private void CreateDateGroups() { var weekly = from q in AlsiUtils.Data_Objects.GlobalObjects.Points group q by new { Y = q.TimeStamp.Year, M = q.TimeStamp.Month, W = Math.Floor((decimal)q.TimeStamp.DayOfYear / 30) + 1, //D=(DateTime)q.TimeStamp } into FGroup orderby FGroup.Key.Y, FGroup.Key.M, FGroup.Key.W select new { Year = FGroup.Key.Y, Month = FGroup.Key.M, Week = FGroup.Key.W, FirstTradeDate = FGroup.First().TimeStamp, LastTradeDate = FGroup.Last().TimeStamp, //AvPrice = (double)FGroup.Where(z => z.Reason == Trade.Trigger.CloseShort || z.Reason == Trade.Trigger.CloseLong) // .Average(t => t.RunningProfit), //SumPrice = (int)FGroup.Where(z => z.Reason == Trade.Trigger.CloseShort || z.Reason == Trade.Trigger.CloseLong) //.Sum(t => t.RunningProfit), //marketmovement = (FGroup.Last().CurrentPrice) - (FGroup.First().CurrentPrice), //Prices = FGroup.Select(z => z.CurrentPrice), }; foreach (var v in weekly) { Console.WriteLine("Year {0} Month {1} Week {2} Start {3} End {4}", v.Year, v.Month, v.Week, v.FirstTradeDate, v.LastTradeDate); var tp = new TradePeriod() { Start = v.FirstTradeDate, End = v.LastTradeDate, }; _Periods.Add(tp); } }