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); }
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); } }
/// <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); } }