Spot, bid, ask y spread: cómo se cotizan los metales preciosos
Qué significan spot, bid, ask, precio medio y spread en el oro, la plata, el platino y el paladio, cómo cotizan los distribuidores y cómo mostrar bid/ask vía API.
Por qué una onza de oro tiene varios precios
Consulta el precio del oro en tres sitios web al mismo tiempo y a menudo verás tres cifras ligeramente distintas. La web de un distribuidor de monedas mostrará otras dos. Ninguna es necesariamente incorrecta: responden a preguntas distintas. Una muestra el precio al contado medio de mercado, otra un contrato de futuros, otra el precio al que un distribuidor te vende un lingote y otra el precio al que te lo recompra.
Si desarrollas algo que muestre o use precios de metales preciosos, como la tienda online de un distribuidor, una aplicación de seguimiento de carteras, una calculadora de joyería o un informe interno, necesitas saber con cuál de estas cifras trabajas. Este artículo explica el vocabulario (spot, bid, ask, precio medio y spread), muestra cómo los distribuidores convierten las cotizaciones mayoristas en precios al público y recorre cómo solicitar y mostrar los precios bid y ask con la API REST de MetalAPI.
Este es un artículo divulgativo sobre cómo se cotizan los precios. No es asesoramiento de inversión ni de trading, y todas las cifras de los ejemplos son ilustrativas.
Precio spot: la referencia para entrega inmediata
El precio spot o precio al contado es el precio de una cantidad estándar de metal para entrega inmediata, en contraposición a la entrega en una fecha futura. En el mercado mayorista del oro, que opera en gran medida fuera de bolsa (OTC) y tiene su centro en Londres, “spot” significa por convención una liquidación dos días hábiles después de la operación.
Los metales preciosos se cotizan por onza troy (31,1034768 gramos), normalmente en dólares estadounidenses, con códigos de estilo ISO: XAU para el oro, XAG para la plata, XPT para el platino y XPD para el paladio. Por tanto, XAU/USD se lee como “dólares estadounidenses por onza troy de oro”, del mismo modo que EUR/USD se lee como “dólares estadounidenses por euro”.
Como el mercado al contado es OTC, no hay una única bolsa que publique una última operación oficial. Los bancos y los proveedores de liquidez difunden sus propias cotizaciones de doble sentido, y el “precio spot” que ves en un sitio web es un valor representativo derivado de esas cotizaciones, casi siempre el precio medio. Hay algunos precios relacionados que es fácil confundir con él:
- Los precios de futuros, como el del contrato de oro de COMEX, son para entrega en un mes futuro. Suelen diferir del precio al contado por el coste de mantener la posición: los intereses y el almacenamiento hasta la entrega.
- Los precios de referencia, como el LBMA Gold Price (fijado en subastas dos veces cada día hábil en Londres) y el LBMA Silver Price (fijado una vez al día), son valores de referencia únicos que se usan para liquidar contratos y valorar tenencias. Se fijan a horas determinadas y no se mueven entre una fijación y otra.
- Los precios al público de monedas y lingotes incluyen primas sobre el precio al contado. Se tratan más abajo.
Bid, ask y precio medio
En un mercado de doble sentido, cada cotización consta de dos cifras:
- El bid (precio de compra) es el precio más alto que un creador de mercado está dispuesto a pagar en ese momento. Es el precio al que podrías vender.
- El ask (precio de venta), también llamado offer, es el precio más bajo al que un creador de mercado está dispuesto a vender. Es el precio al que podrías comprar.
El ask siempre es igual o superior al bid. El precio medio (mid) es su promedio, (bid + ask) / 2. Nadie opera al precio medio como tal; es una referencia neutral que se sitúa entre los dos lados y no favorece ni al comprador ni al vendedor. Eso lo convierte en la cifra natural para gráficos, valoraciones de carteras y titulares del tipo “precio del oro hoy”, y es lo que la mayoría de las API de precios devuelven por defecto.
| Término | Significado | Uso habitual |
|---|---|---|
| Bid | Mejor precio que pagará un comprador | Valorar metal que venderías; referencia para los precios de recompra de los distribuidores |
| Ask (offer) | Mejor precio que aceptará un vendedor | Coste de comprar; referencia para los precios de venta de los distribuidores |
| Precio medio (mid) | Promedio del bid y el ask | Gráficos, valoraciones, precios de titular |
| Spread | Ask menos bid | Medir la liquidez y el coste de una compra y venta inmediatas |
Un ejemplo práctico con cifras ilustrativas. Supongamos que la cotización mayorista del oro es de 3997,62 de bid y 3998,16 de ask, en dólares estadounidenses por onza troy:
bid = 3,997.62
ask = 3,998.16
mid = (3,997.62 + 3,998.16) / 2 = 3,997.89
spread = 3,998.16 - 3,997.62 = 0.54 USD
spread en % del mid = 0.54 / 3,997.89 ≈ 0.0135 % (unos 1.35 puntos básicos)Los spreads en la práctica
El spread es el precio de la inmediatez: lo que costaría comprar y volver a vender en el acto. Compara los spreads en términos relativos, como porcentaje del precio medio o en puntos básicos (centésimas de punto porcentual). Un spread absoluto de 0,50 significa algo muy distinto en el oro, a varios miles de dólares la onza, que en la plata, a unas pocas decenas de dólares.
Varios factores lo amplían o lo estrechan:
- La liquidez del metal. El oro es el metal precioso más negociado y suele tener el spread relativo más estrecho. El platino y el paladio se negocian en volúmenes mucho menores, así que sus spreads suelen ser más amplios en términos porcentuales.
- La hora del día. Los spreads tienden a ser más estrechos cuando coinciden los principales centros de negociación y más amplios en las horas tranquilas, como en torno al cierre diario de Nueva York y la reapertura semanal del domingo por la tarde, hora de Nueva York.
- La volatilidad y las noticias. En torno a la publicación de datos económicos importantes o en momentos de tensión en el mercado, los creadores de mercado amplían sus cotizaciones para protegerse.
- El tamaño. Un spread cotizado se aplica a un tamaño de operación estándar. Las órdenes muy grandes pueden cotizarse con un spread más amplio, y las pequeñas compras minoristas conllevan costes que el spread mayorista no incluye en absoluto.
Cuando calcules spreads en el código, usa las cifras sin redondear de la fuente de datos y mide el spread relativo con respecto al precio medio:
function spreadStats(bid, ask) {
const mid = (bid + ask) / 2;
const spread = ask - bid;
return {
mid,
spread,
spreadPct: (spread / mid) * 100,
spreadBps: (spread / mid) * 10000,
};
}
spreadStats(3997.62, 3998.16);
// mid ≈ 3997.89, spread ≈ 0.54, spreadPct ≈ 0.0135, spreadBps ≈ 1.35Los spreads mayoristas y minoristas son cosas distintas. El spread interbancario del oro es una pequeña fracción de un punto porcentual. La diferencia entre los precios de venta y de recompra de un distribuidor para una moneda de una onza es mucho mayor, porque también cubre la prima del producto, los costes de distribución y el margen del distribuidor.
Cómo convierten los distribuidores el spot en un precio
Un distribuidor de lingotes, un joyero o una aplicación de inversión rara vez muestra la cotización mayorista tal cual. La mayoría parten de una referencia en tiempo real, ya sea el precio medio o el bid y el ask, y aplican sus propias condiciones a cada lado. Una estructura habitual es esta:
- Precio de venta (lo que paga el cliente) = ask de referencia × peso × pureza + prima
- Precio de recompra (lo que recibe el cliente) = bid de referencia × peso × pureza − descuento
La prima cubre la fabricación (acuñar una moneda pequeña cuesta más por onza que fundir un lingote grande), el seguro, el envío, los costes de pago y el margen. Puede ser un porcentaje sobre el precio al contado, un importe fijo por artículo o ambas cosas, y varía según el producto, el tamaño, el distribuidor y la demanda.
A menudo hay dos conversiones intermedias. Los precios para clientes fuera de Estados Unidos se convierten de dólares estadounidenses a la divisa local, lo que introduce un tipo de cambio y, a veces, un spread cambiario propio. Y los productos que se venden por gramo o por quilate, como las joyas, se convierten desde onzas troy y se escalan según la pureza: el oro de 22K tiene una pureza de 22/24, aproximadamente del 91,67 %, y el de 18K, del 75 %.
| Paso (ilustrativo, moneda de oro de 1 oz) | Lado de venta | Lado de recompra |
|---|---|---|
| Referencia mayorista, USD por onza troy | Ask 3998,16 | Bid 3997,62 |
| Ajuste del distribuidor (solo ejemplo) | Prima del +3,0 % | Descuento del −1,0 % |
| Precio para el cliente, USD | ≈ 4118,10 | ≈ 3957,64 |
La prima y el descuento de esta tabla son inventados para el ejemplo; los reales varían mucho. Lo importante es la estructura: el spread que ve el cliente es el spread mayorista más los ajustes del distribuidor en ambos lados, y la parte mayorista suele ser la más pequeña.
Solicitar bid y ask con MetalAPI
Por defecto, MetalAPI devuelve el precio medio. Para los metales preciosos al contado, ese precio medio se deriva de fuentes interbancarias de bid/ask. En el plan Standard y superiores también puedes solicitar los dos lados, añadiendo -BID y -ASK a un símbolo en currencies:
curl "https://metalapi.com/api/v1/latest?currencies=XAU,XAU-BID,XAU-ASK" \
-H "Authorization: Bearer YOUR_API_KEY"Cada lado solicitado aparece en rates en ambas direcciones, exactamente igual que el precio medio. USDXAU-BID es el bid en dólares estadounidenses por onza troy, y XAU-BID es su inverso:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "USD",
"rates": {
"XAU": 0.0002501319446,
"USDXAU": 3997.89,
"XAU-BID": 0.0002501488386,
"USDXAU-BID": 3997.62,
"XAU-ASK": 0.0002501150529,
"USDXAU-ASK": 3998.16
}
}Conviene conocer algunos detalles:
- Qué símbolos. El bid y el ask están disponibles para los símbolos cotizados a partir de fuentes interbancarias: los metales preciosos y las principales divisas. Los símbolos basados en futuros, como el cobre o el petróleo crudo, se publican con un único precio. Si un lado no está disponible para un símbolo, no aparece en
rates, así que comprueba que la clave existe en lugar de darlo por hecho. - Una sola instantánea. El bid, el ask y el precio medio proceden de la misma instantánea, así que son coherentes entre sí. Se actualizan con el intervalo de tu plan: cada 10 minutos en Standard, cada minuto en Advanced y Pro, cada 15 segundos en Ultra y Business, y cada 5 segundos en Enterprise.
- Otras divisas y unidades.
baseyunitfuncionan como siempre, así quebase=EUR&unit=gramdevuelve el bid y el ask del oro en euros por gramo. La conversión a otra divisa base usa el tipo medio de esa divisa; si también necesitas aplicar un spread cambiario, añádelo tú. - Planes. En Free y Lite, una solicitud que incluya símbolos
-BIDo-ASKdevuelve el error106(plan_restriction). Como las demás restricciones de plan, esa solicitud no se factura. - Historial. Los endpoints históricos (cierres diarios, series temporales, OHLC) devuelven precios medios. El bid y el ask forman parte de la última cotización.
- Asistentes de IA. Los mismos sufijos funcionan en el argumento
symbolsde la herramienta MCPget_latest_pricessi usas MetalAPI desde Claude o ChatGPT. Consulta IA y MCP.
Mostrar las cotizaciones correctamente
La mayoría de los errores con precios de metales se producen en la capa de presentación, no en los datos. Una breve lista de comprobación:
- Indica qué precio es. Etiqueta los precios medios como tales (“spot” o “precio medio”). Si muestras ambos lados, etiquétalos desde el punto de vista del cliente: el cliente compra al ask y vende al bid. Las webs de los distribuidores suelen usar “Compramos” y “Vendemos”, que es el punto de vista del distribuidor; mezclar ambas convenciones en una misma página confunde a la gente.
- Muestra la unidad y la divisa. “3997,89 $” por sí solo es ambiguo. Escribe “USD por onza troy” o “EUR por gramo”. Cuidado con las onzas: en el parámetro
unitde MetalAPI,ounceyozsignifican la onza avoirdupois (28,35 g), mientras que los lingotes se cotizan por onza troy (troy_oz, el valor por defecto). - Indica cuándo. Muestra la hora de la cotización a partir del campo
timestampde la respuesta, que es la hora de los datos, no la de tu solicitud. En los planes con actualizaciones diferidas, indica con qué frecuencia se actualiza el precio. - Ten en cuenta el horario de mercado. Los metales al contado y las principales divisas se negocian desde el domingo a las 17:00 hasta el viernes a las 17:00, hora de Nueva York. Durante el fin de semana, MetalAPI sigue devolviendo los precios de cierre del viernes, así que muestra un aviso de “mercado cerrado” en lugar de dejar que un precio congelado parezca en vivo.
- Redondea solo para mostrar. Mantén la precisión completa en los cálculos y redondea al final. Un spread calculado a partir de un bid y un ask redondeados puede desviarse en una fracción considerable de su propio tamaño.
- Protégete de las cotizaciones cruzadas. Si tus propios ajustes llegan a producir un precio de venta inferior al de recompra, trátalo como un error y deja de cotizar hasta corregirlo.
- Deja claro que los precios son indicativos. Los precios de una API de datos son información, no una oferta de compraventa. Si los muestras a clientes, deja claro que el precio vinculante es el que se confirma al finalizar la compra o en la confirmación de la operación.
Para juntarlo todo, este pequeño ejemplo obtiene el precio medio, el bid y el ask del oro en euros por gramo y los imprime con etiquetas y una marca de tiempo:
const res = await fetch(
"https://metalapi.com/api/v1/latest?base=EUR&unit=gram¤cies=XAU,XAU-BID,XAU-ASK",
{ headers: { Authorization: "Bearer " + process.env.METALAPI_KEY } },
);
const data = await res.json();
if (!data.success) throw new Error(data.error.code + ": " + data.error.info);
const r = data.rates;
const eur = new Intl.NumberFormat("en-GB", { style: "currency", currency: "EUR" });
const asOf = new Date(data.timestamp * 1000).toISOString();
console.log("Gold, EUR per gram, as of " + asOf);
console.log("Mid:", eur.format(r.EURXAU));
if (r["EURXAU-BID"] !== undefined && r["EURXAU-ASK"] !== undefined) {
console.log("You sell at (bid):", eur.format(r["EURXAU-BID"]));
console.log("You buy at (ask):", eur.format(r["EURXAU-ASK"]));
}Referencia rápida
| Término | Definición |
|---|---|
| Spot | Precio para entrega inmediata; en el mercado mayorista, liquidación dos días hábiles después de la operación |
| Bid | Precio al que el mercado te compra |
| Ask / offer | Precio al que el mercado te vende |
| Precio medio (mid) | (bid + ask) / 2; la referencia habitual y el precio por defecto de la API |
| Spread | Ask menos bid; a menudo se expresa como porcentaje del precio medio o en puntos básicos |
| Punto básico | 0,01 %, una centésima de punto porcentual |
| Prima | El recargo de un distribuidor sobre el precio de referencia de un producto físico |
| Onza troy | 31,1034768 gramos; la unidad en la que se cotizan los metales preciosos |
Para probarlo tú mismo, regístrate y obtén una clave gratuita para trabajar con precios medios, y consulta los precios para ver qué planes incluyen bid y ask. La documentación de la API enumera todos los parámetros, y la guía de formatos de datos y unidades explica con más detalle las divisas base, las unidades de masa y las cotizaciones inversas.
Pruébalo con tus propios datos
Crea una cuenta gratuita y haz tu primera solicitud en menos de dos minutos. 100 solicitudes al mes, sin tarjeta de crédito.
Sigue leyendo
Conecta Claude y ChatGPT a precios del oro en tiempo real con MCP
Conecta Claude, ChatGPT, Cursor y VS Code a precios del oro y otros metales en tiempo real con el servidor MCP de MetalAPI: OAuth o clave API, herramientas y cuotas.
Precios del cobre, el aluminio, el zinc y el petróleo por API: guía para desarrolladores
Obtén por API precios del cobre, aluminio, zinc, acero, petróleo y gas natural: unidades de cada mercado, normalización, futuros, conversiones y ejemplos de código.
Cómo elegir una API de precios de metales preciosos: 12 preguntas clave
Una lista neutral para elegir una API de precios de metales preciosos: fuentes, actualidad, historial, unidades, bid/ask, límites, precio, seguridad, licencia y MCP.