Bates Engine for American Options

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Bates Engine for American Options

David Brown
Hey Guys - I've looked through the list and was just wondering if anyone has used the Bates Model to price American Options?  I started down this path trying to find some connection for GARCH-based option pricing.  After a lot of meandering around, I realized I don't need "garch" per-se, but some type of stochastic volatility model.

I want to be able to handle the skews on options more accurately for portfolio optimizations.  I don't care about arbing this stuff, but I dont want to get arbed - if that makes sense.


Any thoughts?
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

Luigi Ballabio
On Wed, 2009-02-18 at 22:04 -0800, uptotibet wrote:
> Hey Guys - I've looked through the list and was just wondering if anyone has
> used the Bates Model to price American Options?  I started down this path
> trying to find some connection for GARCH-based option pricing.  After a lot
> of meandering around, I realized I don't need "garch" per-se, but some type
> of stochastic volatility model.

Not that I know of.  The pieces might be there, though; you could fit a
Bates process onto a MCLongstaffSchwartzEngine.  You can probably use
MCAmericanEngine as an example of using Longstaff-Schwartz, and
MCEuropeanHestonEngine as an example of using a Heston or Bates process
for building a MonteCarlo.

Luigi


--

The purpose of abstraction is not to be vague, but to create a new
semantic level in which one can be absolutely precise.
-- W.E. Dijkstra



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

Klaus Spanderen-2
In reply to this post by David Brown
Hi

If for the time being you can set aside the jumps it might be worth looking at
the Heston finite difference pricing engine, e.g. the test case
testFdmHestonAmerican() in test-suite/fdheston.cpp ist a good starting point.

regards

 Klaus

On Thursday 19 February 2009 07:04:00 uptotibet wrote:

> Hey Guys - I've looked through the list and was just wondering if anyone
> has used the Bates Model to price American Options?  I started down this
> path trying to find some connection for GARCH-based option pricing.  After
> a lot of meandering around, I realized I don't need "garch" per-se, but
> some type of stochastic volatility model.
>
> I want to be able to handle the skews on options more accurately for
> portfolio optimizations.  I don't care about arbing this stuff, but I dont
> want to get arbed - if that makes sense.
>
>
> Any thoughts?



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

David Brown
Hi Klaus - I'll definitely take a look at that example.  I'm using your DAX example right now as a base.  The research I've done has shown me that one can-not neglect Jumps in the near-term, or the core Vol process becomes over-estimated.  There are a number of facets to this problem which I've yet to fully understand, but I've been reading a few papers on the topic which have proved quite interesting:

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=965248


There are a few issues which I'm currently having, conceptually.
1)  I don't believe I'm actually getting the clustering effects of a GARCH-model.  To get that, error-propagation is necessary.  I would probably like to handle it in some-fashion despite it not being needed to fit the implied volatility surfaces accurately.  This would require me to further understand the link between the P-measure / Q-measure and the cross-time Surface Dynamics of a stochastic vol. model.
2)  To use the above paper, we'd need to figure out how to turn all of these ruminations and thoughts into an analytic model.  In a GARCH-direction there was some type of Mean Tracking Tree which is about 10-years old and apparently has decent efficiency.  Kilin, in the above, uses a Gaussian Quadrature, so something of that nature might be necessary to solve this.
3)  Supposing I'm willing to accept the risk-neutral log-normality of options 1Y+ into the future, which from what I've read is not a bad hypothesis, I could probably build some type of Brownian Bridge to accelerate the calibration.  This far-future strike series could be used (perhaps) like a shrinkage estimator, where if we turn on regularization to the maximum, the output is the standard answer.


What do you think?



Best,
DB



Klaus Spanderen-2 wrote
Hi

If for the time being you can set aside the jumps it might be worth looking at
the Heston finite difference pricing engine, e.g. the test case
testFdmHestonAmerican() in test-suite/fdheston.cpp ist a good starting point.

regards

 Klaus

On Thursday 19 February 2009 07:04:00 uptotibet wrote:
> Hey Guys - I've looked through the list and was just wondering if anyone
> has used the Bates Model to price American Options?  I started down this
> path trying to find some connection for GARCH-based option pricing.  After
> a lot of meandering around, I realized I don't need "garch" per-se, but
> some type of stochastic volatility model.
>
> I want to be able to handle the skews on options more accurately for
> portfolio optimizations.  I don't care about arbing this stuff, but I dont
> want to get arbed - if that makes sense.
>
>
> Any thoughts?



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
QuantLib-dev mailing list
QuantLib-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

David Brown
In reply to this post by David Brown
Hey - More progress.  Any reason that getCalibrationError would throw the following upon compile:
"getCalibrationError": identifier not found


Where is this located?  Here's the code from Klaus's DAX example:

Real calculated = std::fabs(getCalibrationError(options));
if (std::fabs(calculated - expectedValues[i]) > tolerance)
BOOST_ERROR("failed to calculated prices for derived Bates models"
    << "\n    calculated: " << calculated
    << "\n    expected:   " << expectedValues[i]);



Best,
DB
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

Klaus Spanderen-2
In reply to this post by David Brown
Hi

> 2)  To use the above paper, we'd need to figure out how to turn all of
> these ruminations and thoughts into an analytic model.  In a
> GARCH-direction there was some type of Mean Tracking Tree which is about
> 10-years old and apparently has decent efficiency.  Kilin, in the above,
> uses a Gaussian Quadrature, so something of that nature might be necessary
> to solve this.

IMO these methods work for european options but for american options one has
to use Finite Difference methods which are often too slow for model
calibration. As far as I know, efficient Bates/Heston calibration on american
option plus discrete dividends is an open topic.

> 3)  Supposing I'm willing to accept the risk-neutral
> log-normality of options 1Y+ into the future, which from what I've read is
> not a bad hypothesis, I could probably build some type of Brownian Bridge
> to accelerate the calibration.  This far-future strike series could be used
> (perhaps) like a shrinkage estimator, where if we turn on regularization to
> the maximum, the output is the standard answer.

hmm, european are american style exercise? Which dividend model do you want to
use?

regards
 Klaus

--
Klaus Spanderen
Ludwig Erhard Str. 12
48734 Reken (Germany)
EMail: [hidden email] (remove NOSPAM from the address)

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Bates Engine for American Options

David Brown
Klaus-
>hmm, european are american style exercise? Which dividend model do you want to
>use?


I've been thinking this problem over, drawing from my training in theory and experience in application.
Here are some Grundlagen:

1)  Supposing we have a future dividend with an American Option that occurs on X-date. How can we
argue that this dividend can be used in a discounted sense?  The dividend acts exactly like a Dirac Function on the cash flow of the Stock Holder, or a step-function on the discount curve.  Yet despite all
of this we can't justify creating some type of curve because of the Dirac-Like nature of the cashflow.  One either has the stock or does not;  we can't amortize the days one holds the stock as some percentage of the dividend.  This is a problem, clearly.  We might be able to rely on a parity argument such as options traders use.  More on this later perhaps, as this would act on the post-calculated options prices simply to prevent arbitrage.

2)  As for the yield curve itself, I think a PiecewiseYieldCurve object should be sufficient.  One could build this off a US-Government HRB Yield Curve daily release and maybe add some small prime-plus factor which would be what the Broker-Dealers actually receive for held cash.  Sound good on this one?



Best,
DB