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)); } }
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); }