Table of Contents

Class VanillaVPPOption

Namespace
NanoQL.Experimental
Assembly
NanoQL.dll

A virtual power plant: the right to run a gas-fired plant at each exercise date, earning power less gas at its heat rate, within its output range, minimum up and down times, start costs and, optionally, a limit on its starts or running hours.

[Experimental("NQL0001")]
public sealed class VanillaVPPOption : MultiAssetOption
Inheritance
VanillaVPPOption
Inherited Members

Remarks

The option is its engines' arguments, as QuantLib's arguments carries its members; its payoff is QuantLib's, the average basket payoff of power and gas weighted 1 and −heatRate on the identity.

Constructors

VanillaVPPOption(double, double, double, int, int, double, double, SwingExercise, int?, int?)

Initializes a new instance of the VanillaVPPOption class.

public VanillaVPPOption(double heatRate, double pMin, double pMax, int tMinUp, int tMinDown, double startUpFuel, double startUpFixCost, SwingExercise exercise, int? nStarts = null, int? nRunningHours = null)

Parameters

heatRate double

The heat rate: gas burned per unit of power.

pMin double

The minimum output while running.

pMax double

The maximum output.

tMinUp int

The minimum up time, in exercise steps.

tMinDown int

The minimum down time, in exercise steps.

startUpFuel double

The gas a start burns.

startUpFixCost double

A start's fixed cost.

exercise SwingExercise

The exercise dates.

nStarts int?

The most starts, or null for no limit.

nRunningHours int?

The most running hours, or null for no limit.

Exceptions

ArgumentNullException

exercise is null.

ArgumentOutOfRangeException

A count is negative.

Properties

HeatRate

Gets the heat rate.

public double HeatRate { get; }

Property Value

double

NRunningHours

Gets the most running hours, or null for no limit.

public int? NRunningHours { get; }

Property Value

int?

NStarts

Gets the most starts, or null for no limit.

public int? NStarts { get; }

Property Value

int?

PMax

Gets the maximum output.

public double PMax { get; }

Property Value

double

PMin

Gets the minimum output while running.

public double PMin { get; }

Property Value

double

StartUpFixCost

Gets a start's fixed cost.

public double StartUpFixCost { get; }

Property Value

double

StartUpFuel

Gets the gas a start burns.

public double StartUpFuel { get; }

Property Value

double

SwingExercise

Gets the exercise dates.

public SwingExercise SwingExercise { get; }

Property Value

SwingExercise

TMinDown

Gets the minimum down time, in exercise steps.

public int TMinDown { get; }

Property Value

int

TMinUp

Gets the minimum up time, in exercise steps.

public int TMinUp { get; }

Property Value

int

Methods

Validate()

Checks the option's terms before an engine prices it: QuantLib's Option::arguments::validate.

public override void Validate()

Exceptions

NanoQLException

The option has no payoff.

NanoQLException

Both a start limit and a running-hour limit are given ("either a start limit or fuel limit is supported").