Skip to content

Methodology

Metodología de divisas

Tasas diarias del BCE, API Frankfurter, caché ISR, actualización cada hora.

By Published

El clúster de Divisas incluye 50 pares FX en vivo con respecto a las tasas de mercado medio publicadas por el Banco Central Europeo. El flujo de datos es intencionalmente simple: el BCE publica tasas de referencia diarias; la API Frankfurter de código abierto las republica como JSON; almacenamos el resultado con ISR de Next.js durante una hora. Sin diferencial propietario, sin agregación entre proveedores, sin capa de «nuestros precios».

La fuente de datos: tasas de referencia diarias del BCE

El Banco Central Europeo publica tasas de cambio de referencia para el euro frente a ~32 divisas cada día bancario a las 16:00 CET. Son tasas de mercado medio derivadas de una concertación entre bancos centrales de la UE; no son negociables pero son el punto de referencia canónico.

Para pares no EUR (USD → GBP, JPY → TRY) triangulamos a través del EUR: USD/EUR × EUR/GBP da USD/GBP. La triangulación es algebraicamente exacta y es lo que calcula internamente Frankfurter.

La estrategia de almacenamiento en caché

Las tasas de divisas se actualizan como máximo una vez al día (el BCE no publica tasas los fines de semana), por lo que una caché de 1 hora es generosa. Usamos la regeneración estática incremental de Next.js:

  • Primera solicitud a una página de divisas: el servidor obtiene Frankfurter, renderiza y almacena en caché.
  • Solicitudes posteriores dentro de 1 hora: HTML en caché, sub-100 ms.
  • Después de 1 hora: la siguiente solicitud obtiene la página obsoleta inmediatamente, lo que activa una actualización en segundo plano.

Esto significa que la tasa que ve tiene hasta una hora de antigüedad. Para conversión minorista eso es irrelevante: los diferenciales bancarios cambian la respuesta mucho más que una hora de deriva. Para contextos de alta precisión (trading algorítmico, transferencias bancarias grandes) obtenga la tasa de su banco, no de ninguna referencia pública.

El diferencial frente a la tasa que realmente obtendrá

La tasa de mercado medio es la tasa a la que transaccionarían dos bancos. Usted, como cliente minorista, no obtendrá esta tasa. Su coste real incluye un diferencial adicional:

  • Redes de tarjetas (Visa, Mastercard): normalmente 0.2-1% por encima del mercado medio.
  • Bancos emisores que añaden su propio diferencial: común en EE. UU.; 1-3% añadido encima de la tasa de la red.
  • Comisiones de conversión de divisas en cajeros automáticos y terminales POS (DCC): diferencial de 3-8%. Siempre rechace si le piden pagar en su moneda local en el extranjero.
  • Proveedores especializados de forex (Wise, Revolut): 0.3-1% por encima del mercado medio, sin DCC. La opción minorista más cercana a la tasa de referencia.
  • Bancos tradicionales para transferencias: diferencial del 2-5%. La peor de las opciones minoristas comunes.

Detalles del algoritmo: resolución de tasas y triangulación

Cada solicitud de divisa se resuelve en una única multiplicación. La parte interesante es cómo obtenemos la tasa correcta por unidad cuando la base solicitada no es EUR.

  1. Normalizar ambas divisas a códigos de tres letras ISO 4217 y validar contra la lista compatible (~32 divisas: cada código en la serie de referencia del BCE más un pequeño conjunto de tasas cruzadas).
  2. Obtener el conjunto de tasas basadas en EUR más reciente de la caché de Frankfurter (TTL de 1 hora vía ISR). El payload es un mapa { "USD": 1.0865, "GBP": 0.8479, ... } todas cotizadas como 1 EUR = X objetivo.
  3. Triangular si ninguno es EUR. Para JPY → TRY: tasa_JPY_TRY = tasa_EUR_TRY / tasa_EUR_JPY. La triangulación es algebraicamente exacta en aritmética real; el error de punto flotante de la división es < 10⁻¹⁵, muy por debajo de cualquier diferencial minorista significativo.
  4. Calcular la conversión. salida = entrada × tasa_de_a. La visualización redondea a 4 decimales para salidas de estilo FX y 2 decimales cuando se combina con los principales símbolos de divisas.
  5. Estampar los metadatos de la respuesta con rateDate (la fecha de publicación del BCE, p. ej., 2026-05-13) y source(“ECB via Frankfurter”).

Fuentes y referencias

Cada tasa que emite esta herramienta se remonta en última instancia a la serie de referencia diaria del BCE publicada a las 16:00 CET. Frankfurter es un republicador de código abierto transparente de esa serie; nuestra caché simplemente respeta sus encabezados Cache-Control. ISO 4217 rige el espacio de nombres de los códigos de divisas. Las cifras de diferencial minorista citadas en esta página se basan en datos de referencia del BIS y el FMI: citas completas en el bloque de fuentes a continuación.

Supuestos y limitaciones

  • Solo triangulación con pivote EUR. Si ambas divisas no son EUR y la serie del BCE no cubre una de ellas en una fecha determinada, el conversor devuelve la tasa del día hábil anterior más cercano en lugar de intentar un pivote diferente.
  • Solo datos de días de semana. El BCE no publica los fines de semana ni en los festivos TARGET. Las solicitudes de fin de semana devuelven la tasa del viernes; el campo rateDate lo indica.
  • Sin datos de mercado tick a tick en vivo. La tasa de referencia del BCE es un fix medio diario, no una cotización en tiempo real. El trading algorítmico necesita un feed de Bloomberg o Reuters; este conversor es una referencia, no un servicio de datos de mercado.
  • Sin modelado del diferencial. La tasa mostrada es de mercado medio con diferencial bid/ask cero. La conversión minorista real normalmente paga un 0.3-4% por encima del mercado medio; el conversor muestra el suelo, no el precio.
  • Sin criptomonedas. BTC, ETH y las monedas estables viven bajo /crypto/ y usan una metodología y fuente de datos diferentes.
  • Las tasas históricas están limitadas a la cobertura del BCE (1999-presente). La conversión de divisas pre-euro (DEM, FRF, ITL) requiere una tabla separada de tasas de conversión fijas.
  • Los valores atípicos de hiperinflación pueden retrasarse. Las divisas con cambios de régimen (TRY, ARS, VES) a veces muestran tasas obsoletas brevemente durante el ciclo de republicación del BCE.

Lo que no hacemos

No agregamos tasas entre proveedores (por lo que no podemos decirle quién ofrece la mejor oferta ahora mismo). No admitimos pares de criptomonedas en el clúster de Divisas (esos viven bajo /crypto/). No respaldamos la tasa con una API transaccional: Convertitive le muestra el número; su banco o proveedor gestiona el movimiento real del dinero.

Frequently asked questions

¿Por qué las tasas del BCE y no las de la Reserva Federal?
Las tasas del BCE son públicas, están bien documentadas, no tienen restricciones de acceso y se actualizan diariamente a las 16:00 CET en el sitio web del banco. La publicación H.10 de la Fed es similar pero está sesgada hacia pares con USD. La cobertura del BCE es más amplia para pares de divisas cruzadas.
¿Qué tan precisa es la tasa que veo en el sitio?
Es la tasa de referencia de mercado medio del BCE, actualizada cada hora. Esa es la tasa a la que transaccionarían dos bancos: no la tasa que obtendría de un banco minorista, un cambista o una conversión de red de tarjeta, todos los cuales añaden un diferencial del 1-4%. Use la tasa de Convertitive como referencia y verifique lo que le cobra su proveedor de pago por separado.

Related

Published May 14, 2026