示例#1
0
        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);
            }



        }