Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

PayOff.h

Go to the documentation of this file.
00001 #pragma once
00002 #ifndef PAYOFF_H
00003 #define PAYOFF_H
00004 
00005 #include "../../common/types.h"
00006 #include <valarray>
00007 using namespace std;
00008 
00009 class PayOff
00010 {
00011 public:
00012 
00014     PayOff(Real Strike_);
00015 
00018         PayOff(void);
00019 
00020         void SetStrike(Real Strike_);
00021 
00023     virtual Real operator()(Real Spot) const;
00024     virtual ~PayOff(){}
00025         
00027         virtual Real Call (Real Fwd);
00028         
00030         virtual Real Put (Real Fwd);
00031         
00033         virtual Real AsianCall (valarray<Real> Path,LongNatural nDates);
00034         
00036         virtual Real AsianPut (valarray<Real> Path,LongNatural nDates);
00037         
00039         virtual Real RevLookbackCall (valarray<Real> Path,LongNatural nDates);
00040         
00042         virtual Real RevLookbackPut (valarray<Real> Path,LongNatural nDates);
00043 
00045         virtual Real BarrierCall (valarray<Real> Path,LongNatural nDates);
00046 
00048         virtual Real BarrierPut (valarray<Real> Path,LongNatural nDates);
00049 
00051         virtual Real FlooredCliquet (Real Spot, Real Fwd);
00052         
00054         virtual Real CappedCliquet (Real Spot, Real Fwd);
00055 
00058         virtual Real Rainbow2SpreadOptionMax(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00059 
00061         virtual Real Rainbow2AssetsBasketMax(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00062 
00064         virtual Real RainbowBestOf2AssetsCash(Real Fwd1,Real Fwd2,Real W1,Real W2);
00065 
00067         virtual Real RainbowWorstOf2AssetsCash(Real Fwd1,Real Fwd2,Real W1,Real W2);
00068 
00070         virtual Real RainbowMax2AssetsCall(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00071 
00073         virtual Real RainbowMin2AssetsCall(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00074 
00076         virtual Real RainbowMax2AssetsPut(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00077 
00079         virtual Real RainbowMin2AssetsPut(Real Fwd1,Real Fwd2,Real W1,Real W2,Real Mult);
00080 
00085         virtual Real Convertible(Real Fwd, Real ConversionRatio, Real BondPrice, Real CallPrice = TN_INFINITY, Real PutPrice = 0);
00086 
00087 private:
00088     Real Strike;
00089 };
00090 
00091 #endif

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:36 2005 for terreneuve by doxygen 1.3.6