Ejemplo n.º 1
0
 private void criarOrdemVendaNova(OrderBook book, Ordem ordemModelo)
 {
     double somaQuantidade = 0;
     for (int i = 0; i < book.bids.Count; i++)
     {
         double quantidadeOrdemBook = book.asks[i][1];
         somaQuantidade = somaQuantidade + quantidadeOrdemBook;//somo as qtds até chegar em 0.001
         if (somaQuantidade >= 0.001)//percorre até a soma das qtd for maior que 0.001
         {
             double precoOrdemBook = book.asks[i][0];
             if (precoOrdemBook >= ordemModelo.precoLimite)
             {
                 precoOrdemBook = precoOrdemBook - api.parametros.incrementoOrdem;
                 criarOrdemVenda(precoOrdemBook, ordemModelo.obterQuantidade(), ordemModelo.precoLimite);
                 break;
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void criarOrdemResidual(OrderBook book, Ordem ordem)
        {
            try
            {
                Console.WriteLine("Criando ordem de trade residual:");
                ordem.definirQuantidade(ordem.obterQuantidade() - ordem.obterQuantidadeExecutada());
                OrderList orderList = null;
                if (ordem.action == Constantes.TIPO_ORDEM_COMPRA)
                {
                    criarOrdemCompraNova(book, ordem);
                }
                else if (ordem.action == Constantes.TIPO_ORDEM_VENDA)
                {
                    criarOrdemVendaNova(book, ordem);
                }

                // atualizarListaOrdens(orderList, ordem.precoLimite);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erro ao criar ordem residual " + ex.Message);
            }
        }