Seminars in Analytical Finance I

advertisement
Seminars in Analytical Finance II
At http://www.nasdaqomxnordic.com/bonds/sweden?languageId=1&Instrument=SSE101
you can find market data for the Swedish government bonds. This data shall be used in
seminar 1. and 2. below.
Swedish government securities are sometimes quoted in yield (to maturity) with day-countconvention 30/360. This means that the prices of the bonds are given by:
P
n
N
1  ytm 
T

i 1
C
1  ytm 
ti
where N = 100 (the face value expressed as percentage of the nominal amount. 100 means
that we have a non-amortizing bond.) T = time to maturity, C = the coupon represented as
percentage of the nominal amount and ti the number of days to the payments divided by the
number of years using 30 days per months and 360 days per year.
Remark that ytm is a flat yield curve describing the interest rate at which a trader pays for
getting the interest rate by the n coupons at ti and the face value at T.
The formula below calculates the clean price:
 n
 
 
100  C / f
N
C ba
P  



  100  
 k 1 a / b 
 n 1 a / b 
f
b 
 k 1 1  ytm / f 
  1  ytm / f 
 
where
P:
N:
ytm:
f:
C:
n:
a:
b:
Market Value of Bond
Nominal or face value of bond
Annual market yield (in %)
Frequency of coupon payments
Annual coupon rate in %
Number of remaining coupons
Number of days from settlement to next coupon date
Number of days from last to next coupon date
To get the price, we have to add the accrued interest rate:

C ba
AI  100  
f
b 

1.) Bootstrap a Government zero curve
Write a Python program to bootstrap the Swedish government curve. In the link above
you can find the prices of the bonds and on
http://www.finansportalen.se/marknadsrantor/ the bond quotes in yield. Here you also
found the Swedish bills (statsskuldsväxlar) that can be used for the short part of the
curve. Also plot the zero coupon curve and the discount function.
2.)
Bootstrap a EURO zero swap-curve for tenor 3M and 6M
Write a Python program to bootstrap the EURO 3M and 6M swap-curve. Data will be
given in an Excel sheet. Also plot the curves and calculate the 3M-6M tenor spread.
3.)
Bootstrap a EURO OIS and zero swap-curve for tenor 3M
Write a Python program to bootstrap the EURO OIS and 3M swap-curve. Data will be
given in an Excel sheet. Also plot the curves and calculate the OIS-3M tenor spread.
4.)
Nelson-Siegel-Svensson
Fit some of the curves above in Python to the NSS model.
5.)
Swaptions with Black.
Create a Python application to value Swaptions with Black Log-Normal and Black
Normal. Calculate the Greeks, Delta and Vega by making a matrix of data (Forward
rates and Volatility) in the log-normal model and convert the data to the normal model.
The Hagan SABR formula can be used to convert the volatility from one of the
distributions to the other. Use Swedish data from Excel.
Download