private static void GetDynamicStopLoss(List <Price> prices, double StopLossFactor, double TakeProfitFactor) { var fortnight = from q in prices group q by new { Y = q.TimeStamp.Year, M = q.TimeStamp.Month, W = q.TimeStamp.Day <= 15 ? 1 : 2, //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, AvPrice = Math.Round((double)FGroup.Average(t => t.Close), 3), }; foreach (var v in fortnight) { var d = new DateTime(v.Year, v.Month, v.Week == 1 ? 1 : 15); var tpst = new TP_SL() { Datum = d, AvgMarketPrice = v.AvPrice, StopLoss = (int)(v.AvPrice * StopLossFactor), TakeProfit = (int)(v.AvPrice * TakeProfitFactor), }; TPSL.Add(tpst); } }
private static void GetDynamicStopLoss(List<Price> prices, double StopLossFactor, double TakeProfitFactor) { var fortnight = from q in prices group q by new { Y = q.TimeStamp.Year, M = q.TimeStamp.Month, W = q.TimeStamp.Day <= 15 ? 1 : 2, //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, AvPrice = Math.Round((double)FGroup.Average(t => t.Close), 3), }; foreach (var v in fortnight) { var d = new DateTime(v.Year, v.Month, v.Week == 1 ? 1 : 15); var tpst = new TP_SL() { Datum = d, AvgMarketPrice = v.AvPrice, StopLoss = (int)(v.AvPrice * StopLossFactor), TakeProfit = (int)(v.AvPrice * TakeProfitFactor), }; TPSL.Add(tpst); } }