private void monitorar() { bool criarOrdemCompra = true; bool criarOrdemVenda = true; OrderBook book = api.obterLivroOrdens();//TODO: ACABEI DE TIRAR DO FOR //verifica se tem ordem minha criada if (ListaOrdem != null && ListaOrdem.oReturn != null && ListaOrdem.oReturn.Count > 0) { double melhorPrecoCompra = book.bids[0][0]; double melhorPrecoVenda = book.asks[0][0]; for (int i = ListaOrdem.oReturn.Count - 1; i >= 0; --i) { Ordem ordemAtualizada = api.obterOrdemPorID(ListaOrdem.oReturn[i].id); ordemAtualizada.precoLimite = ListaOrdem.oReturn[i].precoLimite; ordemAtualizada.ordemPai = ListaOrdem.oReturn[i].ordemPai; if (ordemAtualizada.action == Constantes.TIPO_ORDEM_COMPRA) { criarOrdemCompra = false; imprimirComparativo(ordemAtualizada, melhorPrecoCompra); //TODO: TROCAR != POR < E REVER LOGICA ABAIXO bool executada = verificarSeFoiExecutada(book, ordemAtualizada, i);//trata se foi executada if (!executada && !melhorPrecoCompraEhMeu(book, ordemAtualizada) && !meuPrecoJaEstaNoLimite(book, ordemAtualizada))//verifica se minha OC pendente é a melhor { if (ordemAtualizada.ordemPai) { ordemAtualizada.precoLimite = (melhorPrecoVenda - api.parametros.spreadCompraVenda); } cancelarOrdem(ordemAtualizada, i); criarOrdemCompraNova(book, ordemAtualizada); } } else if (ordemAtualizada.action == Constantes.TIPO_ORDEM_VENDA) { criarOrdemVenda = false; imprimirComparativo(ordemAtualizada, melhorPrecoVenda); bool executada = verificarSeFoiExecutada(book, ordemAtualizada, i);//trata se foi executada if (!executada && !menorPrecoVendaEhMeu(book, ordemAtualizada) && !meuPrecoJaEstaNoLimite(book, ordemAtualizada))//verifica se minha OC pendente é a melhor { if (ordemAtualizada.ordemPai) { ordemAtualizada.precoLimite = (melhorPrecoCompra + api.parametros.spreadCompraVenda); } cancelarOrdem(ordemAtualizada, i); criarOrdemVendaNova(book, ordemAtualizada); } } } } else { criarOrdemCompra = false; criarOrdemVenda = false; inicializar(); } if (criarOrdemCompra) { criarOrdemCompra = false; inicializarOrdemCompra(book); } if (criarOrdemVenda) { criarOrdemVenda = false; inicializarOrdemVenda(book); } }