示例#1
0
        private void EnviarOrdemRisco()
        {
            DateTime Inicio = DateTime.Now;

            EnviarOrdemRequest OrdemRequest = new EnviarOrdemRequest
            {
                OrdemInfo = new OrdemInfo
                {
                    Account      = IdCliente,
                    ChannelID    = 1,
                    ExecBroker   = "227",
                    ExpireDate   = DateTime.Now.AddDays(30),
                    OrderQty     = 1800,
                    OrdType      = OrdemTipoEnum.OnClose,
                    OrdStatus    = OrdemStatusEnum.NOVA,
                    Price        = 35.00,
                    RegisterTime = DateTime.Now,
                    Side         = OrdemDirecaoEnum.Compra,
                    Symbol       = "PETRH42",
                    TimeInForce  = OrdemValidadeEnum.ValidaAteSerCancelada,
                    Description  = "Envio de ordem de compra de opções."
                }
            };

            IServicoOrdens      servicoOrdem = Ativador.Get <IServicoOrdens>();
            EnviarOrdemResponse response     = servicoOrdem.EnviarOrdem(OrdemRequest);

            TimeSpan TempoGasto = (Inicio - DateTime.Now);
        }
示例#2
0
        public EnviarOrdemBasketResponse EnviarOrdemBasket(EnviarOrdemBasketRequest _request)
        {
            EnviarOrdemBasketResponse _response = new EnviarOrdemBasketResponse();

            IServicoOrdens _gServico = Ativador.Get <IServicoOrdens>();

            try
            {
                ListarItensBasketResponse _resposta = new PersistenciaOrdens().SelecionarItemsBasket(_request.CodigoBasket);

                foreach (BasketItemInfo info in _resposta.ListaItemsBasket)
                {
                    EnviarOrdemRequest OrdemRequest = new EnviarOrdemRequest();

                    ClienteOrdemInfo _ClienteOrdemInfo = new ClienteOrdemInfo();

                    _ClienteOrdemInfo.CodigoCliente       = info.CodigoCliente;
                    _ClienteOrdemInfo.DataHoraSolicitacao = DateTime.Now;
                    _ClienteOrdemInfo.DataValidade        = info.DataValidade;

                    if (info.LadoOferta == "C")
                    {
                        _ClienteOrdemInfo.DirecaoOrdem = OrdemDirecaoEnum.Compra;
                    }
                    else
                    {
                        _ClienteOrdemInfo.DirecaoOrdem = OrdemDirecaoEnum.Venda;
                    }

                    _ClienteOrdemInfo.Instrumento        = info.Papel;
                    _ClienteOrdemInfo.PortaControleOrdem = _request.PortaControle.ToString();
                    _ClienteOrdemInfo.Preco              = double.Parse(info.Preco.ToString());
                    _ClienteOrdemInfo.Quantidade         = info.Quantidade;
                    _ClienteOrdemInfo.QuantidadeAparente = info.QuantidadeAparente;
                    _ClienteOrdemInfo.QuantidadeMinima   = info.QuantidadeMinima;
                    _ClienteOrdemInfo.TipoDeOrdem        = OrdemTipoEnum.Limitada;
                    _ClienteOrdemInfo.ValidadeOrdem      = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemValidadeEnum.ValidaParaODia;

                    OrdemRequest.ClienteOrdemInfo = _ClienteOrdemInfo;

                    EnviarOrdemResponse _resp = _gServico.EnviarOrdem(OrdemRequest);
                }

                new PersistenciaOrdens().AtualizarStatusBasket("D", _request.CodigoBasket);

                _response.Sucesso = true;

                return(_response);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
示例#3
0
        /// <summary>
        /// Method in charge of handle with the IServicoOrdens
        /// </summary>
        /// <param name="pEnviarOrdemSmartRequest"></param>
        private void SendOrder(object pEnviarOrdemSmartRequest)
        {
            //unboxing
            EnviarOrdemSmartRequest _EnviarOrdemSmartRequest = (EnviarOrdemSmartRequest)(pEnviarOrdemSmartRequest);

            EnviarOrdemRequest  OrderRequest  = new EnviarOrdemRequest();
            EnviarOrdemResponse OrderResponse = new EnviarOrdemResponse();

            try
            {
                IServicoOrdens ServicoOrdens = Ativador.Get <IServicoOrdens>();

                //FILLING SMARTTRADER ORDER

                OrderRequest.ClienteOrdemInfo.Account     = _EnviarOrdemSmartRequest.SmartOrder.Account;
                OrderRequest.ClienteOrdemInfo.Symbol      = _EnviarOrdemSmartRequest.SmartOrder.Instrument;
                OrderRequest.ClienteOrdemInfo.ExpireDate  = DateTime.Now;
                OrderRequest.ClienteOrdemInfo.TimeInForce = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemValidadeEnum.ValidaParaODia;

                if (_EnviarOrdemSmartRequest.SmartOrder.Side == Side.Compra)
                {
                    OrderRequest.ClienteOrdemInfo.Side = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemDirecaoEnum.Compra;
                }
                else if (_EnviarOrdemSmartRequest.SmartOrder.Side == Side.Venda)
                {
                    OrderRequest.ClienteOrdemInfo.Side = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemDirecaoEnum.Venda;
                }

                OrderRequest.ClienteOrdemInfo.Price       = _EnviarOrdemSmartRequest.SmartOrder.OperacaoInicio.PrecoDisparo;
                OrderRequest.ClienteOrdemInfo.OrdType     = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemTipoEnum.Limitada;
                OrderRequest.ClienteOrdemInfo.TimeInForce = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemValidadeEnum.ValidaParaODia;
                OrderRequest.ClienteOrdemInfo.OrderQty    = _EnviarOrdemSmartRequest.SmartOrder.Qty;
                OrderRequest.ClienteOrdemInfo.ChannelID   = 362;
                OrderRequest.ClienteOrdemInfo.CompIDOMS   = "SMART";
                OrderRequest.ClienteOrdemInfo.CumQty      = 0;
                OrderRequest.ClienteOrdemInfo.MinQty      = 0;
                OrderRequest.ClienteOrdemInfo.OrigClOrdID = "";
                OrderRequest.ClienteOrdemInfo.Memo5149    = "SMART";
                OrderRequest.ClienteOrdemInfo.StopStartID = _EnviarOrdemSmartRequest.SmartOrder.Id;

                OrderResponse = ServicoOrdens.EnviarOrdem(OrderRequest);
            }
            catch (Exception ex)
            {
                logger.Info("OCORREU UM ERRO AO ENVIAR A ORDEM PARA O SERVICO DE ORDENS. DESCRICAO: " + ex.Message);
            }
        }