This project was developed as part of the MSc Mathematical Trading and Finance programme at Bayes Business School (formerly Cass). The work values a 5-year capped/floored Floating Rate Note (FRN) issued by BNP Paribas using market data from 2024. The analysis applies curve-building, derivative pricing, and risk management techniques in Python using QuantLib.
The bond is decomposed into two parts:
- A Floating Rate Note (FRN) valued using projected 3M Euribor rates
- A Cap/Floor Structure valued as a portfolio of options under the Black model
The fair value is then adjusted for credit risk using a simplified Credit Valuation Adjustment (CVA) based on CDS spreads and bootstrapped survival probabilities. Finally, the project assesses hedging strategies (via swaps and CDS) and quantifies risk exposures using a Monte Carlo framework.
- Curve Building: Construct the historical coupon schedule and interpolate a log-cubic discount curve from market data.
- Price bond: Forecast forward rates and price the bond as the present value of floating coupons.
- Price replicating portfolio:Price the cap/floor option strip using the Black model and implied volatility surface.
- Adjust for default possibility: Apply CVA to adjust for credit risk using a simplified hazard rate model.
- Adjust for interest rate risk: Hedge the bond’s interest rate and credit exposure using swaps and CDS contracts.
- Stress-test performance: Simulate bond value under market factor shocks (rate shifts, volatility shifts, CDS spread movements) to compute VaR and Expected Shortfall.
See
code/for full implementation, organized by question (Q1 to Q13).
Key figures from the analysis are embedded below. All output charts are located in the /figures directory.
Fixed-Income-Project/
├── code/ # Full implementation for Q1–Q13
├── figures/ # Output charts and plots
├── datasets/ # Market data: interest rates, volatilities, CDS
├── Report.pdf # Final client-facing report
├── Task.pdf # Coursework brief
├── requirements.txt # Required Python packages
└── README.md
Before running, install required Python libraries:
pip install -r requirements.txtNote: This project requires the
QuantLibPython package. Refer to the QuantLib installation guide if needed.
Ensure that all market data files (MarketData.xlsx, shifted_black_vols.csv, etc.) are placed in the datasets/ folder.
Open the relevant script in the code/ folder (e.g., Q1.py) and run via your preferred Python IDE.
- Shaan Ali Remani
- Basil Ibrahim
- José Santos
- Wincy So












