protected override void DoRequestMarketDataOrderBook(Object param) { string symbol = (string)param; try { DoLog(string.Format("@{0}:Requesting market data order book por symbol {1}", BitmexConfiguration.Name, symbol), Main.Common.Util.Constants.MessageType.Information); if (ActiveSecuritiesOrderBook.Values.Where(x => x.Active).Any(x => x.Symbol == symbol)) { lock (tLock) { PriceLevelHandler.GetPriceLevelDict(symbol).Clear(); WSMarketDataManager.SubscribeOrderBookL2(symbol); } } else { DoLog(string.Format("@{0}:Unsubscribing market data order book for symbol {1}", BitmexConfiguration.Name, symbol), Main.Common.Util.Constants.MessageType.Information); } } catch (Exception ex) { DoLog(string.Format("@{0}: Error Requesting market data order book por symbol {1}:{2}", BitmexConfiguration.Name, symbol, ex.Message), Main.Common.Util.Constants.MessageType.Error); } }
protected void CancelMarketDataTrades(Security sec) { DoLog(string.Format("@{0}:Requesting Unsubscribe Market Data trades On Demand for Symbol: {0}", GetConfig().Name, sec.Symbol), Main.Common.Util.Constants.MessageType.Information); if (ActiveSecuritiesTrades.Values.Any(x => x.Symbol == sec.Symbol)) { lock (ActiveSecuritiesTrades) { DoRemove(ActiveSecuritiesTrades, sec.Symbol); WSMarketDataManager.UnsubscribeTrades(sec.Symbol); } } else { throw new Exception(string.Format("@{0}: Could not find active security to unsubscribe trades for symbol {1}", GetConfig().Name, sec.Symbol)); } }
protected void CancelMarketDataOrderBook(Security sec) { DoLog(string.Format("@{0}:Requesting Unsubscribe Market Data order book On Demand for Symbol: {0}", GetConfig().Name, sec.Symbol), Main.Common.Util.Constants.MessageType.Information); if (ActiveSecuritiesOrderBook.Values.Any(x => x.Symbol == sec.Symbol)) { lock (ActiveSecuritiesOrderBook) { DoRemove(ActiveSecuritiesOrderBook, sec.Symbol); WSMarketDataManager.UnsubscribeOrderBookL2(sec.Symbol); PriceLevelHandler.GetPriceLevelDict(sec.Symbol).Clear(); } } else { throw new Exception(string.Format("@{0}: Could not find active security to unsubscribe order book for symbol {1}", GetConfig().Name, sec.Symbol)); } }
protected override void DoRequestMarketDataTrades(Object param) { string symbol = (string)param; try { DoLog(string.Format("@{0}:Requesting market data trades por symbol {1}", BitmexConfiguration.Name, symbol), Main.Common.Util.Constants.MessageType.Information); if (ActiveSecuritiesTrades.Values.Where(x => x.Active).Any(x => x.Symbol == symbol)) { lock (tLock) { WSMarketDataManager.SubscribeTrades(symbol); } } else { DoLog(string.Format("@{0}:Unsubscribing market data trades for symbol {1}", BitmexConfiguration.Name, symbol), Main.Common.Util.Constants.MessageType.Information); } } catch (Exception ex) { DoLog(string.Format("@{0}: Error Requesting market data trades por symbol {1}:{2}", BitmexConfiguration.Name, symbol, ex.Message), Main.Common.Util.Constants.MessageType.Error); } }