/// <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); } }
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); } }
public SmartInstrument(string symbol, OrdemSmart order) { this.Instrument = symbol; this.Order = order; _signTrading = new MdsAssinatura(); }
/// Constructor / Destructor /// public SmartInstrument() { this.Instrument = string.Empty; this.Order = null; _signTrading = new MdsAssinatura(); }