Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paladini/239c2cb199b1bcced585 to your computer and use it in GitHub Desktop.
Save paladini/239c2cb199b1bcced585 to your computer and use it in GitHub Desktop.
pedido = 1.0 BTC
restante = pedido
preco_final = R$0.0
# Cuidado que tem que tomar bastante cuidado com os cálculos. Eu por exemplo não verifiquei caso "quantidade + restante >= restante".
function iteracoes_sobre_ofertas_de_venda_de_bitcoin(ask):
preco = ask.get_preco()
quantidade = ask.get_quantidade
if (quantidade > restante):
preco_final = preco * pedido
restante = 0
break #saio do loop
else:
preco_final += preco * quantidade
restante -= quantidade
#
# Exemplo de iterações em um dado caso de uso:
#
Iteração1 (oferta de bitcoin mais barato ["ask 0"]):
Preço = R$822,00
Quantidade = 0.3
preco_final = (0.3*822)
restante = 0.7
Iteração2 (segunda oferta de bitcoin mais barata ["ask 1"]):
Preço: R$830,00
Quantidade: 0.5
preco_final = (0.3*822) + (0.5*830)
restante = 0.2
Iteração3 (terceira oferta de bitcoin mais barata ["ask 2"]):
Preço: R$845,00
Quantidade: 0.8
preco_final = (0.3*822) + (0.5*830) + (0.2*845) #cuidado com esse ultimo calculo, pois quantidade > restante.
restante = 0
# Fim
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment