Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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));
            }
        }
Пример #4
0
        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);
            }
        }