American-transaction costs 1.0.0.0
American option pricer under proportional transaction costs
|
00001 /* 00002 American option pricer under proportional transaction costs 00003 Copyright (C) 2011 Alet Roux alet.roux@york.ac.uk 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 00018 */ 00019 00020 #ifndef AMERICAN_H 00021 #define AMERICAN_H 00022 00023 //#include "../piecewiselinear/piecewiselinear.h" 00024 //#include "../spot.h" 00025 #include "../config.h" 00026 #include "../payoff/bridge.h" 00027 #include "treeproduct.h" 00028 00029 00031 class TreeProductAmerican : public TreeProduct 00032 { 00033 public: 00034 TreeProductAmerican (const coefficient expiry, const PayoffBridge& payoff) : TreeProduct (expiry), _payoff (payoff) {}; 00035 00042 PiecewiseLinear payoff_hedge (const coefficient& t, const Spot& spot) const 00043 { 00044 #ifdef USE_ASSERT 00045 assert (lessequal(t,expiry()) && lessequal(0,t)); 00046 #endif 00047 return portfolios_that_can_afford (_payoff(spot), spot); 00048 }; 00049 00050 Portfolio payoff (const coefficient& t, const Spot& spot) const 00051 { 00052 #ifdef USE_ASSERT 00053 assert (lessequal(t,expiry()) && lessequal(0,t)); 00054 #endif 00055 return _payoff(spot); 00056 } 00057 00058 private: 00059 PayoffBridge _payoff; 00060 }; 00061 #endif // AMERICAN_H