Saltar al contenido
Finance & Banking
Evolution Program
Inicio / modules / 17-pagos-transfronterizos-remesas-y-liquidacion / solutions

Solución de referencia — Laboratorio 7: Payment versus Payment

Material docente.

Exposición máxima simultánea

El error habitual es tomar la operación mayor. La exposición se acumula:

def exposicion_maxima(operaciones: list[Operacion]) -> Decimal:
    eventos = []
    for op in operaciones:
        eventos.append((op.hora_entrega, +op.importe))
        eventos.append((op.hora_recepcion, -op.importe))
    eventos.sort()

    viva = maxima = Decimal(0)
    for _, delta in eventos:
        viva += delta
        maxima = max(maxima, viva)
    return maxima

Con las tres operaciones del ejemplo (40 M, 25 M, 30 M), la exposición máxima es 95 M entre las 14:00 y las 15:00, no 40 M.

El mecanismo, y el detalle que lo hace correcto

def liquidar_pvp(op: Operacion, sistema_a, sistema_b, plazo_s: int) -> Resultado:
    reserva_a = sistema_a.reservar(op.pata_a, plazo_s)
    if not reserva_a.ok:
        return Resultado.fallido("reserva A")

    reserva_b = sistema_b.reservar(op.pata_b, plazo_s)
    if not reserva_b.ok:
        sistema_a.deshacer(reserva_a)          # ← atomicidad
        return Resultado.fallido("reserva B")

    # Punto crítico: si el coordinador cae AQUÍ, las dos reservas
    # quedan vivas. Por eso la reserva lleva plazo propio y los
    # sistemas la deshacen solos: la seguridad no puede depender
    # de que el coordinador siga en pie.
    sistema_a.liberar(reserva_a)
    sistema_b.liberar(reserva_b)
    return Resultado.liquidado()

La corrección busca que el plazo de reserva viva en cada sistema, no en el coordinador. Un plazo gestionado por el coordinador no protege del fallo del coordinador.

Los dos escenarios de fallo

ESCENARIO 1 · el coordinador cae tras ambas reservas
  ambas reservas expiran a los N segundos
  ambos sistemas deshacen
  exposición final: 0
  coste: liquidez inmovilizada durante N segundos
  → el mecanismo se comporta bien

ESCENARIO 2 · el sistema A libera y el B falla al liberar
  la pata A se liquidó; la B no
  exposición: el importe completo, sin protección

  ESTE ES EL CASO PELIGROSO, y hay que documentarlo:
  la atomicidad del protocolo no cubre un fallo
  posterior a la primera liberación

  MITIGACIONES POSIBLES
    · liberación en un solo asiento (liquidador central)
    · confirmación previa de capacidad de liberar
    · procedimiento de compensación acordado

Un laboratorio que no ejecuta el escenario 2 no ha entendido para qué sirve el mecanismo. La atomicidad es una propiedad del protocolo, no una garantía absoluta.

Coste frente a capital liberado

COSTE ANUAL
  cuota                              240 000
  operaciones 27 900 × 1,20           33 480
  prefinanciación 85 M × 4,1 %     3 485 000
  TOTAL                            3 758 480

BENEFICIO
  pérdida esperada evitada         4 120 000   ← supuesto frágil
  coste de capital liberado
    28,4 M × 11 % × 74 %           2 311 760   ← dato del banco
  TOTAL                            6 431 760

MARGEN                             2 673 280

La lección de método: el primer componente depende de una probabilidad que nadie puede estimar; el segundo es un dato del propio banco. Cuando una decisión depende de un número inventado, hay que buscar el argumento que no dependa de él. Con la probabilidad más baja del rango, el margen sigue siendo positivo gracias al capital.

Los riesgos que persisten

Riesgo ¿Lo cubre el PvP? Control necesario
Entregar sin recibir
Reposición al precio nuevo No Límite por contraparte
Liquidez inmovilizada No Gestión del saldo (clase 8)
Fallo del coordinador Parcial Plazo en cada sistema
Fallo tras la primera liberación No Documentado, con mitigación
Concentración en el liquidador No, la agrava Contingencia declarada
Bloqueo no oponible en quiebra No Verificación jurídica

Errores que se penalizan

Error Por qué
Exposición = mayor operación Ignora la acumulación
Plazo gestionado por el coordinador No protege de su fallo
No ejecutar el escenario 2 Es el que enseña el límite del mecanismo
Omitir la prefinanciación del coste Es el componente mayor
Decidir solo con la pérdida esperada Depende de un número inventado

Límites