Closed ptflores1 closed 7 years ago
El descuento debería ser al momento de hacer match, ya que si no hay bids , se perderían criptomonedas en el mercado. Debes también manejar el caso que tu mencionas , ya que como sale en el enunciado no deben existir montos negativos en los balances de los usuarios
Buen comentario, @ptflores1. En el enunciado no se indica cómo manejar esta situación. Por lo tanto, queda a tu criterio cómo diseñar e implementar alguna fórmula para evitar que un trader invente dinero. En otras palabras, un usuario no debe poder vender algo que no tiene, así como tampoco debe poder comprar algo con dinero que no tiene. Ambas restricciones deben cumplirse en tu sistema*.
Además, según mis observaciones empíricas, tanto los bancos como los exchanges resuelven esta encrucijada pecuniaria, gracias a los conceptos de saldo disponible y de saldo contable. :bulb:
Por ejemplo, en el caso de los exchanges, podríamos definirlo de la siguiente manera.
Si estimas que almacenar la información de ambos saldos resolverá este problema de mejor forma, entonces hazlo así. :wink:
* Y como consejo para la la vida real, tampoco deberías vender algo que no tienes. :oncoming_police_car:
@nebil Muuchas Gracias !
Supongamos que user1 tiene 50000 de NEC y 50000 de CLP, realiza un ask de 50000 NEC a 100 CLP c/u. Cual es el balance actual de user1 ? Debería ser 0 NEC y 50000 CLP no? porque de no ser así user1 podría volver a poner otro ask igual y a la hora de hacer match el primero, recibiría los CLP correspondientes pero la segunda order no podría hacer match ya que user1 no tendría NEC y en este caso quedaría una order hecha que no puede ser ejecutada al menos por ahora.
En general la pregunta es: hago los descuentos al momento en que se crea la order(en mi opinion la manera correcta) o se hacen al momento de hacer match?
Espero se entienda. Gracias !