Engine Pricing Category Group




Welcome | Documentation format | QuantTools Groups | QuantTools Categories | Licence

Key TAGs | Excel Index | API Index


http://www.QuantTools.com


  1. CapeTools EngineOptions


    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 :

    1. A pricing engine object
    2. An exercise object
    3. A payoff object
    4. One or more process objects
    5. 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.


  2. CapeTools IREngineOptions


    General Description

    Functions to price a range of interest rate derivatives.


    • Caps,
    • Floors,
    • Collars,
    • European Callable Bonds
    • Bermudan Callable Bonds
    • European Swaptions
    • Bermudan Swaptions


    These functions require the correct pricing engine to be constructed and these can be supplied via the functions present within the CapeTools IR Engine category of functions.

    Convertible Bond pricing is present within the CapeTools EngineOptions category of functions.

    The European and Bermudan Callable Bond functions presented here overcome some disadvantages that the functions within the CapeTools Bond Options category contain.


    These functions can handle correctly Bond Objects with the following features :

    • Amortised Notional
    • Step Up/Down Coupon rates.


    If you do not see a 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.


Copyright (c) 2003-2007 CapeTools - All Rights Reserved.