Estoy construyendo un servicio similar a BullionVault donde los usuarios pueden comprar y vender lingotes. Los usuarios colocarán sus órdenes de compra y venta en el servicio. Las órdenes coincidentes se ejecutarán.
Mi pregunta es la siguiente:
Cuando hay una orden de compra y otra de venta coincidentes, en las que el precio de venta es significativamente inferior al precio de compra de la orden de compra, ¿cómo debe determinarse el precio?
Estas son las opciones que se me ocurren:
- O se toma el precio del comprador o se toma el precio del vendedor y uno de ellos se beneficia.
- La diferencia de precios se divide por la mitad y ambos se benefician.
- La bolsa compra al vendedor y vende al comprador en tiempo real, por lo que la diferencia es recogida por la bolsa.
Como esto es similar a cómo funcionan los mercados de valores, estoy tratando de entender cómo se ejecuta este tipo de operación en esas bolsas.