Exemple #1
0
 public void AddInstrument(string instrument, SymbolInfo symb = null)
 {
     try
     {
         if (!_dicTrading.ContainsKey(instrument))
         {
             logger.Info("Assinando instrumento: " + instrument);
             MdsAssinatura mdsSign = new MdsAssinatura();
             mdsSign.Instrumento = instrument.ToUpper().Trim();
             mdsSign.Sinal       = TipoSinal.CotacaoRapida;
             MdsNegociosEventArgs _mensagemNegocio = (MdsBayeuxClient.MdsNegociosEventArgs)MdsBayeuxClient.MdsHttpClient.Instance.Assina(mdsSign);
             MdsTradingInfo       mdsInstrument    = new MdsTradingInfo();
             if (null != symb)
             {
                 mdsInstrument.Trading = symb.Trading;
             }
             if (null != _mensagemNegocio)
             {
                 mdsInstrument.Quotes = _mensagemNegocio;
             }
             _dicTrading.Add(instrument, mdsInstrument); // primeira assinatura
             mdsSign = null;
         }
     }
     catch (Exception ex)
     {
         logger.Error("Problemas na assinatura do ativo: " + ex.Message, ex);
     }
 }
Exemple #2
0
        public decimal GetLastPrice(string symbol)
        {
            decimal ret;

            if (_dicTrading.ContainsKey(symbol) && null != _dicTrading[symbol])
            {
                MdsTradingInfo item = _dicTrading[symbol];
                // Buscar cotacao
                if (null != item.Quotes)
                {
                    ret = Convert.ToDecimal(_dicTrading[symbol].Quotes.negocios.ng.pr, new CultureInfo("pt-BR"));
                    // Se mesmo vindo cotacao e estiver zero, entao retornar valor fechamento (ex: hora de leilao)
                    if (ret == Decimal.Zero)
                    {
                        ret = item.Trading.VlrFechamento;
                    }
                }
                // Tentar retornar valor de fechamento
                else
                {
                    if (null != item.Trading)
                    {
                        ret = item.Trading.VlrFechamento;
                    }
                    else
                    {
                        ret = Decimal.Zero;
                    }
                }
            }
            else
            {
                ret = Decimal.Zero;
            }

            return(ret);
        }