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 PAYOFFBULLSPREAD_H 00021 #define PAYOFFBULLSPREAD_H 00022 00023 //#include "payoff.h" 00024 00026 00030 class PayoffBullSpread : public Payoff 00031 { 00032 public: 00033 PayoffBullSpread (const coefficient K, const coefficient L) 00034 : _K (K), _L (L) 00035 {} 00036 00037 Portfolio operator() (const Spot& spot) const 00038 { 00039 if (lessthan (spot.underlying(),_K)) 00040 return Portfolio (0,0); 00041 00042 if (lessthan (_L, spot.underlying())) 00043 return Portfolio (0, _L - _K); 00044 00045 return Portfolio (0, spot.underlying() - _K); 00046 } 00047 00048 PayoffBullSpread* clone() const 00049 { 00050 return new PayoffBullSpread (*this); 00051 } 00052 00053 private: 00054 coefficient _K, _L; 00055 }; 00056 00057 #endif // PAYOFFBULLSPREAD_H