コード例 #1
0
        public EntResumoDiario Inserir(EntResumoDiario objResumoDiario, DbTransaction transaction, Database db)
        {
            DbCommand dbCommand = db.GetStoredProcCommand("STP_ResumoDiarioInserir");

            dbCommand.CommandTimeout = BdConfig.CommmandTimeout;

            db.AddOutParameter(dbCommand, "@CDA_RESUMO_DIARIO", DbType.Int32, objResumoDiario.IdResumoDiario);
            db.AddInParameter(dbCommand, "@TX_RESUMO_DIARIO", DbType.String, objResumoDiario.ResumoDiario);
            db.AddInParameter(dbCommand, "@QUANTIDADE", DbType.Decimal, objResumoDiario.Quantidade);
            db.AddInParameter(dbCommand, "@MELHOR_COMPRA", DbType.Decimal, objResumoDiario.MelhorCompra);
            db.AddInParameter(dbCommand, "@MELHOR_VENDA", DbType.Decimal, objResumoDiario.MelhorVenda);
            db.AddInParameter(dbCommand, "@VOLUME", DbType.Decimal, objResumoDiario.Volume);
            db.AddInParameter(dbCommand, "@PRECO_ULTIMA_TRANSACAO", DbType.Decimal, objResumoDiario.PrecoUltimaTransacao);
            db.AddInParameter(dbCommand, "@VALOR_MAXIMO", DbType.Decimal, objResumoDiario.ValorMaximo);
            db.AddInParameter(dbCommand, "@VALOR_MINIMO", DbType.Decimal, objResumoDiario.ValorMinimo);
            db.AddInParameter(dbCommand, "@DT_DATA", DbType.DateTime, objResumoDiario.Data);
            db.AddInParameter(dbCommand, "@CEA_MOEDA", DbType.Int32, IntUtils.ToIntNullProc(objResumoDiario.Moeda.IdMoeda));
            db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objResumoDiario.Ativo);

            db.ExecuteNonQuery(dbCommand, transaction);

            objResumoDiario.IdResumoDiario = ObjectUtils.ToInt(db.GetParameterValue(dbCommand, "@CDA_RESUMO_DIARIO"));

            return(objResumoDiario);
        }
コード例 #2
0
        private void AtualizaInformacoesResumoMoeda(EntMoeda objMoeda)
        {
            try
            {
                // Spot.Market | Spot market info endpoints
                var resumo = client.Spot.Market.Get24HPrice(objMoeda.Codigo + EntMoeda.USDT);

                /*// Spot.Order | Spot order info endpoints
                *  client.Spot.Order.GetAllOrders("BTCUSDT");
                *  // Spot.System | Spot system endpoints
                *  client.Spot.System.GetExchangeInfo();
                *  // Spot.UserStream | Spot user stream endpoints. Should be used to subscribe to a user stream with the socket client
                *  client.Spot.UserStream.StartUserStream();*/

                //var result = client.Spot.Order.PlaceTestOrder("BNBBTC", OrderSide.Buy, OrderType.Limit, timeInForce: TimeInForce.GoodTillCancel, quantity: 1, price: 2);

                EntResumoDiario objResumo = new EntResumoDiario();
                objResumo.ResumoDiario         = "Resumo " + objMoeda.Moeda;
                objResumo.Ativo                = true;
                objResumo.Data                 = DateTime.Now;
                objResumo.Moeda.IdMoeda        = objMoeda.IdMoeda;
                objResumo.PrecoUltimaTransacao = resumo.Data.LastPrice;
                objResumo.ValorMaximo          = resumo.Data.HighPrice;
                objResumo.ValorMinimo          = resumo.Data.LowPrice;
                objResumo.Volume               = resumo.Data.BaseVolume;
                objResumo.Quantidade           = resumo.Data.TotalTrades;
                objResumo.MelhorCompra         = resumo.Data.AskPrice;
                objResumo.MelhorVenda          = resumo.Data.BidPrice;
                new BllResumoDiario().Inserir(objResumo, EntUsuario.USUARIO_PADRAO);
            }
            catch (Exception ex)
            {
                Aviso(objMoeda.Codigo, "BITCOINER - ERRO ATUALIZAÇÃO RESUMO", "Houve um erro na atualização do resumo para " + objMoeda.Codigo + " em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n\n" + ex.Message + "\n\n" + ex.StackTrace);
            }
        }
コード例 #3
0
 public EntResumoDiario Remover(EntResumoDiario objResumoDiario, Int32 IdUsuario)
 {
     using (DbConnection connection = db.CreateConnection())
     {
         connection.Open();
         DbTransaction transaction = connection.BeginTransaction();
         try
         {
             objResumoDiario.Ativo = !objResumoDiario.Ativo;
             dalResumoDiario.Remover(objResumoDiario, transaction, db);
             SaveLog(IdUsuario, EntLog.LOG_REMOVER, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, transaction, db);
             transaction.Commit();
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             SaveLog(IdUsuario, EntLog.LOG_ERRO, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, ex.Message, db, connection);
             throw;
         }
         finally
         {
             connection.Close();
         }
     }
     return(objResumoDiario);
 }
コード例 #4
0
        public EntResumoDiario ObterPorId(Int32 IdResumoDiario)
        {
            EntResumoDiario objResumoDiario = new EntResumoDiario();

            using (DbConnection connection = db.CreateConnection())
            {
                connection.Open();
                DbTransaction transaction = connection.BeginTransaction();
                try
                {
                    objResumoDiario = dalResumoDiario.ObterPorId(IdResumoDiario, transaction, db);
                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
                finally
                {
                    connection.Close();
                }
            }
            return(objResumoDiario);
        }
コード例 #5
0
        public void Remover(EntResumoDiario objResumoDiario, DbTransaction transaction, Database db)
        {
            DbCommand dbCommand = db.GetStoredProcCommand("STP_ResumoDiarioRemover");

            dbCommand.CommandTimeout = BdConfig.CommmandTimeout;

            db.AddInParameter(dbCommand, "@CDA_RESUMO_DIARIO", DbType.Int32, objResumoDiario.IdResumoDiario);
            db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objResumoDiario.Ativo);

            db.ExecuteNonQuery(dbCommand, transaction);
        }
コード例 #6
0
        private List <EntResumoDiario> Popular(DbDataReader dtrDados)
        {
            List <EntResumoDiario> listEntReturn = new List <EntResumoDiario>();
            EntResumoDiario        entReturn;

            try
            {
                while (dtrDados.Read())
                {
                    entReturn = new EntResumoDiario();

                    entReturn.IdResumoDiario       = ObjectUtils.ToInt(dtrDados["CDA_RESUMO_DIARIO"]);
                    entReturn.ResumoDiario         = ObjectUtils.ToString(dtrDados["TX_RESUMO_DIARIO"]);
                    entReturn.Quantidade           = ObjectUtils.ToDecimal(dtrDados["QUANTIDADE"]);
                    entReturn.MelhorCompra         = ObjectUtils.ToDecimal(dtrDados["MELHOR_COMPRA"]);
                    entReturn.MelhorVenda          = ObjectUtils.ToDecimal(dtrDados["MELHOR_VENDA"]);
                    entReturn.Volume               = ObjectUtils.ToDecimal(dtrDados["VOLUME"]);
                    entReturn.PrecoUltimaTransacao = ObjectUtils.ToDecimal(dtrDados["PRECO_ULTIMA_TRANSACAO"]);
                    entReturn.ValorMaximo          = ObjectUtils.ToDecimal(dtrDados["VALOR_MAXIMO"]);
                    entReturn.ValorMinimo          = ObjectUtils.ToDecimal(dtrDados["VALOR_MINIMO"]);
                    entReturn.Data          = ObjectUtils.ToDate(dtrDados["DT_DATA"]);
                    entReturn.Moeda.IdMoeda = ObjectUtils.ToInt(dtrDados["CEA_MOEDA"]);
                    entReturn.Moeda.Moeda   = ObjectUtils.ToString(dtrDados["TX_MOEDA"]);
                    entReturn.Ativo         = ObjectUtils.ToBoolean(dtrDados["FL_ATIVO"]);
                    listEntReturn.Add(entReturn);
                }

                dtrDados.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(listEntReturn);
        }
コード例 #7
0
 public void Alterar(EntResumoDiario objResumoDiario, Int32 IdUsuario)
 {
     using (DbConnection connection = db.CreateConnection())
     {
         connection.Open();
         DbTransaction transaction = connection.BeginTransaction();
         try
         {
             dalResumoDiario.Alterar(objResumoDiario, transaction, db);
             SaveLog(IdUsuario, EntLog.LOG_EDITAR, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, transaction, db);
             transaction.Commit();
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             SaveLog(IdUsuario, EntLog.LOG_ERRO, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, ex.Message, db, connection);
             throw;
         }
         finally
         {
             connection.Close();
         }
     }
 }
コード例 #8
0
        private void CriaOrdemVenda(EntMoeda objMoeda, EntCarteira objCarteira, EntResumoDiario ultimoStatus)
        {
            try
            {
                Decimal valor = ultimoStatus.MelhorCompra;
                if (valor < ultimoStatus.MelhorVenda)
                {
                    valor = ultimoStatus.MelhorVenda;
                }
                if (valor < ultimoStatus.PrecoUltimaTransacao)
                {
                    valor = ultimoStatus.PrecoUltimaTransacao;
                }

                if (valor < (objMoeda.OperacaoCompraAberta.ValorBitcoin * StringUtils.ToDecimal("1,005")))
                {
                    Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA NÃO CRIADA - VALOR MENOR QUE COMPRA", "Não criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor), false);
                    return;
                }

                Decimal quantidade = objCarteira.SaldoBitcoin;
                quantidade = DecimalUtils.ToDecimalRound(quantidade, objMoeda.CasasDepoisDaVirgula);

                if (StringUtils.ToBoolean(ConfigurationManager.AppSettings["teste"]))
                {
                    EntOperacao objOperacao = new EntOperacao();
                    objOperacao.Ativo              = true;
                    objOperacao.Carteira           = objCarteira;
                    objOperacao.DataCriacao        = DateTime.Now;
                    objOperacao.DataInicioExecucao = DateTime.Now;
                    objOperacao.IsVenda            = true;
                    objOperacao.Operacao           = new Random().Next(10000, 99999).ToString();
                    objOperacao.ValorBitcoin       = valor;
                    objOperacao.ValorDolar         = quantidade * valor;
                    objOperacao.ValorReais         = quantidade;
                    objOperacao = new BllOperacao().Inserir(objOperacao, EntUsuario.USUARIO_PADRAO);

                    objMoeda.OperacaoVendaAberta = objOperacao;
                    new BllMoeda().Alterar(objMoeda, EntUsuario.USUARIO_PADRAO);

                    Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade));
                }
                else
                {
                    var result = client.Spot.Order.PlaceOrder(objMoeda.Codigo + EntMoeda.USDT, OrderSide.Sell, OrderType.Market, quantity: quantidade);

                    if (result.Success)
                    {
                        EntOperacao objOperacao = new EntOperacao();
                        objOperacao.Ativo              = true;
                        objOperacao.Carteira           = objCarteira;
                        objOperacao.DataCriacao        = DateTime.Now;
                        objOperacao.DataInicioExecucao = DateTime.Now;
                        objOperacao.IsVenda            = true;
                        objOperacao.Operacao           = result.Data.OrderId.ToString();
                        objOperacao.ValorBitcoin       = valor;
                        objOperacao.ValorDolar         = quantidade * valor;
                        objOperacao.ValorReais         = quantidade;
                        objOperacao = new BllOperacao().Inserir(objOperacao, EntUsuario.USUARIO_PADRAO);

                        objMoeda.OperacaoVendaAberta = objOperacao;
                        new BllMoeda().Alterar(objMoeda, EntUsuario.USUARIO_PADRAO);

                        Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade));
                    }
                    else
                    {
                        Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "ERRO Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade) +
                              "\n\n" + result.Error.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                Aviso(objMoeda.Codigo, "BITCOINER - ERRO CRIAÇÃO ORDEM DE VENDA", "Houve um erro na criação de ordem de venda " + objMoeda.Codigo + " em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n\n" + ex.Message + "\n\n" + ex.StackTrace);
            }
        }