Ejemplo n.º 1
0
        public List <DistributeValue> GetDistributeTrendByMarket(List <IMarketData> dataList)
        {
            var l = GetDistributeCube(dataList);

            if (!IsIncludeZero)
            {
                l = l.Where(v => Math.Abs(v.Value) > CommonProc.EPSILON).ToList();
            }
            var nl = l.Select(v => v.Name).Distinct().ToList();
            var tl = l.Select(v => v.Time).Distinct().ToList();
            var rl = new List <DistributeValue>();

            tl.ForEach(t =>
            {
                var ml            = l.Where(c => c.Time == t).ToList();
                var statisticList = ml.Select(m => m.Value).ToList();
                nl.ForEach(v =>
                {
                    var data = ml.FirstOrDefault(c => c.Time == t);
                    rl.Add(new DistributeValue()
                    {
                        Name = v, Time = t, Value = Distribute.GetDistance(data.Value, statisticList)
                    });
                });
            });

            return(rl);
        }
Ejemplo n.º 2
0
        public double GetDistanceByTime(List <IMarketData> dataList, string targetName)
        {
            var l = GetDistributeCube(dataList);

            l = l.Where(v => v.Name == targetName).ToList();
            if (!IsIncludeZero)
            {
                l = l.Where(v => Math.Abs(v.Value) > CommonProc.EPSILON).ToList();
            }
            return(Distribute.GetDistance(l.OrderBy(v => v.Time).LastOrDefault().Value, l.Select(v => v.Value).ToList()));
        }