private void SignalProcess(Signal signal, Protocol protocol) { Console.WriteLine(" Before Invoke control update ...... " + signal); bool dupli = false; bool isValid = false; for (int i = 0; i < AppContext.SignalDatas.Count; i++) { Signal sig = AppContext.SignalDatas[i]; if (signal.Equals(sig)) { if (signal.Arrow == sig.Arrow && protocol == Protocol.K0004_1) { dupli = true; } else if (signal.StopLoss == sig.StopLoss && protocol == Protocol.K0004_2) { dupli = true; } else if (signal.GainTip == sig.GainTip && protocol == Protocol.K0004_3) { dupli = true; } else if (signal.StopGain == sig.StopGain && protocol == Protocol.K0004_4) { dupli = true; } else if (signal.ProfitPrice == sig.ProfitPrice && protocol == Protocol.K0004_5) { dupli = true; } else { if (signal.StopLoss != 0) { sig.StopLoss = signal.StopLoss; sig.StopLossTime = signal.StopLossTime; sig.StopLossBidPrice = signal.StopLossBidPrice; isValid = true; } else if (signal.GainTip != 0) { sig.GainTip = signal.GainTip; sig.GainTipPrice = signal.GainTipPrice; sig.GainTipTime = signal.GainTipTime; isValid = true; } else if (signal.StopGain != 0) { sig.StopGain = signal.StopGain; sig.StopGainPrice = signal.StopGainPrice; sig.StopGainTime = signal.StopGainTime; isValid = true; } else if (signal.ProfitPrice > 0) { sig.Profit = signal.Profit; sig.ProfitPrice = signal.ProfitPrice; sig.ProfitTime = signal.ProfitTime; isValid = true; DataProvider provider = DataService.GetProviderBySymbol(signal.Symbol); if (provider != null && !provider.DataCache.SignalUnits[provider.CurrentTInterval].Contains(sig)) { provider.DataCache.SignalUnits[provider.CurrentTInterval].Add(sig); } } AppContext.SignalDatas[i] = sig; LogUtil.Info(" AppContext.SignalDatas[i] " + i + " " + AppContext.SignalDatas[i]); } LogUtil.Info(" dupli ============== " + dupli); break; } if (i == AppContext.SignalDatas.Count - 1 && !dupli) { isValid = true; } } if (!dupli) { if (protocol == Protocol.K0004_1) { AppContext.SignalDatas.Add(signal); } if (isValid) { Dictionary <Protocol, Signal> protocolSignal = new Dictionary <Protocol, Signal>(); protocolSignal.Add(protocol, signal); MsgUpdatedDelegate d = null; if (protocol != Protocol.K0004_5) { d = new MsgUpdatedDelegate(ProviderUpdate); d.Invoke(protocolSignal); } if (protocol != Protocol.K0004_2 && protocol != Protocol.K0004_3) { d = new MsgUpdatedDelegate(SignalListUpdate); signalListView.BeginInvoke(d, protocolSignal); } if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1) { d = new MsgUpdatedDelegate(PriceListUpdate); priceListView.BeginInvoke(d, protocolSignal); } if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1) { d = new MsgUpdatedDelegate(StatlListUpdate); statListView.BeginInvoke(d, protocolSignal); } } } }
private void SignalProcess(Signal signal, Protocol protocol) { Console.WriteLine(" Before Invoke control update ...... " + signal); bool dupli = false; bool isValid = false; for (int i = 0; i < AppContext.SignalDatas.Count; i++) { Signal sig = AppContext.SignalDatas[i]; if (signal.Equals(sig)) { if (signal.Arrow == sig.Arrow && protocol == Protocol.K0004_1) { dupli = true; } else if (signal.StopLoss == sig.StopLoss && protocol == Protocol.K0004_2) { dupli = true; } else if (signal.GainTip == sig.GainTip && protocol == Protocol.K0004_3) { dupli = true; } else if (signal.StopGain == sig.StopGain && protocol == Protocol.K0004_4) { dupli = true; } else if (signal.ProfitPrice == sig.ProfitPrice && protocol == Protocol.K0004_5) { dupli = true; } else { if (signal.StopLoss != 0) { sig.StopLoss = signal.StopLoss; sig.StopLossTime = signal.StopLossTime; sig.StopLossBidPrice = signal.StopLossBidPrice; isValid = true; } else if (signal.GainTip != 0) { sig.GainTip = signal.GainTip; sig.GainTipPrice = signal.GainTipPrice; sig.GainTipTime = signal.GainTipTime; isValid = true; } else if (signal.StopGain != 0) { sig.StopGain = signal.StopGain; sig.StopGainPrice = signal.StopGainPrice; sig.StopGainTime = signal.StopGainTime; isValid = true; } else if (signal.ProfitPrice > 0) { sig.Profit = signal.Profit; sig.ProfitPrice = signal.ProfitPrice; sig.ProfitTime = signal.ProfitTime; isValid = true; DataProvider provider = DataService.GetProviderBySymbol(signal.Symbol); if (provider != null && !provider.DataCache.SignalUnits[provider.CurrentTInterval].Contains(sig)) { provider.DataCache.SignalUnits[provider.CurrentTInterval].Add(sig); } } AppContext.SignalDatas[i] = sig; LogUtil.Info(" AppContext.SignalDatas[i] " + i +" "+AppContext.SignalDatas[i]); } LogUtil.Info(" dupli ============== " + dupli); break; } if (i == AppContext.SignalDatas.Count - 1 && !dupli) { isValid = true; } } if (!dupli) { if (protocol == Protocol.K0004_1) AppContext.SignalDatas.Add(signal); if (isValid) { Dictionary<Protocol, Signal> protocolSignal = new Dictionary<Protocol, Signal>(); protocolSignal.Add(protocol, signal); MsgUpdatedDelegate d = null; if (protocol != Protocol.K0004_5) { d = new MsgUpdatedDelegate(ProviderUpdate); d.Invoke(protocolSignal); } if (protocol != Protocol.K0004_2 && protocol != Protocol.K0004_3) { d = new MsgUpdatedDelegate(SignalListUpdate); signalListView.BeginInvoke(d, protocolSignal); } if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1) { d = new MsgUpdatedDelegate(PriceListUpdate); priceListView.BeginInvoke(d, protocolSignal); } if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1) { d = new MsgUpdatedDelegate(StatlListUpdate); statListView.BeginInvoke(d, protocolSignal); } } } }