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