|
| | CarrMadanSurface (const std::vector< Real > ×, const std::vector< Real > &moneyness, const Real spot, const std::vector< Real > &forwards, const std::vector< std::vector< Real > > &callPrices, const VolatilityType volType=ShiftedLognormal, const Real shift=0.0) |
|
const std::vector< Real > & | times () const |
|
const std::vector< Real > & | moneyness () const |
|
Real | spot () const |
|
const std::vector< Real > & | forwards () const |
|
const std::vector< std::vector< Real > > & | callPrices () const |
|
bool | arbitrageFree () const |
|
const std::vector< CarrMadanMarginalProbability > & | timeSlices () const |
|
const std::vector< std::vector< bool > > & | callSpreadArbitrage () const |
|
const std::vector< std::vector< bool > > & | butterflyArbitrage () const |
|
const std::vector< std::vector< bool > > & | calendarArbitrage () const |
| CarrMadanSurface |
( |
const std::vector< Real > & | times, |
|
|
const std::vector< Real > & | moneyness, |
|
|
const Real | spot, |
|
|
const std::vector< Real > & | forwards, |
|
|
const std::vector< std::vector< Real > > & | callPrices, |
|
|
const VolatilityType | volType = ShiftedLognormal, |
|
|
const Real | shift = 0.0 ) |
The moneyness (lognormal) is defined as (K+displacement) / (F + displacement), K = strike, F = forward at the relevant time. The moneyness (normal) is defined as K - F, K = strike, F = forward at the relevant time. The times and moneyness should be strictly increasing. The outer vectors for call prices and the calendarAbritrage() result represent times, the inner strikes.