Skip to content

Auction Market

Taeshin Ushiroda edited this page May 11, 2025 · 12 revisions

Auction Market

The EML-CTS Auction Market is a decentralized, standards-compliant transactive energy system that enables autonomous agents to coordinate energy buying and selling in real time. The auction market is powered and built through the CTS model. Trading is done between actors, which can be defined as buildings, external markets, and clients. The auction market is designed to be versatile and modular, supporting diverse dynamics within markets, such as price adjustments and the integration of external markets. These features allow the auction market to support real-world deployment scenarios for power grids and power distribution communities.

For more information about the type of auction market, see https://en.wikipedia.org/wiki/Double_auction

How it works

To facilitate this implementation, we decided to use the segmentId field of a tender to determine which market type it should be processed by. For segmentId=1, tenders go to the traditional order book market. For segmentId=2, tenders go to this auction market implementation. Quotes are separate from tenders, and get sent to the quote driven market regardless of segmentId.

The implementation allows for listings from both buyers and sellers. Orders are submitted as tenders using payloads. When a ClientCreateTender payload is sent with segmentId=2, the tender is forwarded to the auction market.

Each payload for tenders contains info such as which side (buy/sell), tenderId, quantity, price, streamInterval (for stream tenders), etc.

For more information, see JSON Payload Documentation

Testing

RandomClasses

For internal testing, the market uses randomized testing tools using classes within the application. These RandomCreate classes generate JSON payloads. These JSON payloads are used for stress testing with large amounts of payloads and testing backend logic.

Postman Collection Generator

A class that generates a postman collection that contains 100 randomized tender requests is also included. This allows for testing of the REST API endpoints using postman.

For more information, see Generation of Random Instruments for Testing

Some Issues

The auction market clearing function clears every single instrument in the market. Functionality to clear a specific instrument still has to be added.

Clone this wiki locally