spotRelatedRange.hpp
1 #ifndef MARIAN_SPOTRELATEDRANGE_HPP
2 #define MARIAN_SPOTRELATEDRANGE_HPP
3 
4 #include <financial/gridRange/rangeSetup.hpp>
5 
6 namespace marian {
7 
17  class SpotRelatedRange : public DCRangeSetup<SpotRelatedRange> {
18  public:
24  low_(0.5), up_(2.0) {}
25 
31  SpotRelatedRange(double low, double up):
32  low_(low),up_(up) {}
33 
38  double getUpperBound(Market mkt,SmartPointer<Option>) const override {
39  return mkt.spot * up_;
40  }
41 
46  double getLowerBound(Market mkt,SmartPointer<Option>) const override {
47  return mkt.spot * low_;
48  }
49 
52  virtual ~SpotRelatedRange(){};
53  private:
54  double low_;
55  double up_;
56  };
57 
58 } // namespace marian
59 
60 #endif /* MARIAN_SPOTRELATEDRANGE_HPP */
Approximate the boundary condition basing on asset spot price.
Definition: spotRelatedRange.hpp:17
Data structure holding the market data.
Definition: market.hpp:11
SpotRelatedRange()
Defualt constructor.
Definition: spotRelatedRange.hpp:23
Template of deep-coping smart pointer.
Definition: smartPointer.hpp:9
Definition: backwardKolmogorovEq.cpp:5
Deeply copyable RangeSetup.
Definition: rangeSetup.hpp:53
virtual ~SpotRelatedRange()
Destructor.
Definition: spotRelatedRange.hpp:52
double getLowerBound(Market mkt, SmartPointer< Option >) const override
returns lower boundary value
Definition: spotRelatedRange.hpp:46
double getUpperBound(Market mkt, SmartPointer< Option >) const override
returns upper boundary value
Definition: spotRelatedRange.hpp:38
double low_
Multiplier for lower boundary.
Definition: spotRelatedRange.hpp:52
SpotRelatedRange(double low, double up)
Constructor.
Definition: spotRelatedRange.hpp:31
double spot
Price of underlying.
Definition: market.hpp:12
double up_
Multiplier for upper boundary.
Definition: spotRelatedRange.hpp:55