Table of Contents

Class ParametricExerciseFunctions

Namespace
NanoQL.Methods
Assembly
NanoQL.dll

The early-exercise optimisation on collected node data: QuantLib's free function.

public static class ParametricExerciseFunctions
Inheritance
ParametricExerciseFunctions
Inherited Members

Methods

GenericEarlyExerciseOptimization(NodeData[][], IParametricExercise, EndCriteria, OptimizationMethod)

Optimises each exercise's parameters, from the last exercise back, to maximise the valid paths' mean value, the exercise value where the rule exercises and the cash flows after it otherwise; adds each valid path's value at an exercise into its cash flows at the exercise before; the estimate is the paths' mean at the start.

public static GenericEarlyExerciseOptimizationResults GenericEarlyExerciseOptimization(NodeData[][] simulationData, IParametricExercise exercise, EndCriteria endCriteria, OptimizationMethod method)

Parameters

simulationData NodeData[][]

The node data, an exercise a row and a path a column, changed in place.

exercise IParametricExercise

The exercise rule.

endCriteria EndCriteria

The criteria that end each optimisation.

method OptimizationMethod

The optimisation method.

Returns

GenericEarlyExerciseOptimizationResults

The biased estimate and each exercise's parameters.

Remarks

The data are QuantLib's: n exercises give n + 1 rows, row 0 each path's cash flows before the first exercise and row i + 1 its data at exercise i. The cash flows of every row before the last are changed in place, as QuantLib changes them. Each optimisation starts from the rule's guess, unconstrained.

Exceptions

ArgumentException

There's no row, or a row is shorter than the one before it, which QuantLib reads past.

NanoQLException

No path is valid at an exercise.