Skip to content

A repository demonstrating the forecasting of control reserve market prices (as MWE). For the experiments, German control reserve market data was used.

License

Notifications You must be signed in to change notification settings

LSB-dev/control-reserve-bid-forecasting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple header image

Control Reserve Market: Price Forecasting

A repository demonstrating the forecasting of control reserve market prices. For the experiments, German control reserve market data was used.

Why?

There is very little literature for control reserve time series forecasting, while at the same time, knowing future prices is very relevant when performing flexibility bidding.

What?

A simplified ML pipeline is built to predict control reserve market prices 24h ahead. The full details can be found in the corresponding publication (see below).

Improvements? 🤝

We welcome any kind of cooperation, feedback, or suggestions to further enhance the repository's value for other scientists. Feel free to expand the codebase and initiate a pull request.



Quick Start

Step 0: Set Up Environment

Use requirements.txt to set up an environment

Set the Python working directory root to /code.


Step 1: Create a Forecast-Baseline

Execute /forecasting/Baselines/run_lagged_forecast.py. This will create a forecast baseline based on time lags. The output will be stored in ../data/predictions/Baseline/.

Baseline.png


Step 2: Create a ML-Forecast

Create an experiment, similar to /forecasting/ML/experiments/run_experiment_01.py. This will create a forecast with the given settings.

The output will be stored in ../data/predictions/ML/<Experiment-ID>.

ML_Forecast.png


Step 3: Evaluate Forecasts

Execute /evaluation/run_forecast_evaluation.py. This creates an evaluation file for each forecast.

The output will be stored in ../data/evaluations/, and the folder structure is identical to the forecast folder.

evaluation.png



Folder-Structure

Code

  • \code code of the repository. To execute code, always use this as a root directory.
  • All files that start with run_ can be executed directly. All other files are helper code and are called by other scripts.

Data

Input

\data\input the input data used, i.e., the raw control reserve data from regelleistung.net

Forecasts

\data\predictions\ML all predictions from the different experiments are stored here

\data\predictions\Baseline all predictions from the other baseline experiments are stored here

Evaluations

\data\evaluations has the same folder structure as pre \data\predictions, for each forecast, a respective evaluation is stored here.



How to cite

If this work has helped you with your scientific work, we would appreciate a proper mention. ❤️

Our citation recommendation is:

Vincent Bezold and Lukas Baur and Alexander Sauer. "ML-Based Bidding Price Prediction for Pay-As-Bid Ancillary Services Markets: A Use Case in the German Control Reserve Market." arXiv preprint arXiv:2503.17214 (2025). https://doi.org/10.48550/arXiv.2503.17214

BibTeX entry

@article{bezold2025ml,
  title={ML-Based Bidding Price Prediction for Pay-As-Bid Ancillary Services Markets: A Use Case in the German Control Reserve Market},
  author={Bezold, Vincent and Baur, Lukas and Sauer, Alexander},
  journal={arXiv preprint arXiv:2503.17214},
  doi = {10.48550/arXiv.2503.17214},
  url = {https://doi.org/10.48550/arXiv.2503.17214},
  year={2025}
}



Acknowledgements

💡 We would also like to thank an anonymous reviewer who suggested not only publishing the results in the above-mentioned publication but also making the pipeline accessible for other researchers.

About

A repository demonstrating the forecasting of control reserve market prices (as MWE). For the experiments, German control reserve market data was used.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published