Package agents.trader.renewable.bidding
Class PremiumBased
- java.lang.Object
-
- agents.trader.renewable.bidding.PremiumBased
-
- Direct Known Subclasses:
ContractForDifferences
,FixedPremium
,VariablePremium
public abstract class PremiumBased extends Object
Common functionality used by bidding strategies of infeed-based market premia- Author:
- Johannes Kochems, Christoph Schimeczek
-
-
Field Summary
Fields Modifier and Type Field Description static de.dlr.gitlab.fame.agent.input.GroupBuilder
fileForecastParams
Specific inputs for file-based market value forecastsstatic de.dlr.gitlab.fame.agent.input.ParameterBuilder
marketValueForecastParam
Inputs for market value forecasting
-
Constructor Summary
Constructors Modifier Constructor Description protected
PremiumBased(de.dlr.gitlab.fame.agent.input.ParameterData input)
Creates a newPremiumBased
bidding strategy
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
assertMaxNumberOfNegativeHoursFeasible(int numberOfNegativeHours)
Asserts that given max number of hours with negative prices is met with a corresponding bidding strategy.protected double
calcExpectedMarketPremium(ClientData clientData, de.dlr.gitlab.fame.time.TimeStamp time, PolicyItem.SupportInstrument instrument)
Return the expected market premium depending on the market premium forecast methodprotected abstract double
calcMarketPremium(ClientData clientData, double marketValue, de.dlr.gitlab.fame.time.TimeStamp time)
Calculates the market premium for a given time, client and market valueprotected int
calcPreviousNegativeHours(de.dlr.gitlab.fame.time.TimeStamp time)
Find the number of hours directly preceding the given time that have negative prices in a row - either from forecast or price history
-
-
-
Field Detail
-
marketValueForecastParam
public static final de.dlr.gitlab.fame.agent.input.ParameterBuilder marketValueForecastParam
Inputs for market value forecasting
-
fileForecastParams
public static final de.dlr.gitlab.fame.agent.input.GroupBuilder fileForecastParams
Specific inputs for file-based market value forecasts
-
-
Constructor Detail
-
PremiumBased
protected PremiumBased(de.dlr.gitlab.fame.agent.input.ParameterData input) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Creates a newPremiumBased
bidding strategy- Parameters:
input
- for this bidding strategy type- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- in case any mandatory input is missing
-
-
Method Detail
-
assertMaxNumberOfNegativeHoursFeasible
protected void assertMaxNumberOfNegativeHoursFeasible(int numberOfNegativeHours)
Asserts that given max number of hours with negative prices is met with a corresponding bidding strategy. Positive values for maximum number of negative hours are not supported, yet.- Parameters:
numberOfNegativeHours
- to be tested- Throws:
RuntimeException
- if no corresponding bidding strategy is available
-
calcPreviousNegativeHours
protected int calcPreviousNegativeHours(de.dlr.gitlab.fame.time.TimeStamp time)
Find the number of hours directly preceding the given time that have negative prices in a row - either from forecast or price history- Parameters:
time
- for which to calculate- Returns:
- number of consecutive hours with negative prices directly before given time
-
calcExpectedMarketPremium
protected double calcExpectedMarketPremium(ClientData clientData, de.dlr.gitlab.fame.time.TimeStamp time, PolicyItem.SupportInstrument instrument)
Return the expected market premium depending on the market premium forecast method- Parameters:
clientData
- data specific to the associated clienttime
- of marketing of the related electricityinstrument
-PolicyItem.SupportInstrument
used by the client- Returns:
- expected market premium
-
calcMarketPremium
protected abstract double calcMarketPremium(ClientData clientData, double marketValue, de.dlr.gitlab.fame.time.TimeStamp time)
Calculates the market premium for a given time, client and market value- Parameters:
clientData
- data of the client registered for a type of market premiummarketValue
- actual or expected for the given timetime
- for which to calculate the premium- Returns:
- market premium for a given time, client and market value
-
-