Black-Scholes Process required in MCHimalayanEngine

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

Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
Hi,

apart from the determination of the risk free rate to discount the final
option payment, is there any reason why the MCHimalayanEngine resp. its
StochasticProcessArray demands the usage of a
(Generalized)BlackScholesProcess-derived class?

I would like to use a GeometricBrownianMotionProcess to model the
underlying indices...

Rgds,

Andreas



------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Marcin Pawlik
On 26 November 2010 17:38, Andreas Spengler <[hidden email]> wrote:

> StochasticProcessArray demands the usage of a
> (Generalized)BlackScholesProcess-derived class?
>
> I would like to use a GeometricBrownianMotionProcess to model the
> underlying indices...

Perhaps you could feed GenBSProc with the following:
 - flat interest rates curve with a rate that suits you (mu + 0.5*sigma^2)
 - flat dividend yield curve with a rate equal to 0
 - BlackConstantVol initiated with your sigma

M.

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
Hi,

Am 27.11.2010 15:35, schrieb Marcin Pawlik:

> Perhaps you could feed GenBSProc with the following:
>  - flat interest rates curve with a rate that suits you (mu + 0.5*sigma^2)
>  - flat dividend yield curve with a rate equal to 0
>  - BlackConstantVol initiated with your sigma

in the meantime I looked at the code. I would propose to pull up the
riskFreeRate member to StochasticProcess and add a corresponding
constructor with an empty default parameter.

One could then check in all necessary situations whether riskFreeRate
contains a valid object...

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
In reply to this post by Marcin Pawlik
Hi Marcin,

Am 27.11.2010 15:35, schrieb Marcin Pawlik:

> Perhaps you could feed GenBSProc with the following:
>  - flat interest rates curve with a rate that suits you (mu + 0.5*sigma^2)
>  - flat dividend yield curve with a rate equal to 0
>  - BlackConstantVol initiated with your sigma

How would that make a GenBSProc represent a _Geometric_BrownianMotian?

Rgds,

Andreas

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Marcin Pawlik
On 27 November 2010 19:18, Andreas Spengler <[hidden email]> wrote:

> Hi Marcin,
>
> Am 27.11.2010 15:35, schrieb Marcin Pawlik:
>
>> Perhaps you could feed GenBSProc with the following:
>>  - flat interest rates curve with a rate that suits you (mu + 0.5*sigma^2)
>>  - flat dividend yield curve with a rate equal to 0
>>  - BlackConstantVol initiated with your sigma
>
> How would that make a GenBSProc represent a _Geometric_BrownianMotian?

I used GenBSProc as short for GeneralizedBlackScholesProcess.

I understood that you want to use in your simulation something as
simple as GeometricBrownianMotion where the simulated trajectories are
determined by constant parameters (mu, sigma). Unfortunately the MC
himalaya option engine uses StochasticProcessArray consisting of n
GeneralizedBlackScholesProcesses and those are not as simple as the
thing you wanted to use (i.e. GeneralizedBlackScholesProcess).

What I'm trying to propose is to emulate GeometricBrownianMotion (GBM
for short) with an instance of GeneralizedBlackScholesProcess (GBSP
for short). Since you cannot instantiate GBSP with constants as you're
doing it with GBM, you may try to instantiate GBSP using flat yield
curve (FlatForwardCurve class) and const vol (BlackConstantVol). Such
approach would result in GBSP with constant drift coefficient (just
like in GBM) and constant volatility (again just like in GBM).

Is it what you're looking for?

M.

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
Am 27.11.2010 19:36, schrieb Marcin Pawlik:

> What I'm trying to propose is to emulate GeometricBrownianMotion (GBM
> for short) with an instance of GeneralizedBlackScholesProcess (GBSP
> for short). Since you cannot instantiate GBSP with constants as you're
> doing it with GBM

The GBM has no constant coefficients, since it's coefficients are
dependant on S also.

That's why I want to use a GBM; it represents a different SDE.

I can adapt the MCHimalayaEngine to get the riskFreeRate from somewhere
else, but my original question was, whether there is anywhere deep in
the MC code that also demands the StochasticProcess derived class to
actually be a (Generalized)BlackScholesProcess...


Rgds,

Andreas

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Luigi Ballabio

On Nov 27, 2010, at 8:39 PM, Andreas Spengler wrote:
> I can adapt the MCHimalayaEngine to get the riskFreeRate from  
> somewhere
> else, but my original question was, whether there is anywhere deep in
> the MC code that also demands the StochasticProcess derived class to
> actually be a (Generalized)BlackScholesProcess...

No, no deep reason as far as I know.  I'd change the constructor to  
take a generic process and a handle to a discount curve, and use the  
first for path generator ad the second for discounting the payoff.  
I'd be grateful if you contributed the resulting code.

Luigi


------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
Am 27.11.2010 22:22, schrieb Luigi Ballabio:

> I'd change the constructor to take a generic process and a handle to
> a discount curve, and use the first for path generator ad the second
> for discounting the payoff.  I'd be grateful if you contributed the
> resulting code.

Gladly. However, instead of changing the interface for the affected
Engine classes, I would rather, as stated in my other mail, propose to
pull up the riskFreeRate member of GeneralizedBlackScholesProcess to the
StochasticProcess class and add another parameter (empty by default) in
e.g. GeometricBrownianMotionProcess' or StochasticProcessArray's
constructor.

One could then check in all relevant situations, whether riskFreeRate
contains a valid object...


------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Luigi Ballabio
On Sat, 2010-11-27 at 23:41 +0100, Andreas Spengler wrote:
> However, instead of changing the interface for the affected
> Engine classes, I would rather, as stated in my other mail, propose to
> pull up the riskFreeRate member of GeneralizedBlackScholesProcess to the
> StochasticProcess class and add another parameter (empty by default) in
> e.g. GeometricBrownianMotionProcess' or StochasticProcessArray's
> constructor.

Hmm. I'm not sure I would do that.  For one thing, even when using the
Black-Scholes model, one might want to use a different curve for the
discount; asking the process for the risk-free rate would prevent that.
Furthermore, I'm not sure that a riskFreeRate method belongs to the
generic StochasticProcess interface.

Luigi


--

Blessed is the man who, having nothing to say, abstains from giving
wordy evidence of the fact.
-- George Eliot



------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Andreas Spengler-2
Am 29.11.2010 17:16, schrieb Luigi Ballabio:

> Hmm. I'm not sure I would do that.  For one thing, even when using the
> Black-Scholes model, one might want to use a different curve for the
> discount; asking the process for the risk-free rate would prevent that.
> Furthermore, I'm not sure that a riskFreeRate method belongs to the
> generic StochasticProcess interface.

I second that, however I found another problem with using the
GeometricBrownianMotionProcess as is: it inherits an otherwise empty
time(const Date&) method from StochasticProcess which simply QL_FAILs...

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Black-Scholes Process required in MCHimalayanEngine

Luigi Ballabio
On Mon, 2010-11-29 at 20:15 +0100, Andreas Spengler wrote:

> Am 29.11.2010 17:16, schrieb Luigi Ballabio:
>
> > Hmm. I'm not sure I would do that.  For one thing, even when using the
> > Black-Scholes model, one might want to use a different curve for the
> > discount; asking the process for the risk-free rate would prevent that.
> > Furthermore, I'm not sure that a riskFreeRate method belongs to the
> > generic StochasticProcess interface.
>
> I second that, however I found another problem with using the
> GeometricBrownianMotionProcess as is: it inherits an otherwise empty
> time(const Date&) method from StochasticProcess which simply QL_FAILs...

Right---the date/time conversion.  Hmm.  For the time being, you might
have the process take a DayCounter and a referenceDate, and implement
time() in terms of those.

Sigh.  We'll have to rethink this stuff one day...

Luigi


--

Better to have an approximate answer to the right question than a
precise answer to the wrong question.
-- John Tukey as quoted by John Chambers



------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev