Re: Asian arithmetic average strike option

Posted by Paul Carter-5 on
URL: http://quantlib.414.s1.nabble.com/Asian-arithmetic-average-strike-option-tp7965p7969.html



On Mon, May 21, 2012 at 11:38 AM, Luigi Ballabio <[hidden email]> wrote:
On Fri, May 18, 2012 at 11:41 PM, Paul Carter <[hidden email]> wrote:
> Thanks for the quick and helpful reply. In a next step, I would actually
> like to feed a time dependent (deterministic) volatility into the MC engine.
> However, I am not quite sure where to start looking... There doesn't seem to
> be much documentation around this. At the moment I'm doing this:
>
> Handle<BlackVolTermStructure> flatVolTermStructure(
> boost::shared_ptr<BlackVolTermStructure>( new BlackConstantVol( evalDate,
> calendar, volatility, dayCounter )));
>
> So basically I'm looking to replace BlackConstantVol by something where
> volatility isn't a simple double as above, but a function pointer (well, I
> presume the actual implementation in QuantLib is more clever than this).

You can try using BlackVarianceCurve instead of BlackConstantVol.  It
allows you to interpolate a number of at-the-money volatilities for
different maturities.

Great, that worked fine. However, as BlackScholesMertonProcess (and indeed any other Black-Scholes type process defined by QuantLib) picks up the volatility in its drift term, I am now trying to cancel out the volatility as I would like to have no drift at all. This requires me to define a yield term structure, which seems rather less straightforward. Do you maybe know of a good, hands-on example showing how I can define myself a suitable (dividend) yield term structure (eg some code in the testsuite)?
 

> Another thing I was wondering about are the greeks. Currently, these aren't
> implemented for the MC Asian engines, but I would have thought that
> somewhere relatively far up the instrument class hierarchy, there should be
> a method that allows one to numerically approximate the greeks but simply
> bumping the relevant arguments (e.g. price of underlying for delta,
> volatility for vega, etc) and calculating the resulting slope of the change
> in value of the instrument. Any thoughts on this?

You can bump the quotes you used to build the instrument and the
curves, and the price of the instrument will vary accordingly.  You
can look at test-suite/asianoptions.cpp and see how it's done in the
test*Greeks() test cases (it's the part that calculates the expected
numerical Greeks and stores them into the "expected" map).  It will
work for MC engines, too. 

Luigi


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users