|
|
typedef MC< RNG >::path_type | path_type |
|
typedef McSimulation< MC, RNG, S >::stats_type | stats_type |
|
typedef McSimulation< MC, RNG, S >::path_pricer_type | path_pricer_type |
|
typedef McSimulation< MC, RNG, S >::path_generator_type | path_generator_type |
|
typedef McSimulation< MC, RNG_Calibration, S >::path_generator_type | path_generator_type_calibration |
|
typedef set_type::iterator | iterator |
|
typedef MonteCarloModel< MC, RNG, Statistics >::path_generator_type | path_generator_type |
|
typedef MonteCarloModel< MC, RNG, Statistics >::path_pricer_type | path_pricer_type |
|
typedef MonteCarloModel< MC, RNG, Statistics >::stats_type | stats_type |
|
typedef MonteCarloModel< MC, RNG, Statistics >::result_type | result_type |
|
| | MCLongstaffSchwartzEngine (ext::shared_ptr< StochasticProcess > process, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, bool controlVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed, Size nCalibrationSamples=Null< Size >(), ext::optional< bool > brownianBridgeCalibration=ext::nullopt, ext::optional< bool > antitheticVariateCalibration=ext::nullopt, BigNatural seedCalibration=Null< Size >()) |
| void | calculate () const override |
| PricingEngine::arguments * | getArguments () const override |
| const PricingEngine::results * | getResults () const override |
| void | reset () override |
| void | update () override |
|
| Observable (const Observable &) |
| Observable & | operator= (const Observable &) |
|
| Observable (Observable &&)=delete |
|
Observable & | operator= (Observable &&)=delete |
| void | notifyObservers () |
|
| Observer (const Observer &) |
|
Observer & | operator= (const Observer &) |
|
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
| void | registerWithObservables (const ext::shared_ptr< Observer > &) |
|
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
|
void | unregisterWithAll () |
| virtual void | deepUpdate () |
|
result_type | value (Real tolerance, Size maxSamples=QL_MAX_INTEGER, Size minSamples=1023) const |
| | add samples until the required absolute tolerance is reached
|
|
result_type | valueWithSamples (Size samples) const |
| | simulate a fixed number of samples
|
|
result_type | errorEstimate () const |
| | error estimated using the samples simulated so far
|
|
const stats_type & | sampleAccumulator () const |
| | access to the sample accumulator for richer statistics
|
|
void | calculate (Real requiredTolerance, Size requiredSamples, Size maxSamples) const |
| | basic calculate method provided to inherited pricing engines
|
|
|
virtual ext::shared_ptr< LongstaffSchwartzPathPricer< path_type > > | lsmPathPricer () const =0 |
| TimeGrid | timeGrid () const override |
| ext::shared_ptr< path_pricer_type > | pathPricer () const override |
| ext::shared_ptr< path_generator_type > | pathGenerator () const override |
|
| McSimulation (bool antitheticVariate, bool controlVariate) |
|
virtual ext::shared_ptr< path_pricer_type > | controlPathPricer () const |
|
virtual ext::shared_ptr< path_generator_type > | controlPathGenerator () const |
|
virtual ext::shared_ptr< PricingEngine > | controlPricingEngine () const |
|
virtual result_type | controlVariateValue () const |
template<class
GenericEngine, template< class > class MC, class RNG, class S = Statistics, class RNG_Calibration = RNG>
class QuantLib::MCLongstaffSchwartzEngine< GenericEngine, MC, RNG, S, RNG_Calibration >
Longstaff-Schwarz Monte Carlo engine for early exercise options.
References:
Francis Longstaff, Eduardo Schwartz, 2001. Valuing American Options by Simulation: A Simple Least-Squares Approach, The Review of Financial Studies, Volume 14, No. 1, 113-147
- Tests
- the correctness of the returned value is tested by reproducing results available in web/literature