Login  Register

Re: Variance Swap test

Posted by Luigi Ballabio on May 18, 2017; 2:31pm
URL: http://quantlib.414.s1.nabble.com/Variance-Swap-test-tp18059p18290.html

Hello,

1. yes, you'll have to translate discrete dividends into dividend yields. I'm not sure of the times you're using, though.  If an option expires in 6 months and you expect a dividend in 2 months, do you divide by 6 or 2? Do you spread next dividend starting from today or from the first dividend date? (The two answers might be correlated.)

2. You can use InterpolateDiscountCurve and build it from discounts.  There are a number of interpolations available; look into ql/math/interpolations for classes documented as "traits".

3. ZeroCurve is a particular kind of YieldTermStructure.

4. I'm not sure I got your question...

Luigi


On Fri, May 12, 2017 at 11:21 PM ziegele <[hidden email]> wrote:
Thanks Luigi.

I tried to expand the variance swap replication example to include: non-flat
volatility surface, non-flat interest rate, and non-flat discrete dividend
term structure, based on the example I could find from Mick Hittesdorf's
tutorial at
https://mhittesdorf.wordpress.com/2013/11/17/introducing-quantlib-american-option-pricing-with-dividends/
<https://mhittesdorf.wordpress.com/2013/11/17/introducing-quantlib-american-option-pricing-with-dividends/>

As you can find in the attached file  main.cpp
<http://quantlib.10058.n7.nabble.com/file/n18277/main.cpp>  , I used
boost::shared_ptr<ZeroCurve> to generate the discrete dividend term
structure, and boost::shared_ptr<YieldTermStructure> with
InterpolatedZeroCurve<ForwardFlat> to return the interest rate term
structure.

There are some things that I'm not sure if I did correctly:

1. How do I include discrete dividend, rather than dividend yield, into the
calculation? Currently I translated discreteDiv to divYield by the equation:
divYield = discreteDiv / spot * yearFraction(evaluationDate,
optionExpiryDate), for each exDividend date (data read from
dividend_schedule.csv
<http://quantlib.10058.n7.nabble.com/file/n18277/dividend_schedule.csv>
file). Is it correct?

2. How do I correctly interpolate the interest rate term structure?
(1) Currently I used a flat interest rate of 5% (read from  ir_schedule.csv
<http://quantlib.10058.n7.nabble.com/file/n18277/ir_schedule.csv>   file,
with the 1st dividend date to be the evaluationDate, otherwise PV would be
wrong). Is there a way of inputting discount factor directly? If so, how do
I change InterpolatedZeroCurve() to?
(2) Do I really need the <ForwardFlat> selection to interpolate the interest
rate? If not, what are other choices?

3. What is the difference between <ZeroCurve> used in dividend, and
<YieldTermStructure> used in interest rate term structure? Loos to be that I
could also use one to replace the other;

4. Currently the volatility surface is kept the same as what's written in
the example (vol=0.3~0.13, linearly dependent on strike). If I want to
include a full volatility surface which can also be read from a file, can I
keep the codes unchanged (lines 15-45)?

Thanks,
ziegele



--
View this message in context: http://quantlib.10058.n7.nabble.com/Variance-Swap-test-tp18059p18277.html
Sent from the quantlib-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users