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
heatRatedoubleThe heat rate: gas burned per unit of power.
pMindoubleThe minimum output while running.
pMaxdoubleThe maximum output.
tMinUpintThe minimum up time, in exercise steps.
tMinDownintThe minimum down time, in exercise steps.
startUpFueldoubleThe gas a start burns.
startUpFixCostdoubleA start's fixed cost.
exerciseSwingExerciseThe exercise dates.
nStartsint?The most starts, or null for no limit.
nRunningHoursint?The most running hours, or null for no limit.
Exceptions
- ArgumentNullException
exerciseis null.- ArgumentOutOfRangeException
A count is negative.
Properties
HeatRate
Gets the heat rate.
public double HeatRate { get; }
Property Value
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
PMin
Gets the minimum output while running.
public double PMin { get; }
Property Value
StartUpFixCost
Gets a start's fixed cost.
public double StartUpFixCost { get; }
Property Value
StartUpFuel
Gets the gas a start burns.
public double StartUpFuel { get; }
Property Value
SwingExercise
Gets the exercise dates.
public SwingExercise SwingExercise { get; }
Property Value
TMinDown
Gets the minimum down time, in exercise steps.
public int TMinDown { get; }
Property Value
TMinUp
Gets the minimum up time, in exercise steps.
public int TMinUp { get; }
Property Value
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").