Package agents.trader

Class FlexibilityTrader

  • All Implemented Interfaces:
    DayAheadMarketTrader, de.dlr.gitlab.fame.agent.AgentAbility
    Direct Known Subclasses:
    ElectrolysisTrader, StorageTrader

    public abstract class FlexibilityTrader
    extends Trader
    A type of Trader that also operates a flexibility asset, e.g. storage device or flexible heat pump
    Author:
    Christoph Schimeczek
    • Field Detail

      • electricityForecastRequestOffset

        protected final de.dlr.gitlab.fame.time.TimeSpan electricityForecastRequestOffset
        Offset in seconds at which the forecast contracts are sent before the actual marketing time - must equal the associated configured contract time -1
    • Constructor Detail

      • FlexibilityTrader

        public FlexibilityTrader​(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider)
                          throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
        Parameters:
        dataProvider - provides input from config
        Throws:
        de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException - if any required data is not provided
    • Method Detail

      • reportCosts

        protected void reportCosts​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                   List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Write annual costs to output; To trigger contract FlexibilityTrader with itself
        Parameters:
        input - not used
        contracts - not used
      • getInstalledCapacityInMW

        protected abstract double getInstalledCapacityInMW()
        Return installed capacity of the operated flexibility device
        Returns:
        installed capacity in MW
      • requestElectricityForecast

        protected void requestElectricityForecast​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                                  List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Requests a forecast from a contracted Forecaster. The type of forecast (either MeritOrderMessage or PriceForecast) is determined by the contract.
        Parameters:
        input - not used
        contracts - single contracted Forecaster to request forecast from
      • getStrategist

        protected abstract Strategist getStrategist()
        Returns:
        strategist instance of respective FlexibilityTrader
      • updateMeritOrderForecast

        protected void updateMeritOrderForecast​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                                List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Digests incoming MeritOrderMessage forecasts
        Parameters:
        input - one or multiple merit order forecast message(s)
        contracts - not used
      • updateElectricityPriceForecast

        protected void updateElectricityPriceForecast​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                                      List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Digests incoming price forecasts
        Parameters:
        input - one or multiple price forecast message(s)
        contracts - not used