PathIndependentOption.h

#pragma once

#include "stdafx.h"
#include "ContinuousTimeOptionBase.h"

/**
 *   This states that all path independent options
 *   have a payoff determined by the final stock price
 */
class PathIndependentOption :
        public ContinuousTimeOptionBase {
public:
  /*  A virtual destructor */
  virtual ~PathIndependentOption() {}
  /*  Returns the payoff at maturity */
  virtual double payoff(double endStockPrice) const
      = 0;
  /*  Compute the payoff from a price path */
  double payoff(
    const std::vector<double>& stockPrices ) const {
      return payoff(stockPrices.back());
  }
  /*  Is the option path dependent? */
  bool isPathDependent() const {
      return false;
  };
};