CapeTools EngineOptions
http://www.QuantTools.com
In total there are 16 functions present within the CapeTools EngineOptions category of functions.
General Description
Functions to price option products under a pricing engine framework.
To price a single product under this framework, you require 5 objects to be constructed. These are :
- A pricing engine object
- An exercise object
- A payoff object
- One or more process objects
- A pricer object
The pricing engine object specifies the method of calculation (Tree, MC, direct, integration etc...).
The exercise object specifies the date(s) that exercise can take place.
The payoff object specifies the payoff function.
The process object(s) specifies the characteristics of the underlyer(s) whether Equity, FX or Commodity.
The pricer object takes in the Engine, Exercise, Payoff and Process objects and compute a price.
This category of functions contain the type of Equity, FX or Commodity type pricer objects that can be created and priced.
- European Options
- Bermudan Options
- American Options
- Digital Options
- Asian Options
- Basket Options
- Barrier Options
- Convertible Bond
- Cliquet Options.
Some of the pricer objects can utilise more than one type of pricing engine. There are pricing engines can utilise the following methods of calculation :
- Analytical
- Montecarlo
- Finite-difference
- Integration
- Binomial Tree engines
The Equity, FX or Commodity type pricing engines can be created from one of the following categories of functions :
The combinations of the 5 object types that are needed to price a single product can be confusing.
The confusion comes because there are many pricing engines, Exercise and Pricer objects that can be chosen.
As a guide for product pricing, we have identified the following combinations :
American Options
- Pricing Engines - BAWApproxEngine(), BSApproxEngine(), JQApproxEngine(), FDAmericanEngine(), FDShoutEngine()
- Exercise object - AmericanExercise()
- Payoff object - PlainVanilla(), GenericPayOff()
- Pricer object - VanillaOption()
Discrete Asian Options
- Pricing Engines - DiscreteAsianEngine(), PMCArithmeticAsianEngine(), PMCGeometricAsianEngine(), QMCArithmeticAsianEngine(), QMCGeometricAsianEngine()
- Exercise object - EuropeanExercise()
- Payoff object - PlainVanilla()
- Pricer object - DiscreteAsianOption()
Continuous Asian Options
- Pricing Engines - ContinuousAsianEngine()
- Exercise object - EuropeanExercise()
- Payoff object - PlainVanilla()
- Pricer object - ContinuousAsianOption()
Barrier Options
- Pricing Engines - AnalyticBarrierEngine(), PMCBarrierEngine(), QMCBarrierEngine()
- Exercise object - EuropeanExercise()
- Payoff object - PlainVanilla()
- Pricer object - BarrierOption()
Basket Options
- Pricing Engines - StulzEngine(), PMCBasketEngine(), QMCBasketEngine()
- Exercise object - EuropeanExercise()
- Payoff object - PlainVanilla()
- Pricer object - BasketOption()
Cliquet Options
- Pricing Engines - AnaCliquetEngine(), AnaPerformanceEngine()
- Payoff object - PercentageStrike()
- Exercise object - EuropeanExercise()
- Pricer object - CliquetOption()
Cash-Or-Nothing Options
- Pricing Engines - AnalyticEuropeanEngine(), PMCDigitalEngine(), QMCDigitalEngine()
- Payoff object - CashOrNothingPayoff()
- Exercise object - EuropeanExercise()
- Pricer object - VanillaOption()
Asset-Or-Nothing Options
- Pricing Engines - AnalyticEuropeanEngine(), PMCDigitalEngine(), QMCDigitalEngine()
- Payoff object - AssetOrNothingPayoff()
- Exercise object - EuropeanExercise()
- Pricer object - VanillaOption()
Gap Options
- Pricing Engines - AnalyticEuropeanEngine()
- Payoff object - GapPayoff()
- Exercise object - EuropeanExercise()
- Pricer object - VanillaOption()
Cash-At-Hit-Or-Nothing American Options
- Pricing Engines - AnaDigitalAmEngine()
- Payoff object - CashOrNothingPayoff()
- Exercise object - AmericanExercise(payoffAtExpiry=false)
- Pricer object - VanillaOption()
Asset-At-Hit-Or-Nothing American Options
- Pricing Engines - AnaDigitalAmEngine()
- Payoff object - AssetOrNothingPayoff()
- Exercise object - AmericanExercise(payoffAtExpiry=false)
- Pricer object - VanillaOption()
Cash-At-Expiry-Or-Nothing American Options
- Pricing Engines - AnaDigitalAmEngine()
- Payoff object - CashOrNothingPayoff()
- Exercise object - AmericanExercise(payoffAtExpiry=true),
- Pricer object - VanillaOption()
Asset-At-Expiry-Or-Nothing American Options
- Pricing Engines - AnaDigitalAmEngine()
- Payoff object - AssetOrNothingPayoff()
- Exercise object - AmericanExercise(payoffAtExpiry=true),
- Pricer object - VanillaOption()
Various (depending on the Payoff object) Dividend Options
- Pricing Engines - AnaDivEuroEngine(), FDDividendEuropeanEngine()
- Exercise object - EuropeanExercise(),
- Payoff object - CashOrNothingPayoff(), AssetOrNothingPayoff(), GapPayoff(), PlainVanilla(), GenericPayOff()
- Pricer object - DivVanillaOption()
Various (depending on the Payoff object) American Dividend Options
- Pricing Engines - FDDividendAmericanEngine()
- Exercise object - AmericanExercise(),
- Payoff object - CashOrNothingPayoff(), AssetOrNothingPayoff(), GapPayoff(), PlainVanilla(), GenericPayOff()
- Pricer object - DivVanillaOption()
Various (depending on the Payoff object) Non-Dividend European Options
- Tree Pricing Engines - AdditiveEQPEngine(), CoxRossRubinsteinEngine(), JarrowRuddEngine(), LeisenReimerEngine(), TianEngine(), TrigeorgisEngine()
- Analytical Pricing Engines - AnalyticEuropeanEngine()
- Finite Difference Pricing Engines - FDEuropeanEngine()
- Integral Pricing Engines - IntegralEngine()
- Monte-Carlo Pricing Engines - PseudoMonteCarloEngine(), QuasiMonteCarloEngine()
- Exercise object - EuropeanExercise(),
- Payoff object - CashOrNothingPayoff(), AssetOrNothingPayoff(), GapPayoff(), PlainVanilla(), GenericPayOff()
- Pricer object - VanillaOption()
Merton (1976) European Options
- Pricing Engines - JumpDiffusionEngine()
- Process object - Merton76Process( AnalyticEuropeanEngine() )
- Exercise object - EuropeanExercise(),
- Payoff object - CashOrNothingPayoff(), AssetOrNothingPayoff(), GapPayoff(), PlainVanilla(), GenericPayOff()
- Pricer object - VanillaOption()
The GenericPayOff() payoff object generally applies to the Integral, PDE and Tree engines. Here are some of the most common engines that you are likely to use with the GenericPayOff() payoff engine.
- AdditiveEQPEngine()
- CoxRossRubinsteinEngine()
- JarrowRuddEngine()
- LeisenReimerEngine()
- TianEngine()
- TrigeorgisEngine()
- IntegralEngine()
- FDEuropeanEngine()
You must ensure however that your payoff does not violate the rules of the Black-Scholes SDE.
If you do not see a pricing function here which matches your particular payoff, you can use the generic pricing functions present within the following categories of functions :
These categories of functions allow you to provide your own pricing functions within a pricing grid.
Function list.
Copyright (c) 2003-2007 CapeTools - All Rights Reserved.