American-transaction costs 1.0.0.0 American option pricer under proportional transaction costs

- Main Page
- Namespaces
- Classes
- Files
- Directories

- File List
- File Members

basket.h
Go to the documentation of this file.

    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 PAYOFFBASKET_H
    00021 #define PAYOFFBASKET_H
    00022
    00023 //#include "payoff.h"
    00024 //#include "bridge.h"
    00025 //#include <vector>
    00026
    00027 typedef std::vector<PayoffBridge> payoff_array;
    00028
    00030 class PayoffBasket : public Payoff
    00031 {
    00032 public:
    00033         PayoffBasket (const payoff_array &payoffs)
    00034         : _payoffs (payoffs)
    00035         {}
    00036
    00037         PayoffBasket (const PayoffBasket &original)
    00038         : _payoffs (original._payoffs)
    00039         {}
    00040
    00041         Portfolio operator() (const Spot& spot) const
    00042         {
    00043                 Portfolio payoff (0,0);
    00044                 for (size_t k = 0; k < _payoffs.size(); k++)
    00045                         payoff += _payoffs[k] (spot);
    00046                 return payoff;
    00047         }
    00048
    00049         PayoffBasket* clone() const
    00050         {
    00051                 return new PayoffBasket (*this);
    00052         }
    00053
    00054 protected:
    00055         payoff_array _payoffs;
    00056 };
    00057
    00059 //      PayoffBridge& operator+(const PayoffBridge& first,const PayoffBridge& second)
    00060 //      {
    00061
    00062 //            payoff_array payoff;
    00063 //            payoff.push_back(first);
    00064 //            payoff.push_back(second);
    00065 //            return *(new PayoffBridge(PayoffBasket (payoff)));
    00066 //      }
    00067
    00068
    00069 #endif // PAYOFFBASKET_H

All Classes Namespaces Files Functions Variables Typedefs Defines