Beispiel #1
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);
        }
Beispiel #2
0
 public EnviarOrdemSmartResponse EnviarOrdemSmart(EnviarOrdemSmartRequest ordemReq)
 {
     try
     {
         EnviarOrdemSmartResponse resp = new EnviarOrdemSmartResponse();
         resp = _orderProcessing.EnviarOrdem(ordemReq);
         return(resp);
     }
     catch (Exception ex)
     {
         logger.Error("Problemas no envio da ordem smart: " + ex.Message, ex);
         return(null);
     }
 }
Beispiel #3
0
 public EnviarOrdemSmartResponse EnviarOrdem(EnviarOrdemSmartRequest ordem)
 {
     try
     {
         EnviarOrdemSmartResponse resp = new EnviarOrdemSmartResponse();
         if (null != _smtMonitor)
         {
             _smtMonitor.AddInstrument(ordem.SmartOrder.Instrument, ordem.SmartOrder);
         }
         return(resp);
     }
     catch (Exception ex)
     {
         logger.Error("Erro na Ordem Smart: " + ex.Message, ex);
         return(null);
     }
 }
Beispiel #4
0
        /// <summary>
        /// Method accountable for managing a new SmartTrader order
        /// </summary>
        /// <param name="request"> SmartTrader order parameters </param>
        /// <returns></returns>
        public EnviarOrdemSmartResponse EnviarOrdemSmartTrader(EnviarOrdemSmartRequest request)
        {
            EnviarOrdemSmartResponse response = new EnviarOrdemSmartResponse();

            try
            {
                /* TRACING */
                logger.Info("ACCOUNT............................................." + request.SmartOrder.Account.ToString());
                logger.Info("INSTRUMENT.........................................." + request.SmartOrder.Instrument.ToString());
                logger.Info("PRECOORDEM.........................................." + request.SmartOrder.OperacaoInicio.PrecoOrdem.ToString());
                logger.Info("PRECODISPARO........................................" + request.SmartOrder.OperacaoInicio.PrecoDisparo.ToString());
                logger.Info("OPERACAO LUCRO [PRECOORDEM] ........................" + request.SmartOrder.OperacaoLucro.PrecoOrdem.ToString());
                logger.Info("OPERACAO LUCRO [PRECODISPARO] ......................" + request.SmartOrder.OperacaoLucro.PrecoDisparo.ToString());
                logger.Info("OPERACAO LUCRO [TIPOORDEM] ........................." + request.SmartOrder.OperacaoLucro.PrecoOrdemTipo.ToString());
                logger.Info("OPERACAO LUCRO [VALOR] ............................." + request.SmartOrder.OperacaoLucro.Valor.ToString());
                logger.Info("OPERACAO PERDA [PRECOORDEM] ........................" + request.SmartOrder.OperacaoPerda.PrecoOrdem.ToString());
                logger.Info("OPERACAO PERDA [PRECODISPARO] ......................" + request.SmartOrder.OperacaoPerda.PrecoDisparo.ToString());
                logger.Info("OPERACAO LUCRO [TIPOORDEM] ........................." + request.SmartOrder.OperacaoPerda.PrecoOrdemTipo.ToString());
                logger.Info("OPERACAO LUCRO [VALOR] ............................." + request.SmartOrder.OperacaoPerda.Valor.ToString());

                //REGISTERING THE ORDER IN THE DB
                PersistenciaSmartTrader _PersistenciaSmartTrader = new PersistenciaSmartTrader();

                // RETURN THE SAME OBJECT ,HOWEVER THE PROPERTY "ID" IS FILLED IN
                response.OrdemSmart     = _PersistenciaSmartTrader.InserirOrdem(request.SmartOrder);
                response.StatusResponse = "OK";

                ThreadPool.QueueUserWorkItem(new WaitCallback(SendOrder), request);
            }
            catch (Exception ex)
            {
                response.DescricaoErro  = "OCORREU UM ERRO AO GRAVAR A SMARTORDER NO BANCO DE DADOS. DESCRICAO DO ERRO: " + ex.Message;
                response.StackTrace     = ex.StackTrace;
                response.StatusResponse = "ERRO";
                logger.Info("OCORREU UM ERRO AO GRAVAR A SMARTORDER NO BANCO DE DADOS. DESCRICAO DO ERRO: " + ex.Message);
            }

            return(response);
        }