コード例 #1
0
        void RefreshResult()
        {
            ResultList.Clear();
            foreach (var condition in ConditionList)
            {
                var l = condition.GetResult(null, AnalyseEndTime);
                foreach (var r in l)
                {
                    var inst = InstrumentList.FirstOrDefault(v => v.Ticker == r.Ticker);
                    if (inst != null)
                    {
                        if (!ResultList.Any(v => v.Ticker == inst.Ticker))
                        {
                            ResultList.Add(inst);
                        }
                    }
                }
            }

            var rl = new List <IInstrument>();

            foreach (var preicate in PredicateList)
            {
                rl.Clear();
                var l = preicate.GetResult(null, AnalyseEndTime);
                foreach (var r in l)
                {
                    var inst = InstrumentList.FirstOrDefault(v => v.Ticker == r.Ticker);
                    rl.Add(inst);
                }
                ResultList.RemoveAll(v => !rl.Any(r => r.Ticker == v.Ticker));
            }
        }
コード例 #2
0
 public override bool CanRemove(IInstrument instrument)
 {
     if (ResultList.Any(v => v.Ticker == instrument.Ticker))
     {
         return(false);
     }
     if (BlockList.Any(v => v.Ticker == instrument.Ticker))
     {
         return(false);
     }
     return(true);
 }