/// <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); }
/// <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); }
/// <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)); } }
/// <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)); } }
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 + "]"); } } }