示例#1
0
        /// <summary>
        /// Metodo responsável por gerar o livro de ofertas (10 melhores ofertas para cada sentido)
        /// </summary>
        /// <param name="pInstrumento">Código do Instrumento</param>
        /// <returns>Melhores ofertas de compra e venda</returns>
        public string ReceberLivroOferta(string pInstrumento)
        {
            try
            {
                string strBook = string.Empty;

                if (pInstrumento.IndexOf(',') == -1)
                {
                    return(MemoriaCotacao.ReceberBook(pInstrumento));
                }
                else
                {
                    string[] arrInstrumentos = pInstrumento.Split(',');
                    for (int i = 0; i <= arrInstrumentos.Length - 1; i++)
                    {
                        strBook += MemoriaCotacao.ReceberBook(arrInstrumentos[i]);

                        if (i != arrInstrumentos.Length - 1)
                        {
                            strBook += "|";
                        }
                    }
                }

                return(strBook);
            }
            catch (Exception ex)
            {
                logger.Error("ReceberLivroOferta(): " + ex.Message, ex);
            }

            return(String.Empty);
        }
示例#2
0
        /// <summary>
        /// Metodo responsável por gerar o livro de ofertas agregado (10 melhores precos e qtdes para cada sentido)
        /// </summary>
        /// <param name="pInstrumento">Código do Instrumento</param>
        /// <returns>Melhores precos e qtdes de ofertas de compra e venda</returns>
        public string ReceberLivroAgregado(string pInstrumento)
        {
            try
            {
                StringBuilder strAgregado = new StringBuilder();

                if (pInstrumento.IndexOf(',') == -1)
                {
                    return(MemoriaCotacao.ReceberAgregado(pInstrumento));
                }
                else
                {
                    string[] arrInstrumentos = pInstrumento.Split(',');
                    for (int i = 0; i <= arrInstrumentos.Length - 1; i++)
                    {
                        strAgregado.Append(MemoriaCotacao.ReceberAgregado(arrInstrumentos[i]));

                        if (i != arrInstrumentos.Length - 1)
                        {
                            strAgregado.Append("|");
                        }
                    }
                }

                return(strAgregado.ToString());
            }
            catch (Exception ex)
            {
                logger.Error("ReceberLivroAgregado(): " + ex.Message, ex);
            }

            return(String.Empty);
        }
示例#3
0
 /// <summary>
 /// Metodo responsável por retornar os destaques do Ibovespa
 /// </summary>
 /// <returns>Ticker com os destaques do indice bovespa</returns>
 public string ReceberTickerDestaques()
 {
     try
     {
         return(MemoriaCotacao.ReceberDestaques());
     }
     catch (Exception ex)
     {
         logger.Error("ReceberTickerDestaques(): " + ex.Message, ex);
         throw new Exception(string.Format("{0}{1}", "Ocorreu um erro ao acessar o método ReceberTickerDestaques: ", ex.Message));
     }
 }
示例#4
0
 /// <summary>
 /// Metodo responsável por retornar o rank de corretoras de um determinado Instrumento
 /// </summary>
 /// <param name="pInstrumento">Código do Instrumento  </param>
 /// <returns>rank de corretora de um determinado Instrumento</returns>
 public string ReceberRankCorretora(string pInstrumento)
 {
     try
     {
         return(MemoriaCotacao.ReceberRankCorretora(pInstrumento));
     }
     catch (Exception ex)
     {
         logger.Error("ReceberRankCorretora(" + pInstrumento + "): " + ex.Message, ex);
         throw new Exception(string.Format("{0}{1}", "Ocorreu um erro ao acessar o método ReceberTickerResumido: ", ex.Message));
     }
 }
示例#5
0
        private void MessageBroker(string Instrumento, string Mensagem)
        {
            try
            {
                logger.Debug("[" + Instrumento + "] [" + Mensagem + "]");

                if (_filtraIndiceCheio)
                {
                    if (Mensagem.Substring(2, 2).Equals("BF") &&
                        !Instrumento.Substring(0, 1).Equals("W"))
                    {
                        return;
                    }
                }

                switch (Mensagem.ToString().Substring(0, 2))
                {
                case ConstantesMDS.Negocio:
                    MemoriaCotacao.LastNegocioPacket = DateTime.Now;
                    MemoriaCotacao.LastNegocioMsg    = Mensagem;
                    //MemoriaCotacao.AdicionarLivroNegocios(Instrumento, Mensagem);
                    MemoriaCotacao.AdicionarNegocio(Instrumento, Mensagem);
                    MemoriaCotacao.AdicionarNegocioIndiceGradual(Instrumento, Mensagem);
                    MemoriaCotacao.ProcessaSonda(Instrumento, Mensagem);

                    //ComposicaoIndice.RecalcularIndice(Instrumento, Mensagem);

                    if (Instrumento.Equals(IndiceGradual.INDICE_IBOV))
                    {
                        IndiceGradual.AtualizarIndiceGradual(Instrumento, Mensagem);
                    }

                    if (MemoriaCotacaoDelay.GetInstance().DelayTickerOn)
                    {
                        MemoriaCotacaoDelay.GetInstance().AdicionarFilaLivroNegocios(Instrumento, Mensagem);
                    }
                    break;

                case ConstantesMDS.LivroNegocio:
                    MemoriaCotacao.LastLofPacket = DateTime.Now;
                    MemoriaCotacao.LastLofMsg    = Mensagem;
                    MemoriaCotacao.AdicionarLivroNegocios(Instrumento, Mensagem);
                    break;

                case ConstantesMDS.LivroOferta:
                    MemoriaCotacao.LastLofPacket = DateTime.Now;
                    MemoriaCotacao.LastLofMsg    = Mensagem;
                    MemoriaCotacao.AdicionarTikerLivroOferta(Instrumento, Mensagem);
                    break;

                case ConstantesMDS.Destaques:
                    MemoriaCotacao.LastDestaquePacket = DateTime.Now;
                    MemoriaCotacao.LastDestaqueMsg    = Mensagem;
                    MemoriaCotacao.AdicionarTikerDestaques(Mensagem);
                    break;

                case ConstantesMDS.RankCorretora:
                    MemoriaCotacao.LastRankingPacket = DateTime.Now;
                    MemoriaCotacao.LastRankingMsg    = Mensagem;
                    MemoriaCotacao.AdicionarTickerRankCorretora(Instrumento, Mensagem);
                    break;

                case ConstantesMDS.Sonda:
                    logger.Info("Recebeu Sonda: [" + Mensagem + "]");
                    MemoriaCotacao.LastSondaMsg = Mensagem;
                    MemoriaCotacao.ProcessaSonda(Instrumento, Mensagem);
                    break;

                case ConstantesMDS.LIVRO_AGREGADO:
                    MemoriaCotacao.LastAgregadoPacket = DateTime.Now;
                    MemoriaCotacao.LastAgregadoMsg    = Mensagem;
                    MemoriaCotacao.AdicionarTikerLivroAgregado(Instrumento, Mensagem);
                    break;
                }
            }
            catch (Exception ex)
            {
                logger.Error("MessageBroker(): " + ex.Message, ex);

                if (!String.IsNullOrEmpty(Instrumento))
                {
                    logger.Error("Instrumento [" + Instrumento + "]");
                }

                if (!String.IsNullOrEmpty(Mensagem))
                {
                    logger.Error("Mensagem [" + Mensagem + "]");
                }
            }
        }