Bowmain Consulting

Hobhouse
Part of Project Denning

Hobhouse contains valuation code for the following instruments

Hobhouse uses the following methods to price the instruments

Library Organisation

PLEASE NOTE THAT THIS ORGANISATION REPERSENTS THE NEW UNRELEASED ARCHITECTURE AND DOES NOT REFLECT THE CURRENT RELEASE.

The implementation of all pricing code is in C++ for efficiency. C++ source code can be directly incorporated into C++ applications.

C++ is not directly accessible from Excel, VBA and .NET. Hobhouse use COM wrappers to overcome interoperability problems.

An interface is defined for each instrument type. For example, the interface for IEuropeanCall is shown below

	interface IEuropeanCall
	{
		[propput] HRESULT TimeUntilExpiry([in] double TimeUntilExpiry);
		[propput] HRESULT Strike([in] double Strike);
		[propput] HRESULT Spot([in] double Spot);
		[propput] HRESULT Rate([in] double Rate);
		[propput] HRESULT Volatility([in] double Volatility);

		[propget] HRESULT PV([out, retval] double* Value);
		[propget] HRESULT Delta([out, retval] double* Value);
		[propget] HRESULT Gamma([out, retval] double* Value);
		[propget] HRESULT Theta([out, retval] double* Value);
		[propget] HRESULT Vega([out, retval] double* Value);
	}

This version of the library contains only simple models. No distinction is made between market data such as the underlying spot value and the intrinsic properties of an option such as its strike. It is assumed that the market data required to value the option is a function of the instrument type (and not of the model used) A "standard" set of Greeks is defined for each instrument.

A more sophisticated model that (1) enumerates market data requirements by name, (2) enumerates Greeks available is under consideration for future releases, but will not be implemented in the near future due to time constraints.

Multiple models may be available for an instrument. In this case, each model will be assigned to its own COM object. For example, class declaration are shown for Analytic and Binomial Tree models

	[
		uuid(6FEBE494-6125-468b-99D3-584AA429F8EA),
		helpstring("European Call - Analytic (Black Scholes)")
	]
	coclass EuropeanCall_Analytic 
	{
		[default] interface IEuropeanCall; 
	};

	[
		uuid(882F8E4F-78D6-4e4a-8165-59D522B98136),
		helpstring("European Call - Binomial Tree")
	]
	coclass EuropeanCall_BinomialTree 
	{
		[default] interface IEuropeanCall; 
		interface IBinomialModelParameters;
	};

Copyright Bowmain Ltd (c) 2005 .