Example #1
0
        private bool verificarSeFoiExecutada(OrderBook book, Ordem ordemAtualizada, int i)
        {

            if (ordemAtualizada.status.ToUpper().Trim() == Constantes.STATUS_ORDEM_EXECUTADA)
            {
                Console.Beep(); Console.Beep(); Console.Beep();
                Console.WriteLine("Ordem executada :" + ordemAtualizada.id);
                removerOrdem(ordemAtualizada, i);
                inicializarOrdemCompra(book);
                criarOrdemInversa(book, ordemAtualizada);
                api.atualizarSaldoOrdemExecutada(ordemAtualizada);
                return true;
            }
            else if (ordemAtualizada.status.ToUpper().Trim() == Constantes.STATUS_ORDEM_PENDENTE)
            {
                if (Convert.ToDecimal(ordemAtualizada.executedAmount) > 0)
                {
                    Console.Beep();
                    Console.WriteLine("Ordem parcialmente executada :" + ordemAtualizada.id);
                    cancelarOrdem(ordemAtualizada, i);
                    criarOrdemResidual(book, ordemAtualizada);
                    criarOrdemInversa(book, ordemAtualizada);
                    api.atualizarSaldoOrdemExecutada(ordemAtualizada);
                    return true;
                }

            }
            return false;
        }
Example #2
0
 private void tratarOrdemDolar(ref bool criarOCDolar, ref bool criarOVDolar, Ordem ordemAtualizada, int i)
 {
     if (ordemAtualizada.action == Constantes.TIPO_ORDEM_COMPRA)
     {
         criarOCDolar = false;
     }
     else if (ordemAtualizada.action == Constantes.TIPO_ORDEM_VENDA)
     {
         criarOVDolar = false;
     }
     api.imprimirOrdem("Ordem dolar encontrada", ordemAtualizada);
     if (ordemAtualizada.status.ToUpper().Trim() == Constantes.STATUS_ORDEM_CANCELADA)
     {
         removerOrdem(ordemAtualizada, i);
         criarOrdemDolarDoMesmoTipo(ordemAtualizada);
     }
     else if (ordemAtualizada.status.ToUpper().Trim() == Constantes.STATUS_ORDEM_EXECUTADA)
     {
         removerOrdem(ordemAtualizada, i);
         criarOrdemDolarDoMesmoTipo(ordemAtualizada);
         criarOrdemInversa(ordemAtualizada);
         api.atualizarSaldoOrdemExecutada(ordemAtualizada);
     }
     else if (ordemAtualizada.status.ToUpper().Trim() == Constantes.STATUS_ORDEM_PENDENTE &&
              Convert.ToDecimal(ordemAtualizada.executedAmount) > 0)
     {
         cancelarOrdem(ordemAtualizada, i);
         criarOrdemDolarDoMesmoTipo(ordemAtualizada); //Criar nova ordem dolar cheia do mesmo tipo
         criarOrdemInversaResidual(ordemAtualizada);  //criar ordem inversa de trade
         api.atualizarSaldoOrdemExecutada(ordemAtualizada);
     }
     else
     {
         ajustarPrecoDolar(ordemAtualizada, i);
     }
 }