Example #1
0
 /// <summary>
 /// Adicao do instrumento na colecao
 /// </summary>
 /// <param name="instrument"></param>
 /// <param name="parametros"></param>
 /// <returns></returns>
 public bool AddInstrument(string instrument, OrdemSmart parametros)
 {
     try
     {
         lock (_dicSymbols)
         {
             SmartInstrument aux = null;
             if (_dicSymbols.TryGetValue(instrument, out aux))
             {
                 aux.Instrument = instrument;
                 aux.Order      = parametros;
             }
             else
             {
                 SmartInstrument smtInstr = new SmartInstrument(instrument, parametros);
                 _dicSymbols.Add(instrument, smtInstr);
             }
         }
         // TODO [FF] - Montar a interface com streamer para assinar o ativo e evento
         return(true);
     }
     catch (Exception ex)
     {
         logger.Error(string.Format("Problemas na adicao do instrumento {0}: {1}", instrument, ex.Message), ex);
         return(false);
     }
 }
Example #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            //Method in charge of handle a new smartorder request
            //Setting things up
            SmartTraderOrderProcessor Broker   = new SmartTraderOrderProcessor();
            EnviarOrdemSmartRequest   request  = new EnviarOrdemSmartRequest();
            EnviarOrdemSmartResponse  response = new EnviarOrdemSmartResponse();

            OrdemSmart OrdemSmart = new OrdemSmart();

            OrdemSmart.Account    = 31940;
            OrdemSmart.Instrument = "OIBR4";
            OrdemSmart.Qty        = 100;
            OrdemSmart.OperacaoInicio.PrecoOrdem     = 3;
            OrdemSmart.OperacaoInicio.PrecoDisparo   = 3.30;
            OrdemSmart.OperacaoInicio.PrecoOrdemTipo = TipoPreco.EntrarImediatamente;


            OrdemSmart.OperacaoLucro.PrecoOrdem     = 3;
            OrdemSmart.OperacaoLucro.PrecoDisparo   = 3.30;
            OrdemSmart.OperacaoLucro.PrecoOrdemTipo = TipoPreco.Indefinido;

            OrdemSmart.OperacaoPerda.PrecoOrdem     = 3;
            OrdemSmart.OperacaoPerda.PrecoDisparo   = 3.30;
            OrdemSmart.OperacaoPerda.PrecoOrdemTipo = TipoPreco.Indefinido;

            request.SmartOrder = OrdemSmart;
            response           = Broker.EnviarOrdemSmartTrader(request);
        }
        /// <summary>
        /// Método responsável por inserir uma nova ordem no banco de dados
        /// </summary>
        /// <param name="_ClienteOrdemInfo">Atributos da ordem do cliente</param>
        /// <returns>bool</returns>
        public OrdemSmart InserirOrdem(OrdemSmart _OrdemSmart)
        {
            //Instancia a biblioteca de acesso a dados
            AcessaDados lAcessaDados = new AcessaDados();


            try
            {
                //Atribui o nome da conexão para a biblioteca
                lAcessaDados.ConnectionStringName = gNomeConexao;

                //Cria DBComand atribuindo a storedprocedure PRC_INS_ORDER_ROUTER_OMS_V2
                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_ins_smart_order"))
                {
                    logger.Info("ADICIONA OS PARAMETROS DA ORDEM SMART TRADER.");


                    lAcessaDados.AddInParameter(lDbCommand, "@account", DbType.Int32, _OrdemSmart.Account);
                    lAcessaDados.AddInParameter(lDbCommand, "@symbol", DbType.AnsiString, _OrdemSmart.Instrument);
                    lAcessaDados.AddInParameter(lDbCommand, "@quantidade", DbType.AnsiString, _OrdemSmart.Qty);
                    lAcessaDados.AddInParameter(lDbCommand, "@preco_inicio", DbType.Decimal, _OrdemSmart.OperacaoInicio.PrecoOrdem);
                    lAcessaDados.AddInParameter(lDbCommand, "@disparo_inicio", DbType.Decimal, _OrdemSmart.OperacaoInicio.PrecoDisparo);
                    lAcessaDados.AddInParameter(lDbCommand, "@preco_lucro", DbType.Decimal, _OrdemSmart.OperacaoLucro.PrecoOrdem);
                    lAcessaDados.AddInParameter(lDbCommand, "@disparo_lucro", DbType.Decimal, _OrdemSmart.OperacaoLucro.PrecoDisparo);
                    lAcessaDados.AddInParameter(lDbCommand, "@tipo_disp_lucro", DbType.Int32, (int)(_OrdemSmart.OperacaoLucro.PrecoOrdemTipo));
                    lAcessaDados.AddInParameter(lDbCommand, "@valor_tipo_disp_lucro", DbType.Decimal, _OrdemSmart.OperacaoLucro.Valor);
                    lAcessaDados.AddInParameter(lDbCommand, "@preco_perda", DbType.Decimal, _OrdemSmart.OperacaoPerda.PrecoOrdem);
                    lAcessaDados.AddInParameter(lDbCommand, "@disparo_perda", DbType.Decimal, _OrdemSmart.OperacaoPerda.PrecoDisparo);
                    lAcessaDados.AddInParameter(lDbCommand, "@tipo_disp_perda", DbType.Decimal, (int)(_OrdemSmart.OperacaoPerda.PrecoOrdemTipo));
                    lAcessaDados.AddInParameter(lDbCommand, "@valor_tipo_disp_perda", DbType.Decimal, _OrdemSmart.OperacaoPerda.Valor);

                    logger.Info("ENVIA SOLICITAÇÃO PARA A STORED PROCEDURE");

                    DataTable lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            _OrdemSmart.Id = (lDataTable.Rows[i]["SmartOrderID"]).DBToInt32();
                        }
                    }

                    logger.Info("STORED PROCEDURE EXECUTADA COM SUCESSO.");

                    return(_OrdemSmart);
                }
            }
            catch (Exception ex)
            {
                logger.Info("OCORREU UM ERRO AO ENVIAR UMA ORDER SMARTTRADE PARA O BANCO DE DADOS");
                logger.Info("DESCRICAO DO ERRO:    " + ex.Message);

                throw (ex);
            }
        }
Example #4
0
 public SmartInstrument(string symbol, OrdemSmart order)
 {
     this.Instrument = symbol;
     this.Order      = order;
     _signTrading    = new MdsAssinatura();
 }
Example #5
0
 /// Constructor / Destructor
 ///
 public SmartInstrument()
 {
     this.Instrument = string.Empty;
     this.Order      = null;
     _signTrading    = new MdsAssinatura();
 }