Class PremiumBased

    • 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 new PremiumBased 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 client
        time - of marketing of the related electricity
        instrument - 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 premium
        marketValue - actual or expected for the given time
        time - for which to calculate the premium
        Returns:
        market premium for a given time, client and market value