public void Start(BuySellOnSignalSymbolConfig stock, KiteConnect.Kite kite, SignalSettingInfo settingInfo) { var clonnedStock = stock.DeepCopy <BuySellOnSignalSymbolConfig>(); clonnedStock.StartTime = stock.StartTime; var clonnedSetting = settingInfo != null?settingInfo.DeepCopy <SignalSettingInfo>() : new SignalSettingInfo(); BuySellStockOnSignal signal = new BuySellStockOnSignal(clonnedStock, kite, clonnedSetting); var addedstock = _configuresStocks.FirstOrDefault(s => s.IsMatchSymbol(clonnedStock.Exchange, clonnedStock.Symbol)); if (addedstock != null) { addedstock.Reset(); _configuresStocks.Remove(addedstock); } _kite = kite; signal.Start(); _configuresStocks.Add(signal); }