9.1 Del costo de financiación al costo neto de acarreo
En el caso básico del tema anterior, comprar un activo hoy y conservarlo hasta T sólo implicaba financiar el precio spot. Por eso el precio forward era el spot capitalizado. Pero quien posee una acción puede cobrar dividendos, y quien posee una materia prima puede pagar depósito, seguro o transporte.
La misma idea de no arbitraje sigue vigente: debemos comparar el forward con una cartera que asegura una unidad del activo en T. La diferencia es que ahora debemos registrar todos los flujos que aparecen entre hoy y el vencimiento.
Regla de signos: un ingreso recibido por tener el activo reduce el costo neto de llevarlo a T; un costo pagado por tenerlo aumenta ese costo. El precio forward refleja ambos efectos.
9.2 Tres clases de flujos durante la tenencia
Conviene distinguir la naturaleza del flujo antes de elegir una fórmula. No todos los ingresos se expresan igual ni todos los costos ocurren en el mismo instante.
Renta conocida en efectivo
Dividendos ya anunciados, cupones de bonos o alquileres con importe y fecha conocidos antes de T.
Renta proporcional conocida
Un rendimiento expresado como porcentaje del valor del activo, simplificado como una tasa continua de renta q.
Costos de almacenamiento
Depósito, seguro, merma o financiación específica de inventario que debe afrontar quien mantiene el activo.
Beneficio de conveniencia
Ventaja no monetaria de disponer físicamente de una materia prima; se menciona como extensión, no se cuantifica aquí.
En todos los casos importa la fecha del flujo. Un dividendo de $3 dentro de un mes no reduce el precio forward en $3 capitalizados durante todo el año: primero se descuenta a hoy y luego se incorpora correctamente a la cartera replicante.
9.3 Rentas conocidas en efectivo: spot menos valor presente
Supongamos que el activo pagará ingresos conocidos en efectivo antes de T. La persona que compra el activo hoy recibirá esos ingresos. Para replicar un forward largo, esos cobros pueden usarse para reducir el efectivo que debe financiarse inicialmente.
Si I representa el valor presente de todos los ingresos conocidos antes de T, el efectivo neto a financiar es S0 − I. Con un factor de capitalización 1 / D(0,T), obtenemos:
I = valor presente de los ingresos conocidos entre 0 y T
La fórmula no supone que el activo “vale menos” por una razón psicológica. Describe flujos: comprar hoy permite cobrar las rentas; comprar mediante un forward no. Por lo tanto, el forward debe compensar que su titular no las recibirá durante la vida del contrato.
9.4 Ejemplo con un dividendo conocido
Una acción cotiza a S0 = $200. Pagará un dividendo conocido de $6 dentro de seis meses. El forward vence dentro de un año y, para simplificar, la tasa efectiva semestral es 4 %. El valor presente del dividendo es 6 / 1,04 = 5,7692.
F0,T = $210,08 aproximadamente
Sin dividendo, el precio sería 200 × 1,042 = $216,32. El dividendo reduce el precio forward porque la cartera que compra la acción hoy recibe un flujo que la posición forward no recibe. El descuento y la capitalización hacen que el efecto final del dividendo sea $6,24 en T, no $6.
9.5 Dividend yield o renta proporcional continua
Para índices ampliamente diversificados o activos con una renta que se modela proporcionalmente al valor, es frecuente usar una tasa continua de renta q. Si la tasa de financiación continua es r y el plazo se mide en años, el modelo idealizado es:
La tasa q no es un dividendo puntual. Es una forma resumida de representar una renta proporcional acumulada durante el tiempo. Si q aumenta, el precio forward disminuye; si r aumenta, el precio forward crece. Ambos efectos provienen de comparar la posesión física con la posición forward.
Coherencia obligatoria: la fórmula con e usa tasas con capitalización continua y T en años. No mezcles una tasa efectiva mensual con este exponente sin convertirla antes.
9.6 Costos de almacenamiento y otros costos conocidos
Una materia prima no sólo puede ocupar lugar: puede exigir depósito, seguro, cuidado, transporte o sufrir pérdidas físicas. Si esos costos son conocidos y necesarios para conservar una unidad apta para entrega en T, se suman al costo de acarreo.
Sea U el valor presente de costos conocidos pagaderos antes de T. Para un activo sin rentas, el precio forward se expresa como:
Si hay tanto ingresos conocidos como costos conocidos, la lógica se combina:
Los costos no se restan del precio spot: quien compra el activo hoy debe pagarlos para llegar con el activo al vencimiento. Por eso incrementan el precio de entrega justo, salvo que otro ingreso o beneficio los compense.
9.7 Ejemplo con depósito y seguro
Una unidad de una materia prima cuesta $500 hoy. Mantenerla hasta un año cuesta $20 de almacenamiento, pagados hoy, y $15 de seguro dentro de seis meses. No produce renta. La tasa efectiva semestral es 5 %.
| Concepto | Importe | Valor presente | Tratamiento |
|---|---|---|---|
| Spot | $500 hoy | $500,00 | Se financia |
| Almacenamiento | $20 hoy | $20,00 | Se suma |
| Seguro | $15 en 6 meses | $14,29 | Se suma |
| Costo neto actual | — | $534,29 | Se capitaliza dos períodos |
El costo futuro de seguro se descuenta primero para expresarlo en la fecha de valoración. También podría llevarse cada costo directamente a T y sumarlo allí; ambas rutas dan el mismo resultado si se usan factores coherentes.
9.8 Implementación en JavaScript
Para activos con flujos conocidos, una implementación clara recibe los flujos con su período y signo. Usaremos importes positivos para rentas y costos positivos en arreglos separados, lo que hace visible cómo contribuyen al valor presente.
function valorPresente(flujos, tasaPorPeriodo) {
return flujos.reduce((total, flujo) => {
return total + flujo.importe / (1 + tasaPorPeriodo) ** flujo.periodo;
}, 0);
}
function precioForwardConFlujos(spot, tasa, periodos, rentas = [], costos = []) {
const rentasVP = valorPresente(rentas, tasa);
const costosVP = valorPresente(costos, tasa);
return (spot - rentasVP + costosVP) * (1 + tasa) ** periodos;
}
const precio = precioForwardConFlujos(200, 0.04, 2, [{ importe: 6, periodo: 1 }]);
console.log(precio.toFixed(2)); // 210.08Separar funciones ayuda a probar cada parte. Por ejemplo, si no hay rentas ni costos, el resultado debe coincidir con el modelo básico del tema 8. Esa comprobación evita que una extensión rompa un caso ya conocido.
function valorPresente(flujos, tasaPorPeriodo) {
return flujos.reduce((total, flujo) => {
return total + flujo.importe / (1 + tasaPorPeriodo) ** flujo.periodo;
}, 0);
}
function precioForwardConFlujos(spot, tasa, periodos, rentas = [], costos = []) {
return (spot - valorPresente(rentas, tasa) + valorPresente(costos, tasa)) * (1 + tasa) ** periodos;
}
function precioForwardSinFlujos(spot, tasa, periodos) {
return spot * (1 + tasa) ** periodos;
}
const basico = precioForwardSinFlujos(500, 0.05, 2);
const extendido = precioForwardConFlujos(500, 0.05, 2, [], []);
console.log(basico.toFixed(2)); // 551.25
console.log(extendido.toFixed(2)); // 551.259.9 Laboratorio: rentas y costos conocidos
El laboratorio supone que todos los flujos intermedios ocurren al final del primer período y que la tasa efectiva es la misma en cada período. Una renta reduce el precio forward; un costo lo aumenta. Para simplificar, se admite una sola renta y un solo costo.
Forward con flujos durante la tenencia
Los importes se expresan por unidad del subyacente.
| Concepto | Fecha | Valor presente | Valor equivalente en T |
|---|
9.10 Qué no resuelve la fórmula
El modelo con flujos conocidos es potente precisamente porque sus flujos están definidos. Cuando el dividendo es incierto, los costos de almacenamiento cambian con el mercado o el activo no se puede conservar sin restricciones, no basta con colocar un valor estimado en la fórmula y llamarlo arbitraje.
- Los dividendos futuros pueden ser estimados y no contractualmente conocidos.
- Los costos de almacenamiento pueden depender de la cantidad, la ubicación y la disponibilidad de capacidad.
- Una materia prima puede generar un beneficio de conveniencia por disponibilidad física.
- Los activos de consumo pueden ser imposibles o costosos de vender en corto.
- Los impuestos y costos de transacción pueden crear una banda de precios admisible.
Disciplina de modelado: registrá por separado el precio spot, cada flujo, su fecha, la moneda y el factor de descuento utilizado. Una fórmula compacta sólo es confiable si sus datos representan correctamente el contrato y el activo.
9.11 Ejercicio propuesto
Una acción cotiza a $80 y paga un dividendo conocido de $2 al final del primer período. Un forward vence al final del segundo período. La tasa efectiva por período es 5 % y no existen otros costos.
- Calculá el valor presente del dividendo.
- Calculá el precio forward teórico.
- Calculá el precio forward que resultaría si el dividendo no existiera.
- Explicá por qué ambos precios difieren.
- Modificá el código para agregar un costo de custodia de $1 al final del primer período.
Ver orientación de resolución
El dividendo vale hoy 2 / 1,05 = 1,9048. El precio forward es (80 − 1,9048) × 1,052 = 86,10, aproximadamente. Sin dividendo sería 80 × 1,052 = 88,20. El titular del activo recibe el dividendo, mientras que el titular del forward no lo recibe. Un costo de custodia se agrega al costo neto y, por tanto, aumenta el precio forward.
function precioForward(spot, tasa, periodos, renta, costo) {
const rentaVP = renta / (1 + tasa);
const costoVP = costo / (1 + tasa);
return (spot - rentaVP + costoVP) * (1 + tasa) ** periodos;
}
console.log(precioForward(80, 0.05, 2, 2, 1).toFixed(2)); // 87.15