Пример #1
0
        /// <summary>
        /// When auth past success. Read data from config (StockVisualConf)
        /// and send request to server for instruments we need
        /// </summary>
        /// <param name="conID"></param>
        public void SubscribeTickersFromConfig(int conID)
        {
            lock (StockVisualConf)
            {
                var listStockVisConf = StockVisualConf.ListStocksVisual.FindAll(a => a.ConNumm == conID);

                CSubscribeTicker subscrTicker = new CSubscribeTicker();

                if (listStockVisConf != null)
                {
                    listStockVisConf.ForEach(stockVisConf =>
                    {
                        if (stockVisConf.Ticker != null)
                        {
                            subscrTicker.ListSubscribeCommands.Add(
                                new CCommandSubscribeTickers
                            {
                                Ticker = stockVisConf.Ticker,
                                Action = EnmSubsrcibeActions.Subscribe
                            }
                                );



                            //assume Step is valid and was already saved in conf
                            Communicator.GetDataReciever(conID).AddStructuresForSubscribedTicker(stockVisConf.Ticker,
                                                                                                 (decimal)stockVisConf.Step);
                        }
                    });
                }


                Communicator.SendSubscribeTickerList(conID, subscrTicker);
            }
        }
Пример #2
0
        public void SendSubscribeTickerList(int conId, CSubscribeTicker st)
        {
            enmTradingEvent ev = enmTradingEvent.UserSubscribeTicker;

            //CSubscribeTicker st = new CSubscribeTicker { SubscribeCommand = new CCommandSubscribeTickers { Ticker = ticker, Action = EnmSubsrcibeActions.Subscribe  } };


            SendDataToServer(conId, st, ev);
        }
Пример #3
0
        //==========================================================================================================
        //============================== END PUBLIC METHODS ============================================================
        //==========================================================================================================



        private void SendSubscribeOrUnsubscribeOneTicker(int conId, string ticker, EnmSubsrcibeActions act)
        {
            enmTradingEvent  ev = enmTradingEvent.UserSubscribeTicker;
            CSubscribeTicker st = new CSubscribeTicker
            {
                ListSubscribeCommands = new List <CCommandSubscribeTickers>
                {
                    (new CCommandSubscribeTickers
                    {
                        Ticker = ticker,
                        Action = act
                    })
                }
            };

            SendDataToServer(conId, st, ev);
        }
Пример #4
0
 public void SubscribeIsin(CSubscribeTicker subscrTick)
 {
     subscrTick.ListSubscribeCommands.ForEach(a =>
     {
         if (a.Action == EnmSubsrcibeActions.Subscribe)
         {
             if (!SubscribedIsins.Contains(a.Ticker))
             {
                 SubscribedIsins.Add(a.Ticker);
             }
         }
         else if (a.Action == EnmSubsrcibeActions.UnSubscribe)
         {
             SubscribedIsins.RemoveAll(s => s == a.Ticker);
         }
     }
                                              );
     //SubscribedIsins.Add(isin);
 }
        private void ProcessUserSubscribeTicker(int conId, byte[] arrMsgBody)
        {
            CSubscribeTicker subscrTicks = CUtilProto.DeserializeProto <CSubscribeTicker>(arrMsgBody);

            _dictConnIdTrader[conId].SubscribeIsin(subscrTicks);


            //2017-01-15 experimental logics temporary disabled

            /*
             * CBotTrader bot = _dictKBotIdVBotTrader[_dictConnIdTrader[conId].BotId];
             *
             * foreach (var cmd in subscrTicks.ListSubscribeCommands)
             * {
             * if (cmd.Action == EnmSubsrcibeActions.Subscribe)
             * bot.OnSubscribeInstrument(cmd.Ticker);
             * else if (cmd.Action == EnmSubsrcibeActions.UnSubscribe)
             * bot.OnUnSubscribeInstrument(cmd.Ticker);
             *
             *
             *
             * }
             */
        }