Non-Deliverable Swap Valuation and Quanto Adjustments
Summary
The answer distinguishes standard interest rate swap valuation from non-deliverable swaps, explaining that a library supporting ordinary swaps may not directly handle the latter. It outlines the fixed and floating leg present values for a standard swap, using accrual fractions, fixed or forward rates, and discount factors. For non-deliverable swaps, it sketches a forward currency relationship based on domestic and foreign rates.
It also notes that emerging-market non-deliverable structures may require a quanto adjustment to foreign currency forward rates. The adjustment described depends on the correlation between FX and forward rates, FX volatility, and time. This is a high-level response to a valuation discrepancy, not a complete implementation guide: conventions, curve construction, instrument details, calibration, and validation against market data are not specified.
Key ideas
- Standard interest rate swap valuation discounts fixed and floating leg cash flows using accrual fractions and relevant rates.
- Non-deliverable swaps require modeling features beyond a basic interest rate swap setup.
- The currency forward relationship depends on domestic and foreign interest rates.
- Quanto adjustments may incorporate FX and rate correlation, FX volatility, and time.
- The response does not supply enough instrument conventions or implementation detail for a complete valuation model.
Tags
Full text
# Python Quantlib : How to value the Non Deliverable currency Interest Rate Swaps?
# Python Quantlib : How to value the Non Deliverable currency Interest Rate Swaps?
I followed all the procedure in Quantlib to process interest rate swap valuation through Python Quantlib. I valued more than a million records. All the valuation is almost the expected amount. But 'Interest rate Swap' of these currencies ( CNY, KRW, THB, TWD) are way off than the expected valuation. Almost 100% variation in amount has been observed from the reported value.
Any suggestion on above currencies why their valuation are so different ? I read all the theories on Non Deliverable Swap currencies but I want to implement something in Quantlib to get the correct valuation. Please suggest.
## Answer by Bampi Johnson (score 1)
https://quant.stackexchange.com/a/51391
The problem is quantlib supports only IRS. But you're trying to find NDS valuation.
IRS valuation:
- IRS valuation:
PV (present value) of the interest payments on the fixed leg: \begin{equation} f(x) = \sum \limits_{i=1}^{n} \delta({T}_{j-1},{T}_{j}) \cdot K \cdot P(0, T_j) \end{equation} PV (present value) of the interest payments on the floating leg:
\begin{equation} f(x) = \sum \limits_{i=1}^{n} \delta({T}_{j-1},{T}_{j}) \cdot F({T}_{j-1},{T}_{j}) \cdot P(0, T_j) \end{equation} where:
$\delta({T}_{j-1},{T}_{j})$ - day-count fraction
$K$ , $F({T}_{j-1},{T}_{j}$ - fixed and forward rates
$P(0, T_j)$ - discount factor (price of zero coupon bonds)
For NDS (non-deliverable swap) formula:
- For NDS (non-deliverable swap) formula:
\begin{equation} F(0,T) - S_0 = S_0 \bigg(\frac {1 + r_d \cdot T}{1 + r_f \cdot T} - 1 \bigg) = \\ = \frac {S_0(r_d - r_f) \cdot T}{1 + r_f \cdot T} \approx S_0(r_d - r_f) \cdot T \end{equation}
But for NDS(floating for floating, fixed for floating) are usually used in emerging markets where the currency is illiquid, subject to exchange restrictions, or even non-convertible the quanto correction must be apply to foreign currency forward rates. For instance, if you want to evaluate cross currency swap the effective forward rate used in pricing:
\begin{equation} f = (0, t_j, t_{j+1}) \cdot (1 + \rho_j \cdot \sigma_{f_j} \cdot \sigma_{FX} \cdot t_j) \end{equation}
where
$\rho_j$ - FX/Forward rate correlation
$\sigma_{FX}$ - forex rate volatility
More information: Boenkost, Schmidt "Notes on convexity and quanto adjustments for interest rates and related options" (2003), SSRN 1375570Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.