1 Introduction

The electricity markets around the world are undergoing a major transformation driven by the transition towards a carbon-free energy system. The increasing penetration of intermittent renewables puts a stronger emphasis on short-term electricity trading and balancing. The intraday electricity markets are increasingly used by the renewable producers to compensate forecast errors. This improves market liquidity and at the same time creates feedback effects of the renewable generation on the market price, leading to increased price volatility and negative correlations between renewable infeed and prices. These effects have an adverse impact on the revenues of renewable producers. They are already significant in countries with high renewable penetration and will become even more important as new renewable capacity comes online. A better understanding of the impact of intermittent renewable generation on intraday electricity market prices and trading volumes is therefore needed to ensure the long-term economic sustainability of the renewable energy production.

In this paper, we build an equilibrium model for the intraday electricity market, aiming to understand the price formation and identify the optimal strategies for market participants in the setting where both the strategies of the agents and the demand or generation forecasts may affect market prices. We consider an intraday electricity market, where the participants optimize their revenues based on imperfect forecasts of terminal demand or production. We place ourselves in the standard linear-quadratic setting with quadratic trading costs and linear market impact. The actions of each agent therefore impact market prices, leading to a stochastic game where players interact through the market price. We exhibit a closed-form Nash equilibrium for this game, and provide explicit formulas for the market price and the strategies of the agents under two different settings:

  • the setting of N identical agents, having complete information about the forecasts of the other agents,

  • the setting of an infinite number of identical small agents (the mean field), where each agent only observes the aggregate forecast as well as its own forecast.

We then show by theoretical analysis and through numerical simulations that our model reproduces the stylized features of the market price, which we document empirically. In particular,

  • the market price becomes more volatile at the approach of the delivery time, a phenomenon known as Samuelson’s effect in the empirical literature on futures markets;

  • the market price exhibits negative correlation with the total renewable infeed forecast, which grows in absolute value at the approach of the delivery time.

Furthermore, our model provides direct quantitative links between market characteristics and market price features, as well as the gain of individual agents. For instance,

  • observed price volatility increases for higher imbalance penalties which force the agents to follow the forecasts more closely;

  • observed price volatility increases for lower instantaneous trading costs, which allow agents to trade more actively;

  • increased competition (greater number of agents in the market) limits profit opportunities for individual agents and leads to lower price volatility.

Correlations between renewable infeed and intraday market prices have been studied empirically by a number of authors. Kiesel and Paraschiv [27] perform an econometric analysis of the German intraday market and show that a deeper penetration of renewable energies increases market liquidity and price-infeed correlations. The wind power output forecast errors thus turn out to be of paramount importance in explaining the price differences between the day ahead and intraday prices. Karanfil and Li [26] draw similar conclusions from an empirical study of the Danish market, and exhibit the impact of renewable energies on prices, bid-ask spread and volatility. Rowińska et al. [30] establish a negative correlation between the wind energy penetration and the day ahead market prices. Jonsson et al. [25] show that in addition to creating a negative correlation between the renewable infeed and spot prices, a deeper penetration of the intermittent energies significantly modifies the distribution of spot prices.

Optimal strategies in the intraday market for a single wind energy producer have also been the object of studies both in the price-taker and price-maker context. In the price-taker setting, Garnier and Madlener [21] solve a discrete-time optimal trading problem to arbitrate between immediate and delayed trading when price and production forecasts are uncertain. Morales et al. [29] consider a multimarket setting to derive an optimal bidding strategy for a wind energy producer in the day ahead and adjustment markets, while minimizing the cost incurred in the balancing market. Discrete decisions are taken for each delivery period, considering a finite number of probable scenarii. This approach has been enhanced by Zugno et al. [34], where the wind energy producer is now price maker in the balancing market. Following the same framework, Delikaraoglou et al. [14] formulate a problem where the renewable producer is price maker in both the day ahead and balancing markets and assess the relevance of strategic behavior in the context of high renewable penetration and varying flexible capacities. Still in the price-maker setting, continuous-time approaches have also been developed. Aïd et al. [2], consider the optimal trading rate and power generation of a thermal producer when the residual demand at the terminal date is random. In the same trend, Tan and Tankov [32] develop an optimal trading model for a wind energy producer. They quantify the evolution of forecast uncertainty at the approach of the delivery time, and exhibit optimal strategies depending on forecast updates.

In our study, the uncertain renewable production is also a source of randomness, and the producers’ trading decisions impact the market. Unlike the previous papers on electricity markets, we consider the equilibrium setting with many agents and determine the market price as the result of their interaction. Explicit results for dynamic equilibria are often difficult to obtain. In particular, Nash equilibria often lead to systems of coupled partial differential equations. However, the linear-quadratic setting and in particular the Almgren–Chriss framework of linear market impact and quadratic trading costs has become a standard toolbox allowing many authors to obtain the explicit form of equilibrium price under different market designs.

In the N-agent setting, Bouchard et al. [9], study the equilibrium returns in a market with mean-variance optimizing investors under quadratic transactions costs. Closer to our model, Voß [33] considers a game of two agents in the Almgren–Chriss framework, interacting through the market impact function, where each agent aims to follow a target as in the single-agent model of Bank et al. [7]. Bank et al. [6] apply the Almgren–Chriss framework to the study of liquidity dynamics in OTC dealer markets. Evangelista and Thamsten [16] consider liquidation games in a finite population of agents with information asymmetry.

The problem of finding the equilibrium may be simplified further by assuming a continuum of agents and using the mean field game approach. Fu et al. [17] consider the optimal liquidation mean-field game in the generalized Almgren–Chriss framework and obtain the optimal strategies and the equilibrium price as a solution to a linear forward–backward stochastic differential equation (FBSDE) with a singular terminal condition. Fu and Horst [18] extend these results to a leader–follower setting using the theory of mean-field games with a major player and Fu et al. [19] extend the framework with a self-exciting order flow. Fujii and Takahashi [20] find an equilibrium price under market clearing conditions under quadratic trading costs. Casgrain and Jaimungal [12, 13] used the Almgren and Chriss framework in the mean field setting to deal with heterogeneous sub-populations of agents with distinct filtration and/or different beliefs for each sub-population. Shrivats et al. [31] recently applied the theoretical setting developed in [13] to the case of trading in solar renewable energy certificate markets. Finally, while this paper was under review, a different equilibrium price model for electricity market was proposed in Aïd et al. [1], where in particular the Samuelson’s effect is explained through heterogeneity among agents.

Following these authors, our paper is based on the Almgren–Chriss toolbox, which we use to study market impact, trading strategies and equilibrium prices in intraday electricity markets. Electricity markets are very different from traditional stock/futures markets. The most fundamental difference is the predictability of prices: since electricity is non storable, shifts in demand and supply forecasts are reflected in the price. Other features, such as the Samuelson effect (growth of volatility at the approach of the delivery date) are specific to futures markets in general. Our paper is an attempt to model these features of electricity markets in an endogenous way, by relating price formation to production and demand forecasts. The classical Almgren–Chriss setting, extended with production and demand forecasts provides a simple and tractable framework to take into account the different features of electricity markets: market impact; low liquidity, which improves at the approach of the delivery date etc. We justify the use of this framework a posteriori by showing that the price obtained with our model reproduces the main observed empirical features of intraday electricity prices.

The main difference of our framework with the existing research, motivated by the predictability of electricity prices, is the presence of forecast processes, which determine the terminal constraint on the strategy of each agent. We consider deterministic market impact and trading cost parameters, which enables us to determine the trading strategies and the equilibrium price in explicit form, under very general assumptions on the price process and the forecast processes. In particular, unlike the above quoted papers, the fundamental price process is not assumed to be a martingale. The explicit form of the equilibrium price enables us to carry out a theoretical study of various characteristics of electricity markets, such as observed volatility, price-forecast correlation, market impact of forecast adjustments and trading costs. All these quantities are also determined in explicit form. As a final contribution, in the last section of the paper we perform an empirical analysis of intraday electricity markets using order book data, and show empirically that the qualitative features of electricity markets are reproduced by our model.

The paper is structured as follows. Section 2 describes the market and introduces our modeling framework. In Sect. 3.1 we place ourselves in a setting with a finite number of agents, where all agents observe the forecasts of the other agents. In Sect. 3.2 we consider the mean field game, where agents only observe their individual forecasts and the common information. To make a connection between the N-agent setting and the mean-field game setting, we show in Sect. 3.3 that (i) the N-player equilibrium converges to the mean-field equilibrium as \(N\rightarrow \infty \), and (ii) an \(\varepsilon \)-Nash equilibrium for the N-player problem may be constructed from the mean-field equilibrium. In Sect. 4 we use the results of Sect. 3.1 to analyze theoretically the properties of equilibrium price in electricity markets. Finally, in Sect. 5 we perform an empirical analysis of intraday electricity prices and confront it with the theoretical results obtained in the preceding sections.

2 Preliminaries on electricity markets

In this paper we consider a short-term electricity market, populated with small agents with identical characteristics. These agents face uncertain demand or supply at some future time, and use the electricity market to manage the associated risk. While our primary interest is to study the impact of increasing renewable penetration on intraday market prices, the market participants may in principle represent both renewable producers with uncertain generation forecasts and industrial consumers/utilities with uncertain demand. To simplify the language and notation, in the sequel, unless specified otherwise, we will refer to forecasts of all agents as demand forecasts (if the agent is a producer, its demand forecast will therefore be negative).

In most countries, the short-term electricity markets have the following structure (the specific times correspond to the EPEX Spot/Intraday market):

  • The day-ahead market is a one-off trading venue, where the agents may make bids until 12 PM (noon) on the day preceding the delivery day. At 12:55 the price is fixed using the merit order mechanism and the market clears. A major part of the electricity production is sold on the day-ahead market.

  • At 3 PM on the day preceding the delivery day, the intraday market opens, allowing continuous trading for each quarter-hour of the delivery day. The intraday market has higher trading cost than the day-ahead market, and is mainly used by market participants to adjust their day-ahead positions following forecast updates.

  • 15 min before delivery the intraday trading for the given delivery period closes. At this point, negative production imbalances must be compensated to the market operator at the ’high imbalance settlement price’, which is higher than the last intraday price, and for positive production imbalances, the producer is compensated at the ’low imbalance settlement price’, which is lower than the intraday market price.Footnote 1 In addition, high imbalances carry a reputational cost for the market participant. To avoid paying the imbalance penalties, the aggregate position (day-ahead plus intraday) held by the agent at the delivery time must therefore be equal to the realized demand.

To represent this market structure in a simplified way, we consider a fixed delivery period, starting at time T, and assume that the day-ahead market allows agents to trade instantaneously, without transaction costs, at time \(t=0\), at price denoted by \(S_0\). Then, between \(t=0\) and \(t=T\), the agents may trade in the intraday market, at price \((P_t)_{0\le t\le T}\), which contains a market impact component, and subject to transaction costs. Finally, at time T, if there is an imbalance, the agents must purchase the missing amount/sell the extra amount of electricity at price \(S_T\) without transaction cost, and in addition, pay a penalty depending on the absolute value of the imbalance. In the following section we provide details of the model and compute explicitly the optimal strategies of the agents and the equilibrium intraday market price.

3 Optimal trading strategies and equilibrium price

In this section we introduce our model of electricity market and derive explicit expressions for the equilibrium price and optimal equilibrium trading strategies of the agents. We consider both the N-agent setting (Sect. 3.1) and the mean-field game setting (Sect. 3.2). Section 3.3 clarifies the relationship between the equilibrium strategies and prices in the N-agent market and those of the mean field game limit.

3.1 N-player setting

In this section we assume that in the market there are N identical agents, and we denote by \(\phi ^i_t\) the position of i-th agent at time t. As is common in optimal execution literature, we assume that the position of i-th agent is an absolutely continuous process, and we define the rate of trading \({{\dot{\phi }}}^i_t\). We introduce a filtered probability space \((\varOmega , {\mathcal {F}}, {\mathbb {F}}:=({\mathcal {F}}_t)_{t \in [0,T]} ,{\mathbb {P}})\) to which all processes are adapted, and which models the information available in the market to all the agents. The position of the i-th agent at time t is given by \(\phi ^i_t = \phi ^i_0 + \int _{0}^{t}\dot{\phi ^i_s}ds\) with \(\phi ^i_0 \in {\mathcal {F}}_0\) denoting the position of the agent in the day-ahead market. The fundamental electricity price process is denoted by \((S_t)_{t \in [0,T]}\), where \(S_0\) corresponds to the day-ahead market price and \(S_t\) for \(0<t<T\) denotes the intraday market price net of the price impact component. The intraday market price with the price impact component is denoted by \((P^N_t)_{t \in [0,T]}\). The strategies of the agents impact the market price \(P_t^N\) as follows:

$$\begin{aligned} P^N_t = S_t + a\left( {\bar{\phi }}^N_t-{\bar{\phi }}^N_0\right) , \quad \forall t \in [0,T], \end{aligned}$$
(1)

where \({\bar{\phi }}^N_t = \frac{1}{N}\sum _{i=1}^N \phi ^i_t\) is the average position of the agents and a is a constant. The parameter N describes the size of the market (number of agents), it is therefore natural that the trading strategy of each agent has an effect of order of 1/N on the market price. The permanent component of the price impact of trades in our model is thus linear, which is the only shape compatible with the absence of arbitrage, see [22, 23]. On the other hand, the transient component of market impact is not modelled directly. Literature on market microstructure mostly shows that metaorders have a concave transient impact on prices (see Bershova and Rakhlin [8], Bacry et al. [5], Bucci et al. [11] and Bouchaud [10]). However, for the sake of simplicity and in order to obtain an analytical solution for our model, we choose a linear impact function as in the seminal papers by Almgren and Chriss [3, 4] and many other more recent papers, including Aïd et al. [2] in the context of electricity markets. The transient component of the market impact is taken into account indirectly, via a trading cost penalty.

The agents trading in the market at time t incur an instantaneous cost,

$$\begin{aligned} {{\dot{\phi }}}_t^i P^N_t + \frac{\alpha (t)}{2} {{\dot{\phi }}}^i_t{\left( {{\dot{\phi }}}^i_t + b \dot{{\bar{\phi }}}^{N,-i}_t\right) }, \quad \forall t \in [0,T] \end{aligned}$$

for the i-th agent where \(\dot{{\bar{\phi }}}^{N,-i}_t = \frac{1}{N-1} \sum _{j =1, j \ne i}^N {\dot{\phi }}^{j}_t\). Here the first term represents the actual cost of buying the electricity, and the second term represents the cost of trading, where \(\alpha (.)\) is a continuous strictly positive function on [0, T] reflecting the variation of market liquidity at the approach of the delivery date. The term \(b \dot{{\bar{\phi }}}^{N,-i}_t\) with \(b>0\) represents the impact of the crowd trading direction on the cost of trading of a single agent, which accounts for possible synchronization of the agents. The instantaneous cost paid by each agent is thus independent of the size of the market. This corresponds to a market where immediately available liquidity (market depth) is low (thus even a minor agent has to pay order book costs) but the order book is resilient (thus the trade of a minor agent only has a lasting impact of order of 1/N on the price). This is consistent with recent empirical and theoretical studies of order book dynamics, for example, according to [15], while the total daily volume exchange on a typical stock is around 1/200th of its market capitalization, the volume present in the order book at any given time is 1000 times smaller than this.

Each agent i has a demand forecast \(X^i_t\) and aims to maximize her gain from trading in the market under the volume constraint \(\phi ^i_T = X^i_T\). More precisely, whenever \(\phi ^i_T \ne X^i_T\), the agent must first purchase the missing amount or sell the extra amount of electricity at price \(S_T\) and in addition pay an imbalance penalty \(\frac{\lambda }{2}(\phi ^i_T - X^i_T)^2\). The actual imbalance mechanism of electricity markets boils down to applying a \(L^1\) penalty function to the terminal imbalance; however, large imbalances may also create a reputational damage to the producer, thus a quadratic penalty, which penalizes large imbalances more strongly, appears appropriate. On the other hand, the ’hard constraint’ may be recovered from our results by making the penalty parameter \(\lambda \) tend to infinity.

Our main results hold true under the following assumption.

Assumption 1

The process S is \({\mathbb {F}}\)-adapted and satisfies

$$\begin{aligned} {\mathbb {E}}\left[ \sup _{0\le t\le T}S_t^2\right] <\infty . \end{aligned}$$
(2)

and the processes \((X^i)_{i=1}^N\) are square integrable \({\mathbb {F}}\)-martingales.

Considering the demand forecast as a martingale is natural since it is the best estimate at time t of what the demand will be at the delivery time T given our current knowledge \({\mathcal {F}}_t\).

Definition 1

(Admissible strategy) We say that the strategy \((\phi ^i_t)_{t \in [0,T]}\) of the i-th agent is admissible if \(\phi ^i_0\in {\mathcal {F}}_0\), the process \(({{\dot{\phi }}}_t)_{t \in [0,T]}\) is \({\mathbb {F}}\)-adapted and

$$\begin{aligned} {\mathbb {E}}\Big [\big (\phi ^i_0\big )^2 + \int _0^T \big ({{\dot{\phi }}}^i_t\big )^2dt\Big ]<\infty . \end{aligned}$$

Following the discussion above, the objective function maximized by agent i is written as follows:

$$\begin{aligned} J^{N,i}\big (\phi ^i, \phi ^{-i}\big ) := - {\mathbb {E}}\Big [&\underbrace{\phi ^i_0 S_0}_{\text {Day ahead}} + \underbrace{\int _{0}^{T}\left\{ \frac{\alpha (t)}{2}\dot{\phi ^i_t}{\left( {{\dot{\phi }}}^i_t + b \dot{{\bar{\phi }}}^{N,-i}_t\right) }+\dot{\phi ^i_{t}}P^N_t \right\} dt}_{\text {Intraday}} \nonumber \\&\underbrace{- \left( \phi ^i_T-X^i_T\right) S_T+\frac{\lambda }{2}\left( \phi ^i_{T}- X^i_{T}\right) ^2}_{\text {Balancing}}\Big ], \end{aligned}$$
(3)

where \(\phi ^{-i}:= (\phi ^1,\dots , \phi ^{i-1}, \phi ^{i+1}, \dots , \phi ^N)\) is the vector of positions of all agents except the i-th one. Here, the first term corresponds to the day-ahead market transaction, the integral term corresponds to the cost of purchasing electricity in the intraday market, and the term in the second line corresponds to the imbalance payment.

Because of the price impact, each agent’s gain is affected by the decisions of others and we thus face a non-cooperative game. The optimal strategy of each player depends on the other players’ actions and we want to describe the resulting dynamical equilibrium, which we define formally below.

Definition 2

(Nash equilibrium) We say that \(({\phi ^{i*}_t})_{t \in [0,T]}^{i = 1 \dots N}\) is a Nash Equilibrium for the N-player game if it is a vector of admissible strategies, and for each \(i=1,\dots , N\),

$$\begin{aligned} J^{N,i}\big ( \phi ^i,\phi ^{-i*}\big ) \le J^{N,i}\big ( \phi ^{i*}, \phi ^{-i*}\big ) \end{aligned}$$
(4)

for any other admissible strategy \( \phi ^{i}\).

The following theorem characterizes explicitly the Nash equilibrium of the N-player game. In the theorem and its proof, we denote the average forecast process by \({\overline{X}}^N_t:= \frac{1}{N}\sum _{i=1}^N X^i_t\) and use the following shorthand notation.

$$\begin{aligned} \varDelta ^{N}_{s,t}&:= \int _s^t \frac{\eta ^{N}_{u,t}}{\alpha (u){\left( 1+\frac{b}{2}\right) }} du\quad&\text {with}\quad \eta ^{N}_{s,t} = e^{-\int _s^t \frac{(N-1)a}{N\alpha (u){\left( 1+\frac{b}{2}\right) }}du}\nonumber \\ {\widetilde{\varDelta }}^{N}_{s,t}&:=\int _s^t \frac{{{\tilde{\eta }}}^{N}_{u,t}}{\alpha (u)} du,\quad&\text {with}\quad {{\tilde{\eta }}}^{N}_{s,t} = e^{\int _s^t \frac{a}{N\alpha (u)}du}\nonumber \\ I^N_t&:= \int _0^t \frac{\eta ^{N}_{s,t}}{\alpha (s) {\left( 1+\frac{b}{2}\right) }} S_s ds, \quad&{{\widetilde{I}}}^N_t := {\mathbb {E}}\left[ \int _0^T\frac{\eta ^{N}_{s,T}}{\alpha (s) {\left( 1+\frac{b}{2}\right) }} S_s ds\Big |{\mathcal {F}}_t\right] ,\nonumber \\ {{\widetilde{S}}}_t&:= {\mathbb {E}}[S_T|{\mathcal {F}}_t],\quad&{\check{X}}^i_t = X^i_t - {\overline{X}}^N_t. \end{aligned}$$
(5)

The proof of this theorem can be found in Sect. 6.1.

Theorem 1

Under Assumption 1, the unique Nash equilibrium in the N-player game is given by

$$\begin{aligned} \begin{aligned} \phi ^{i*}_t =\,&X^i_0 + \frac{1+ \frac{a}{N}\varDelta ^{N}_{0,t}}{1+\frac{a}{N} \varDelta ^{N}_{0,T}} \big ({{\widetilde{I}}}^N_0-{{\widetilde{S}}}_0 \varDelta ^N_{0,T}\big )- \big (I^N_t-\varDelta ^N_{0,t} {{\widetilde{S}}}_0\big ) \\&+\, \int _0^t \varDelta ^{N}_{s,t}\frac{ \left( \frac{a}{N}+\lambda \right) d{{\widetilde{I}}}^N_s+ \lambda d{\overline{X}}^N_s+d{{\widetilde{S}}}_s}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{s,T}} + \int _0^t {\widetilde{\varDelta }}^{N}_{s,t} \frac{\lambda d{\check{X}}^i_s}{1+ \left( \frac{a}{N}+\lambda \right) {\widetilde{\varDelta }}^{N}_{s,T}} . \end{aligned} \end{aligned}$$
(6)

The equilibrium price has the following form:

$$\begin{aligned} P^N_t =\,&S_t + a\frac{\frac{a}{N}\varDelta ^{N}_{0,t}}{1+\frac{a}{N} \varDelta ^{N}_{0,T}} \big ({{\widetilde{I}}}^N_0-{{\widetilde{S}}}_0 \varDelta ^N_{0,T}\big ) - a\big (I^N_t-\varDelta ^N_{0,t} {{\widetilde{S}}}_0\big ) \nonumber \\&+\, a\int _0^t \varDelta ^{N}_{s,t}\frac{ \left( \frac{a}{N}+\lambda \right) d{{\widetilde{I}}}^N_s+ \lambda d{\overline{X}}^N_s+d{{\widetilde{S}}}_s}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{s,T}}. \end{aligned}$$
(7)

Discussion The day-ahead market position of i-th agent is given by

$$\begin{aligned} \phi ^{i*}_0 = X^i_0 + \frac{{{\widetilde{I}}}^N_0-{{\widetilde{S}}}_0 \varDelta ^N_{0,T}}{1+\frac{a}{N} \varDelta ^{N}_{0,T}}. \end{aligned}$$

The agents, therefore, trade in the day-ahead market based on their forecasts at time 0 and apply a correction for the potential fundamental price trend, which disappears if the fundamental price is a martingale.

For nonzero trading costs, the strategies of the agents and thus the price impact have a finite variation. Hence, the price impact component does not directly induce additional volatility which may be a weakness of the model. However, the drift \(\dot{\bar{\phi }}^{N}\) is stochastic and thus creates additional price variations, making the effective observed volatility larger. We will investigate this phenomenon in more details in Sect. 4.2.

The aggregate intraday market strategy \({\bar{\phi }}^{N*}\) [given by equation (27)] and, consequently, the equilibrium price have a complex structure because of the generality of our setting; in particular the fundamental price process \((S_t)_{0\le t\le T}\) is only assumed to be square integrable. Under more stringent assumptions, important simplifications can be obtained, as the following examples illustrate.

  • Assume that the fundamental price process S is a martingale. Then, \({{\widetilde{I}}}^N_t = -\int _0^t S_s d\varDelta ^N_{s,T}+S_t \varDelta ^N_{t,T}\) and \(d{\tilde{I}}^N_t = \varDelta ^N_{t,T} dS_t\). Substituting this into (7), after cancellations, we find that aggregate strategy does not depend on the fundamental price:

    $$\begin{aligned} {\bar{\phi }}^{N*}_t = {\overline{X}}^N_0 +\int _0^t \frac{\varDelta ^{N}_{s,t}\lambda d{\overline{X}}^N_s}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{s,T}}. \end{aligned}$$

    In the absence of price trend, the trades are therefore only provoked by forecast adjustments.

  • Assume now that the fundamental price contains a martingale component M and a deterministic component A: \(S_t = A_t + M_t\). The above argument shows that the aggregate strategy does not depend on the martingale part M. Thus, we can assume that \(S_t\) is deterministic, which means that \({{\widetilde{I}}}^N_t\) and \({{\widetilde{S}}}_t\) are constant, and the aggregate strategy becomes

    $$\begin{aligned} {\bar{\phi }}^{N*}_t =\,&{\overline{X}}^N_0 + \frac{1+ \frac{a}{N}\varDelta ^{N}_{0,t}}{1+\frac{a}{N} \varDelta ^{N}_{0,T}} \int _0^T \frac{\eta ^{N}_{s,T}}{\alpha (s) {\left( 1+\frac{b}{2}\right) }} (A_s-A_T) ds \\&-\, \int _0^t \frac{\eta ^{N}_{s,t}}{\alpha (s) {\left( 1+\frac{b}{2}\right) }} (A_s-A_T) ds + \int _0^t \frac{ \varDelta ^{N}_{s,t}\lambda d{\overline{X}}^N_s}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{s,T}} \end{aligned}$$

    If there is a positive trend in the fundamental price (that is, A is increasing), then the day-ahead position will be below the demand forecast, but there will be a positive trend in the aggregate strategy: the overall price trend will be amplified by the market impact component.

  • Consider now the limiting case of infinite penalty: \(\lambda \rightarrow \infty \). Then, using the dominated convergence as needed, we see that the aggregate strategy satisfies:

    $$\begin{aligned} \lim _{\lambda \rightarrow \infty }{\bar{\phi }}^{N*}_t =\,&{\overline{X}}^N_0 + \frac{ 1+\frac{a}{N}\varDelta ^{N}_{0,t}}{1+\frac{a}{N} \varDelta ^{N}_{0,T}} \left( {{\widetilde{I}}}^N_0-{{\widetilde{S}}}_0 \varDelta ^N_{0,T}\right) \\ {}&- \left( I^N_t-\varDelta ^N_{0,t} {{\widetilde{S}}}_0\right) + \int _0^t \varDelta ^{N}_{s,t}\frac{d{{\widetilde{I}}}^N_s+ d{\overline{X}}^N_s}{ \varDelta ^{N}_{s,T}} \end{aligned}$$
  • Finally, let us compute the form of trading strategy in the limit of zero trading costs. To this end, we assume in addition that the fundamental price process S has a left limit at every point. Fixing \(s<t \in [0,T]\), we have:

    $$\begin{aligned} \varDelta ^{N}_{s,t}= { \frac{N}{a(N-1)}\left( 1 - e^{-\int _s^t\frac{a(N-1)}{\alpha (l){\left( 1+\frac{b}{2}\right) }N}dl}\right) \longrightarrow \frac{N}{a(N-1)}}:=\varDelta ^* \end{aligned}$$

    as \(\alpha (t)\rightarrow 0\) uniformly in t. From the left limit property of S, it is easy to see that \(I^N_t \rightarrow \varDelta ^* S_t\) almost surely, for every t. For similar reasons, using the dominated convergence theorem, \({{\widetilde{I}}}^N_t \rightarrow \varDelta ^* {{\widetilde{S}}}_t\). Finally,

    $$\begin{aligned} \lim _{\Vert \alpha \Vert \rightarrow 0}{\bar{\phi }}^{N*}_t = {\overline{X}}^N_0 + \frac{N}{a(N-1)}({{\widetilde{S}}}_t - S_t) + \frac{\lambda }{a+\lambda }\left( {\overline{X}}^N_t - {\overline{X}}^N_0\right) \end{aligned}$$

    Thus, in the absence of trading costs, for \(N\ge 2\), the aggregate equilibrium strategy is well defined, and the gain of each agent remains bounded in expectation. This is in contrast with the single-agent case, where the gain may be arbitrarily large, unless the fundamental price process is a martingale. Indeed, in the single-agent case, without transaction costs the objective function writes:

    $$\begin{aligned} J^{1,i}(\phi ) = {\mathbb {E}}\left[ \int _0^T \phi _t d S_t - \frac{a}{2}(\phi _T-\phi _0)^2- \frac{\lambda }{2}(X_T - \phi _T)^2 - X_T S_T\right] , \end{aligned}$$

    and it is clear that unless the fundamental price process is a martingale, this expression can be made arbitrarily large. This means that the “price of anarchy” in this model is infinite: if the agents chose the same strategy, they could have all obtained an infinite gain, but competition between agents limits everybody’s gain to a finite value.

  • Finally, coming back to the form of the individual agent’s strategy \(\phi ^{i*}_t\), we see that the dependence on the trading cost \(\alpha \) is different for the common part of the strategy and the individual part of the strategy (the last term of the formula). While the common part of the strategy depends on the “effective trading cost” \(\alpha (1+b/2)\), taking into account the crowd behavior, the individual part of the strategy depends only on \(\alpha \). We conclude that due to additional costs related to crowd behavior of agents, the agents trade less actively in response to common forecast updates than in response to individual forecast updates.

3.2 Mean-field game setting

In this section, we place ourselves in the mean field game limit, that is, we assume the number of agents in the market, N tends to infinity, while the strategy of each agent remains finite. We then consider a generic agent and denote by \(X :=(X_t)_{t\in [0,T]}\) the demand forecast of this agent, by \(\phi \) the agent’s position and by \({\mathbb {F}}\) the filtration which contains the information available to this agent. In addition we introduce a smaller filtration, containing the common noise and denoted by \({\mathbb {F}}^0\). This filtration contains the information about the fundamental price and potentially some information about the demand forecast but, in general, not the full individual demand forecast of the generic agent. We decompose the individual demand forecast as follows: \(X_t = \overline{X}_t + {\check{X}}_t\), where \(\overline{X}_t = {\mathbb {E}}\left[ X_t |{\mathcal {F}}_t^0 \right] \) is common for all agents (it can be seen as a national demand forecast). In this mean field game setting, the average quantities of the N-agent problem are replaced with conditional expectations with respect to the common noise filtration \({\mathbb {F}}^0\).

For any \({\mathbb {F}}\)-adapted process \((\zeta _t)_{t \in [0,T]}\), we will denote \({\bar{\zeta }}_t = {\mathbb {E}}[\zeta _t |{\mathcal {F}}^0_t] = \int _{{\mathbb {R}}}x \mu _t^{\zeta }(dx)\) where: \(\mu ^{\zeta }_t:= {\mathcal {L}}(\zeta _t|{\mathcal {F}}^0_t)\). The game is now represented by the interaction of agents through the conditional distribution flow \(\mu ^{\phi }_t:= {\mathcal {L}}(\phi _t|{\mathcal {F}}^0_t)\) of the state process. The price impact function, defined in the previous section as an expectation with respect to the empirical measure, is now an integral with respect to the measure flow:

$$\begin{aligned} P_t = S_t + a ({\bar{\phi }}_t - {\bar{\phi }}_0). \end{aligned}$$
(8)

Each individual agent now has a negligible impact on the price, but the aggregate position of all agents has a nonzero impact. Thus, in the mean-field game setting, we consider that the market is very large compared to the size of the individual agent, but the immediately available liquidity in the order book is small, so that even a minor agent pays a non-zero trading cost.

The objective function for the generic agent is

$$\begin{aligned} J^{MF}(\phi , {\bar{\phi }}) :=&- {\mathbb {E}}\Bigg [\phi _0S_0 + \int _0^T \frac{\alpha (t)}{2}{{\dot{\phi }}}_t{\left( {{\dot{\phi }}}_t+b \dot{{\bar{\phi }}}_t\right) } + {{\dot{\phi }}}_t (S_t + a({\bar{\phi }}_t-{\bar{\phi }}_0))dt \nonumber \\&-(\phi _T-X_T) S_T+ \frac{\lambda }{2}(\phi _T-X_T)^2\Bigg ]. \end{aligned}$$
(9)

As in the previous section, each agent maximizes this functional over the set of strategies satisfying Definition 1.

We now define the mean field equilibrium.

Definition 3

(mean field equilibrium) An admissible strategy \(\phi ^* := (\phi ^*_t)_{t \in [0,T]}\) is a mean field equilibrium if for any admissible strategy \(\phi \),

$$\begin{aligned} J^{MF}(\phi ,{\bar{\phi }}^*)\le J^{MF}(\phi ^*,{\bar{\phi }}^*). \end{aligned}$$

In this section, we make the following assumption.

Assumption 2

  • The process S is adapted to the filtration \({\mathbb {F}}^0\) and satisfies (2).

  • The process X is a square integrable martingale with respect to the filtration \({\mathbb {F}}\).

  • The process \({\overline{X}}\) defined by \({\overline{X}}_t := {\mathbb {E}}[X_t|{\mathcal {F}}^ 0_t]\) for \(0\le t\le T\) is a square integrable martingale with respect to the filtration \({\mathbb {F}}\).

Note that if X is an \({\mathbb {F}}\)-martingale, then \({\overline{X}}\) is by construction an \({\mathbb {F}}^0\)-martingale, but it may not necessarily be a martingale in the larger filtration \({\mathbb {F}}\).

The following theorem characterizes the mean field equilibrium in our setting. The statement of the theorem appears similar to that of Theorem 1, modulo replacing \({\overline{X}}^N\) with \({\overline{X}}\) and making N tend to infinity. However, the computation of the strategy and the market price in the N-player setting requires the knowledge of the sum of forecasts of all agents whereas in the mean-field setting one needs to know the conditional expectation of the agent’s forecast with respect to the ’common knowledge’ filtration. Thus, the theoretical price given by this theorem can be computed by the regulator, and the strategy of this theorem can be computed by an individual player, both of which do not have the complete information about the forecasts of other players.

In the theorem and its proof, we use the following shorthand notation.

$$\begin{aligned}&\varDelta _{s,t}:= \int _s^t \frac{\eta _{u,t}}{\alpha (u){\left( 1+\frac{b}{2}\right) }} du\quad&\text {with}\quad \eta _{s,t} = e^{-\int _s^t \frac{a}{\alpha (u) {\left( 1+\frac{b}{2}\right) }}du}, \nonumber \\&I_t:= \int _0^t \frac{\eta _{s,t}}{\alpha (s){\left( 1+\frac{b}{2}\right) } } S_s ds, \quad&{{\widetilde{I}}}_t := {\mathbb {E}}\left[ \int _0^T\frac{\eta _{s,T}}{\alpha (s) {\left( 1+\frac{b}{2}\right) }} S_s ds\Big |{\mathcal {F}}_t\right] , \nonumber \\&\text {and} \quad {\widetilde{\varDelta }}_{s,t} :=\int _s^t \alpha ^{-1}(u) du. \end{aligned}$$
(10)

Theorem 2

Under Assumption 2, the unique mean field equilibrium strategy is given by

$$\begin{aligned} \phi ^{*}_t =\,&X_0 + ({{\widetilde{I}}}_0 - {{\widetilde{S}}}_0 \varDelta _{0,T}) - (I_t-\varDelta _{0,t} {{\widetilde{S}}}_0) \nonumber \\&+ \int _0^t \varDelta _{s,t}\frac{ \lambda d{{\widetilde{I}}}_s+ \lambda d{\overline{X}}_s+d{{\widetilde{S}}}_t}{1+\lambda \varDelta _{s,T}} + \int _0^t {\widetilde{\varDelta }}_{s,t} \frac{\lambda d{\check{X}}_s}{1+ \lambda {\widetilde{\varDelta }}_{s,T}}. \end{aligned}$$
(11)

The equilibrium price has the following form:

$$\begin{aligned} P_t = S_t - a(I_t-\varDelta _{0,t} {{\widetilde{S}}}_0) + a\int _0^t \varDelta _{s,t}\frac{ \lambda d{{\widetilde{I}}}_s+ \lambda d{\overline{X}}_s+d{{\widetilde{S}}}_t}{1+\lambda \varDelta _{s,T}}. \end{aligned}$$
(12)

The proof of Theorem 2 follows the lines of that of Theorem 1 with some adjustments, and is thus omitted to save space.

3.3 Relationship between N-player setting and MFG setting

In this section, we study the relationship between the equilibrium strategies and prices in the N-agent market and those of the mean field game limit, and prove the following results.

  • The market price and the agent’s strategy in the N-agent model converge to their respective mean field values as \(N\rightarrow \infty \). This shows that to understand the behavior of agents and prices in the realistic N-agent market, one can use the mean-field game model, which does not require the knowledge of individual forecasts, but only that of the common information filtration.

  • An approximate equilibrium (\(\varepsilon \)-Nash equilibrium) in the N-player setting may be constructed from the MFG solution. In other words, an agent trading in the N-agent market may construct a strategy whose gain is sufficiently close to the optimal equilibrium gain using the mean-field game solution, which does not require the knowledge of the private forecasts of the other agents.

To address these questions, we need to make more precise assumptions on the probabilistic setup of the problem. In particular, since we would like to study the convergence of the N-agent problem as \(N\rightarrow \infty \), we consider an infinity of agents. In addition, all N-agent problems and the mean field problem must be defined on the same probability space.

Assumption 3

  • The process S adapted to the filtration \({\mathbb {F}}^0\) and satisfies (2).

  • The processes \((X^i)_{i=1}^\infty \) are square integrable \({\mathbb {F}}\)-martingales.

  • There exists a square intergrable \({\mathbb {F}}\)-martingale \({\overline{X}}\), such that for all \(i\ge 1\), and all \(t\in [0,T]\), almost surely, \({\mathbb {E}}[X^i_t|{\mathcal {F}}^0_t]={\overline{X}}_t\).

  • The processes \(({\check{X}}^i)_{i=1}^\infty \) defined by \({\check{X}}^i_t = X^i_t - {\overline{X}}_t\) for \(t\in [0,T]\), are orthogonal square integrable \({\mathbb {F}}\)-martingales, such that the expectation \({\mathbb {E}}[({\check{X}}^i_T)^2]\) does not depend on i.

Let us fix \(N<\infty \), and consider a market with N agents. For a given \(i\le N\), we may define the "mean-field" strategy for the i-th agent as follows.

$$\begin{aligned} \phi ^{MF,i*}_t=&X^i_0 + ({{\widetilde{I}}}_0 - {{\widetilde{S}}}_0 \varDelta _{0,T}) - (I_t-\varDelta _{0,t} {{\widetilde{S}}}_0) \nonumber \\&+ \int _0^t \varDelta _{s,t}\frac{ \lambda d{{\widetilde{I}}}_s+ \lambda d{\overline{X}}_s+d{{\widetilde{S}}}_t}{1+\lambda \varDelta _{s,T}} + \int _0^t {\widetilde{\varDelta }}_{s,t} \frac{\lambda d{\check{X}}^i_s}{1+ \lambda {\widetilde{\varDelta }}_{s,T}} \end{aligned}$$
(13)

Unlike the true optimal strategy of the i-th agent, this strategy is computed using only the common information and the individual information of the i-th agent, it does not require the knowledge of the private forecasts of the other agents. Moreover, this strategy does not depend on N. The following two results show that, on the one hand, the true optimal strategy of the i-th agent in the N-player game converges to this mean-field strategy as \(N\rightarrow \infty \), and on the other hand, that this mean-field strategy, if used by all agents in the N-player game, constitutes an \(\varepsilon \)-Nash equilibrium. Proofs of these results can be found in Appendix 6.2.

Proposition 1

Let Assumption 3 holds true, and let \(\phi ^{i*}\) denote the optimal position of the i-th agent in the N-player setting, given by (6), and by \(\phi ^{MF,i*}\) the optimal position in the mean field setting, given by (13). Then, for all \(N\ge 1\), the differences between the strategy of a single agent, the aggregate strategy and the equilibrium price in the N-agent model and the corresponding quantities in the mean-field model can be bounded as follows.

$$\begin{aligned}&\sup _{0\le t\le T}{\mathbb {E}}\left[ \left( \phi ^{i*}_t - \phi ^{MF,i*}_t\right) ^2\right] +\sup _{0\le t\le T}{\mathbb {E}}\left[ \left( {\overline{\phi }}^{N*}_t - {\overline{\phi }}^*_t\right) ^2\right] +\sup _{0\le t\le T}{\mathbb {E}}\left[ \left( P^{N}_t - P_t\right) ^2\right] \\&\quad + \sup _{0\le t\le T}{\mathbb {E}}\left[ \left( \dot{{\overline{\phi }}}^{N*}_t - \dot{{\overline{\phi }}}^*_t\right) ^2\right] \le \frac{C}{N^2} {\mathbb {E}}\left[ \sup _{0\le t\le T} S_t^2\right] + \frac{C}{N^2} {\mathbb {E}}\left[ \left( {\overline{X}}_T\right) ^2\right] + \frac{C}{N} {\mathbb {E}}\left[ \left( {\check{X}}_T^i\right) ^2\right] , \end{aligned}$$

where the constant C depends only on the coefficients \(\alpha \), b, \(\lambda \) and a.

Proposition 2

Under Assumption 3, consider the vector of admissible strategies for the N-player game defined by equation (13) for \(i=1,\dots ,N\). Then, there is a constant \(C<\infty \) which does not depend on N, such that for any other vector of admissible strategies \((\phi ^i_t)^{i=1\dots ,N}_{t\in [0,T]}\) for the N-player game,

$$\begin{aligned} J^{N,i}\big (\phi ^i,\phi ^{MF,-i*}\big ) - \frac{C}{N^{\frac{1}{2}}} \le J^{N,i}\big ( \phi ^{MF,i*},\phi ^{MF,-i*}\big ), \quad \forall i \in \{1,\ldots ,N\},\ \forall t \in [0,T]. \end{aligned}$$

In other words, the vector of strategies \((\phi ^{MF,i*}_t)^{i=1\dots ,N}_{t\in [0,T]}\) is an \(\varepsilon \)-Nash equilibrium for the N-player game with \(\varepsilon = \frac{C}{N^{\frac{1}{2}}}\).

4 Intraday electricity prices: theoretical insights

In this section we show through theoretical analysis how the main empirically documented features of electricity markets appear naturally as the result of our model. Empirical illustrations of these features are provided in the following section. We analyze the effect of market structure (number of participants, terminal penalty, trading costs and market impact parameters) on the overall costs/gains of participants as well as on the aggregate market parameters such as price volatility, the correlation between forecast and price and the impact of forecast adjustments on market prices. We consider the N-agent framework and make the following additional assumptions to simplify computations.

  • The fundamental price process S is a martingale orthogonal to the forecast processes of the agents, with \(\langle S\rangle _t = \sigma _S^2 t\).

  • The trading cost parameter \(\alpha \) is constant.

  • The forecast processes of agents satisfy

    $$\begin{aligned} \langle {\overline{X}}^N\rangle _t = \sigma _X^2 t,\quad \langle {\check{X}}^i\rangle _t = {{\check{\sigma }}}_X^2 t,\quad \text {and}\quad \langle {\overline{X}}^N, {\check{X}}^i\rangle _t = 0\quad \forall \ i, \end{aligned}$$

    for some constants \(\sigma _X\) and \({{\check{\sigma }}}_X\), where \({\check{X}}^i_t = X^i_t - {\overline{X}}^N_t\).

In addition, to make the notation more compact throughout this section we write \({{\tilde{\alpha }}}:= \alpha (1+b/2)\).

Under these assumptions, the coefficients \(\eta ^{N}_{s,t}\) and \(\varDelta ^{N}_{s,t}\) depend only on \(t-s\) and not on s and t separately. We shall therefore write them as \(\eta ^{N}_{t-s}\) and \(\varDelta ^{N}_{t-s}\), and similarly for the other coefficients, from now and until the end of this section. The aggregate position of N agents in equilibrium therefore writes:

$$\begin{aligned} {\bar{\phi }}^{N}_t&= {\overline{X}}^N_0 + \int _0^t \varDelta ^{N}_{t-s}\frac{ \lambda d{\overline{X}}^N_s}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{T-s}}. \end{aligned}$$

4.1 Price impact of forecast adjustments

Due to the non-storability of electricity, the prices of this commodity are strongly affected by demand and supply shocks. While for regular commodities these shocks may be compensated by changes in reserves, for electricity this is not possible. As a result, supply shocks caused, for instance, by the power plant breakdowns, and demand shocks often caused by weather forecast changes have a lasting impact on the price. In our model, the market impact of demand/supply shocks can be represented through a jump in the forecast process. An idiosyncratic supply shock may correspond to a jump in the individual forecast process \(X^i\), while a generalized demand shock caused by weather forecast update may correspond to a jump in the aggregate forecast process \({\overline{X}}^N\). Consider for instance a jump \(\varDelta {\overline{X}}^N\) in the aggregate forecast occurring at time \(t^*\). The impact of this jump on the aggregate strategy \({\bar{\phi }}^N_t\), defined as the difference of the strategies with and without the forecast adjustment, is given by

$$\begin{aligned} \delta {\bar{\phi }}^N_t = {\mathbf {1}}_{t\ge t^*}\frac{\lambda \varDelta ^{N}_{t-t^*} \varDelta {\overline{X}}^N}{1+\left( \frac{a}{N}+\lambda \right) \varDelta ^{N}_{T-t^*}}. \end{aligned}$$
Fig. 1
figure 1

Price impact of an aggregate demand forecast adjustment at \(t=0\) (delivery time is \(t=5\)). Parameter values: \(a=1\), \(N=100\), \(\alpha = 0.5\), \(b=0\), forecast adjustment size: 1 MW

For example, after a positive demand shock, the agents will need to purchase the missing electricity in the market, creating a permanent price impact given by a positive increasing continuous function of time (see Fig. 1).

4.2 Volatility and Samuelson’s effect

We have seen that since the strategy \({\bar{\phi }}^N\) is differentiable, the quadratic variation of the equilibrium price \(P^N_t\) coincides with the quadratic variation of the fundamental price. However, the actual observed volatility, which is estimated from discretely observed prices, may be different. The standard estimator of integrated variance by discrete quadratic variation over the interval \([t,t+h]\) with M steps is given by

$$\begin{aligned} Q^M(t,t+h) = \sum _{i=0}^{M-1} \left( P_{t+\frac{i+1}{M}h} - P_{t+\frac{i}{M}h}\right) ^2 \end{aligned}$$

To focus on the average behavior of volatility rather than on individual random trajectories, we consider the expectation of this estimator. Finally, to estimate the expected instantaneous variance, it seems natural to consider this estimator over one time step and normalize it by the step size. Thus, the expression

$$\begin{aligned} \frac{1}{h}{\mathbb {E}}\left[ \left( P^N_{t+h} - P^N_t\right) ^2\right] \end{aligned}$$

represents the average instantaneous price variance, estimated over time step h.

The following lemma quantifies the behavior of this expression for small values of h.

Lemma 1

As \(h\rightarrow 0\), the equilibrium price satisfies

$$\begin{aligned} \frac{1}{h}{\mathbb {E}}\big [\big (P^N_{t+h} - P^N_t\big )^2\big ] = \sigma _S^2 + h{\mathcal {V}}_t + O(h^2), \end{aligned}$$
(14)

where

$$\begin{aligned} {\mathcal {V}}_t = \frac{a^2 \lambda ^2 \sigma _X^2}{{{\tilde{\alpha }}}^2} \int _0^t \frac{\big (\eta ^{N}_{t-s}\big )^2}{\big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^{N}_{T-s}\big )^2}ds. \end{aligned}$$
(15)

Proof

The expected squared change in the price process satisfies:

$$\begin{aligned} {\mathbb {E}}\big [\big (P^N_{t+h} - P^N_t\big )^2\big ]&= \sigma _S^2 h + 2a{\mathbb {E}}\big [\big (S_{t+h}-S_t\big )\big ({\bar{\phi }}^N_{t+h}-{\bar{\phi }}^N_t\big )\big ] + a^2{\mathbb {E}}\big [\big ({\bar{\phi }}^N_{t+h}-{\bar{\phi }}^N_t\big )^2\big ] \end{aligned}$$

Since the fundamental process S is orthogonal to the forecast process, the second term in the right-hand side above is zero. The third term satisfies:

$$\begin{aligned} {\mathbb {E}}\big [\big ({\bar{\phi }}^N_{t+h}-{\bar{\phi }}^N_t\big )^2\big ] =&\sigma _X^2 \lambda ^2 \int _0^t\frac{\big (\varDelta ^N_{t-s} - \varDelta ^N_{t+h-s}\big )^2}{\big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^N_{T-s}\big )^2}ds \\&+ \sigma _X^2 \lambda ^2 \int _t^{t+h}\frac{\big (\varDelta ^N_{t+h-s}\big )^2}{\big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^N_{T-s}\big )^2}ds. \end{aligned}$$

From the explicit form of \(\varDelta ^N_t\), it is clear that the second term above is of order of \(O(h^3)\), and the first term equals

$$\begin{aligned} h^2\sigma _X^2 \lambda ^2 \int _0^t\frac{\big (\big (\varDelta ^N_{t-s}\big )'\big )^2}{\big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^N_{T-s}\big )^2}ds, \end{aligned}$$

up to terms of order of \(h^3\). \(\square \)

As expected, as \(h\rightarrow 0\), the expression (14) converges to the variance of the fundamental price \(\sigma ^2_S\). However, an agent using volatility estimator with time step h on the fundamental price process, will find an extra variance of approximately \(h{\mathcal {V}}_t\) (on average). For a given fixed time step, the function \({\mathcal {V}}\) can thus be used as a proxy of the additional volatility of the equilibrium prices.

Fig. 2
figure 2

Proxy of expected observed volatility as function of time (delivery time is \(t=2\)). Parameter values: \(a=1\), \(N=100\), \(\alpha = 0.5\), \(b=0\), \(\sigma _X = 50\)

In this section we draw conclusions about the behavior of price volatility by analyzing this proxy, and in Section 5 we will show in numerical examples that the actual volatility, estimated from discrete observations of simulated market price exhibits similar behavior.

  • First of all, since \(\varDelta ^N_t\) is increasing in t, the observed price volatility increases at the approach of the delivery date in our model (see Fig. 2). This phenomenon, well documented in electricity futures and other futures markets [24] is known as the Samuelson effect and we also illustrate it empirically in Sect. 5.

  • The observed price volatility is increasing in \(\lambda \): stronger imbalance penalties lead to higher volatility in the intraday market (see Fig. 2). Moreover,

    $$\begin{aligned} \lim _{\lambda \rightarrow \infty } {\mathcal {V}}_t = \frac{a^2\sigma _X^2}{{{\tilde{\alpha }}}^2}\int _0^t \frac{\big (\eta ^N_{t-s}\big )^2}{\big (\varDelta ^N_{T-s}\big )^2}ds, \end{aligned}$$

    and the latter expression explodes for \(t\rightarrow T\). Thus, we conclude that the Samuelson effect is also stronger for higher imbalance penalties.

  • In the small liquidity cost regime (\({{\tilde{\alpha }}}\rightarrow 0\)), for \(0<t<T\), \(\varDelta ^N_{t-s}\rightarrow \frac{N}{(N-1)a}\) uniformly on \(s\in [0,t]\). Therefore, for \(N>1\),

    $$\begin{aligned} {\mathcal {V}}_t \sim \frac{a^2\lambda ^2 \sigma _X^2}{{{\tilde{\alpha }}}^2} \frac{(a+\lambda )^2 N^2}{a^2(N-1)^2} \int _0^t \big (\eta ^N_{t-s}\big )^2 ds \sim \frac{\lambda ^2 \sigma _X^2}{{{\tilde{\alpha }}}} \frac{(a+\lambda )^2}{2a} \frac{N}{N-1} \end{aligned}$$

    This shows that with decreasing trading costs extra variance of the equilibrium price grows like \(\frac{1}{{{\tilde{\alpha }}}}\). Lower transaction costs allow the agents to follow the forecasts more closely, leading to a higher volatility of the aggregate position and of the market price. On the other hand, since the function \(N\mapsto \frac{N}{N-1}\) is decreasing in N, we conclude that price volatility in the small liquidity cost regime is decreasing with the number of agents: in our model, competition between agents increases market frictions and leads to reduced volatility.

  • In the large liquidity cost regime (\({{\tilde{\alpha }}}\rightarrow \infty \)), \(\eta ^N_t\rightarrow 1\) and \(\varDelta ^{N}_t \sim \frac{t}{{{\tilde{\alpha }}} }\), so that

    $$\begin{aligned} {\mathcal {V}}_t \sim \frac{a^2\lambda ^2 \sigma _X^2 t}{{{\tilde{\alpha }}}^2}. \end{aligned}$$

    Higher liquidity costs decrease the trading rate of agents and lead to a lower overall market volatility.

4.3 Price-forecast covariance

To understand how the forecast updates influence prices, we compute the covariance of the increment of the aggregate strategy over an interval of length h with the increment of the aggregate forecast over the same interval. Using the explicit form of the strategy, we easily obtain,

$$\begin{aligned} \text {Cov}\big [{\bar{\phi }}^N_{t+h} - {\bar{\phi }}^N_{t},{\overline{X}}^N_{t+h} - {\overline{X}}^N_{t}\big ] = \lambda (\sigma _X)^2 \int _{t}^{t+h} \frac{\varDelta ^{N}_{t+h-s}}{1+(\frac{a}{N}+\lambda ) \varDelta ^{N}_{T-s}}ds. \end{aligned}$$

From this expression, we conclude that the covariance of equilibrium price with forecast updates increases when the terminal penalty \(\lambda \) increases, and when the time t approaches the delivery date .

4.4 Trading costs

In our model, the agents face three types of costs: the trading costs, the market impact costs, and the balancing costs. Using the martingale property of S and other assumptions of this section, these costs are evaluated as follows:

$$\begin{aligned} C^{N,i}_{tra}&= {\mathbb {E}}\left[ \int _{0}^{T}\frac{\alpha }{2}\dot{\phi ^i_t}{\left( {{\dot{\phi }}}^i_t + b \dot{{\bar{\phi }}}^{N,-i}_t\right) }dt\right] \\&= \frac{\alpha (1+b))}{2}{\mathbb {E}}\left[ \int _{0}^{T}\big ({\dot{{\bar{\phi }}}^N_t}\big )^{2}dt\right] + \frac{\alpha }{2}\frac{N-1-b}{N-1}{\mathbb {E}}\left[ \int _{0}^{T}\big ({\dot{{{\check{\phi }}}}^N_t}\big )^{2}dt\right] \\ C^{N,i}_{imp}&= {\mathbb {E}}\left[ \int _{0}^{T} a\dot{\phi ^i_{t}}\big ({\bar{\phi }}^N_t - {\bar{\phi }}^N_0\big )dt\right] = \frac{a}{2}{\mathbb {E}}\left[ \big ({\bar{\phi }}^N_T-{\bar{\phi }}^N_0\big )^2\right] \\ C^{N,i}_{bal}&= \frac{\lambda }{2}{\mathbb {E}}\left[ \big (\phi ^i_{T}- X^i_{T}\big )^2\right] = \frac{\lambda }{2}{\mathbb {E}}\left[ \big ({\bar{\phi }}^N_{T}- {\overline{X}}^N_{T}\big )^2\right] +\frac{\lambda }{2}{\mathbb {E}}\left[ \big ({{\check{\phi }}}^i_{T}- {\check{X}}^i_{T}\big )^2\right] \end{aligned}$$

After some tedious but straightforward computations, these costs are found to have the following integral form:

$$\begin{aligned} C^{N,i}_{tra}&= \frac{1+b}{1+\frac{b}{2}}\frac{ \lambda ^2 \sigma _X^2}{4}\int _0^T dt \frac{\big (1+\eta ^{N}_{T-t}\big )\varDelta ^{N}_{T-t}}{ \big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^{N}_{T-t}\big )^2}\\&\quad +\frac{N-1-b}{N-1} \frac{\lambda ^2 {{\check{\sigma }}}_X^2}{4}\int _0^T dt \frac{ \big ({{\tilde{\eta }}}^{N}_{T-t}+1\big ){\widetilde{\varDelta }}^{N}_{T-t} }{ \big (1+(\frac{a}{N}+\lambda ){\widetilde{\varDelta }}^{N}_{T-t}\big )^2} \\ C^{N,i}_{imp}&= \frac{a \sigma _X^2 \lambda ^2}{2}\int _0^T \frac{\big (\varDelta ^{N}_{T-t}\big )^2}{ \big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^{N}_{T-t}\big )^2}dt \\ C^{N,i}_{bal}&= \frac{\lambda \sigma _X^2}{2} \int _0^T \frac{\big (1+\frac{a}{N}\varDelta ^{N}_{T-t}\big )^2}{ \big (1+\big (\frac{a}{N}+\lambda \big )\varDelta ^{N}_{T-t}\big )^2}dt+\frac{\lambda {{\check{\sigma }}}_X^2}{2} \int _0^T \frac{\big (1+\frac{a}{N}{\widetilde{\varDelta }}^{N}_{T-t}\big )^2}{ \big (1+\big (\frac{a}{N}+\lambda \big ){\widetilde{\varDelta }}^{N}_{T-t}\big )^2}dt, \end{aligned}$$

which leads to the following conclusions:

  • Trading costs are proportional to forecast variances: more precise forecasts lead to lower trading costs. However, while the trading costs and the balancing costs depend both on the volatility of aggregate forecast and that of the individual forecast, the market impact costs only depend on the volatility of the aggregate forecast. Thus, an agent who has a better individual forecast will pay lower trading and balancing costs but the same market impact costs.

  • Since both \(C^{N,i}_{tra}\) and \(C^{N,i}_{imp}\) are increasing in \(\lambda \), stronger imbalance penalties lead to higher trading and market impact costs. The balancing cost \(C^{N,i}_{bal}\) is increasing in \(\lambda \) for small values of \(\lambda \), but may become decreasing for large \(\lambda \). When \(\lambda \rightarrow \infty \), the market impact costs and the balancing costs remain bounded, however it can be shown that the single agent trading cost tends to \(+\infty \) at the rate of \(\log \lambda \), thus very high imbalance penalties lead to prohibitive trading costs and are therefore detrimental for market liquidity.

  • In the case of small liquidity costs (\(\alpha \rightarrow 0\)), each component of the cost converges to a nonzero limit:

    $$\begin{aligned} C^{N,i}_{tra}&\rightarrow \frac{1+b}{1+\frac{b}{2}}\frac{ \lambda ^2 \sigma _X^2T}{4}\frac{(N-1)a}{N(a+\lambda )^2} + \frac{N-1-b}{N-1} \frac{\lambda ^2{{\check{\sigma }}}_X^2T}{4} \frac{aN T}{(a+\lambda N)^2}\\ C^{N,i}_{imp}&\rightarrow \frac{a\sigma ^2_X \lambda ^2 T}{2(a+\lambda ^2)} \\ C^{N,i}_{bal}&\rightarrow \frac{\lambda \sigma _X^2 T}{2} \frac{a^2}{(a+\lambda )^2} + \frac{\lambda {{\check{\sigma }}}_X^2 T}{2} \frac{a^2}{(a+\lambda N)^2}. \end{aligned}$$

    As the cost per trade decreases, the agents trade more actively so that the overall trading cost does not tend to zero.

5 Empirical results and numerical illustrations

In this section our objective is to analyze the empirically observed features of intraday market prices, demonstrate that these features are reproduced by our model, and illustrate other properties of our model, such as the convergence of the N-agent model to the mean-field limit, with numerical examples.

5.1 Stylized features of intraday electricity market prices

A brief description of our dataset To compute the empirical price analyzed in the following sections, we used the limit order book data provided by EPEX electricity market for the Germany delivery zone for the 1st quarter of 2015 and January 2017. Although in the market it is possible to trade in quarter-hours, in this study we focus on the full hours only. The dataset contains full information about sell and buy orders recorded on any given day, whether they result in a transaction or not. From this data we reconstruct the state of the order book, which allows us in turn to derive the mid-quote price and the bid-ask spread.

Market liquidity In Fig. 3, we plot the distribution of the times of orders and transactions as function of time to delivery computed over all orders and transactions in February 2015. We observe that the liquidity starts to appear only 5–6 h before delivery, and grows very quickly at the approach of the delivery date.

Fig. 3
figure 3

Distribution of times orders and transactions in February 2015

We also performed an estimation of the bid-ask spread in the German intraday electricity market for January 2017 for different delivery times. For each delivery time, Fig. 4, shows that the spread averaged over each hour and over all days in January 2017 decreases as we approach the end of the trading period. This is consistent with the assumption that the market is used by the renewable energy producers to adjust their positions when precise forecasts become available.

Fig. 4
figure 4

Average spread per hour as a function of time to delivery over January 2017

Price volatility To estimate the empirical volatility, we consider mid-quote prices reconstructed from the limit order book data of the Germany delivery zone for January 2017, as explained above. The mid-quote price was computed on a uniform grid with a time step of 1 min. In January 2017 the market was already relatively liquid: the average number of daily price changes for a given delivery hour varied between approximately 3400 for the least liquid delivery hour (2 AM to approximately 5800 for the most liquid delivery hour (6 PM). Given that, as we observed above, liquidity is concentrated in the last 5–6 h, a 1-min interval during this time contains many price changes and the market microstructure effects are limited.

The observed midquote price is denoted \(({\tilde{P}}_t)_{t \in [0,T]}\). We denote by n the number of observations in the data of January 2017 and by \(\{t_0,\dots ,t_i, \dots , t_n\}\) the (uniform) time grid over which the observations are available. In contrast with the integrated volatility whose estimator is generally given by \(\widehat{\int _0^T \sigma ^2_sds}= \sum _{i=1}^n \varDelta {\tilde{P}}^2_{t_{i-1}}\), estimating the instantaneous volatility is less straightforward. Following [28], we use a kernel-based non parametric estimator of the instantaneous volatility:

$$\begin{aligned} {\hat{\sigma }}_t^2 = \frac{\sum _{i = 1}^n K_h(t_{i-1}-t)\varDelta {\tilde{P}}^2_{t_{i-1}}}{\sum _{i = 1}^n K_h(t_{i-1}-t)(t_{i}-t_{i-1})}, \end{aligned}$$
(16)

where K(.) is the Epanechnikov kernel: \(K(x) = \frac{3}{4} (1-x^2) \mathbbm {1}_{[-1,1]}(x)\) and \(K_h(x)= \frac{1}{h}K(\frac{x}{h})\). The parameter h was taken equal to 0.08 h (\(\approx 5\) m in) after performing some cross-validation analyses and sensitivity tests. The paths of the estimated volatility as function of time to delivery for different delivery hours are given in Fig. 5. We observe that the volatility increases as delivery time draws near and market participants trade more actively, giving an empirical evidence of the presence of the Samuelson effect in electricity market.

Fig. 5
figure 5

Instantaneous market volatility for different delivery hours

Correlation between price and renewable indeed forecasts We finally study the empirical correlation between the intraday market prices and the renewable wind production forecasts. Unlike the rest of the paper, here we use actual wind infeed forecasts, not the demand forecasts. To compute empirical correlation estimates, we use the limit order book data from the intraday EPEX market of the first three months of 2015 for the Germany delivery zone, from which, as before, we compute the mid-quote prices. The production forecasts correspond to the same period and are updated every 15 min for each delivery hour. In Fig. 6, we plot the correlation between the increments of the market price and the increments of the production forecasts for the delivery time 12 h (averaged over 90 days in the dataset), together with the 2-standard deviation bounds. To match the forecast update frequency, the mid-quote price is also sampled at 15-min intervals here.

Fig. 6
figure 6

Correlation between the market price increments and the renewable production forecast increments for the German delivery zone in winter 2015

We find that the correlation between the price increments and those of the production forecast is negative and increases in absolute value as we approach the delivery time.

5.2 Numerical illustration of our model

Model specification We now define the dynamics for the fundamental price and for the demand forecasts used in the simulations. We also give the chosen values of the different parameters. Our objective here is to illustrate the features of the model and show that it reproduces the stylized facts of the market prices. Therefore, the majority of the parameters are not precisely estimated, but are given plausible values.

The evolution of the fundamental price is described as follows:

$$\begin{aligned} dS_t = \sigma _S dW_t \end{aligned}$$
(17)

where \(\sigma _S\) is a constant and \((W_t)_{t \in [0,T]}\) is Brownian motion. We also assume that the liquidity function \(\alpha (.)\) is given by

$$\begin{aligned} \alpha (t)= & {} \alpha \times (T-t)+ \beta , \quad \forall t \in [0, T] \end{aligned}$$
(18)

where \(\alpha \) and \(\beta \) are strictly positive constants. The liquidity function is decreasing with time. This assumption relies on the fact that, as we observed in Sect. 5.1, the market becomes more liquid as we get closer to the delivery time and it is less costly to trade when the market is liquid.

To simulate demand forecasts, we assume the following dynamics:

$$\begin{aligned} d {\bar{X}}^N_{t}= & {} \sigma _X d{\bar{B}}_t \end{aligned}$$
(19)
$$\begin{aligned} d {\check{X}}^i_{t}= & {} {{\check{\sigma }}}_X dB^i_{t}, \qquad i \in \{1, \dots , N\} \end{aligned}$$
(20)

where \(\sigma _X\) and \({{\check{\sigma }}}_X\) are constants and \(({\bar{B}}_t)_{t \in [0,T]}\), \((B^i_{t})_{t \in [0,T]}\) are independent Brownian motions, also independent from \((W_t)_{t \in [0,T]}\).

In this illustration, we choose the same parameters for the dynamics of the common and the individual demand forecasts (that is, \(\sigma _X = {{\check{\sigma }}}_X\)). The common volatility is calibrated to wind energy forecasts in Germany over January 2015 during the last quotation hour, by using the classical volatility estimator

$$\begin{aligned} \sigma _X = {\check{\sigma }}_X = \frac{\sqrt{\varDelta t}}{n' - 1}\sum _{i=1}^{n'}Y_i^2 \end{aligned}$$
(21)

with \(\varDelta t\) the time step between two observations, \(Y_i = X_{t_i} - X_{t_{i-1}}\) the increment between two successive observations and \(n'\) the total number of observed increments. As the forecasts are updated every 15 min, there are three increments during the last trading hour, available on each day from the 3rd of January to the 31th of January. Thus, for each delivery hour we dispose of \(n'= 87\) increments points to estimate the volatility. The volatility, as well as the other model parameters are specified in Table 1.

Table 1 Parameters of the model

Price trajectories. In Fig. 7, we plot a simulated trajectory of the fundamental price S starting 6 h before the delivery time (corresponding to \(t=0\)), up to the time T of delivery, together with the market price P associated with the different settings studied in this paper: the N-player Nash equilibrium with \(N=100\) players, the mean field and the \(\epsilon \)-Nash equilibrium. Graphs were all simulated with the same demand forecasts, initial values, volatilities and parameters as specified in Table 1.

Fig. 7
figure 7

Model price trajectories (left) associated to a given common demand forecast trajectory (right) in different settings

In all settings, the model reflects the price impact of the positions taken by the agents. This price impact is influenced by the market price and the demand forecasts. If agents anticipate to have overestimated the demand (negative values of the demand process), there is an excess of supply in the market, thus the price impact is negative and the market price decreases. On the contrary, if they anticipate to have underestimated the demand (positive values of the demand forecast process), there is a lack of supply and the market price increases.

In Fig. 7, the parameters are as specified in Table 1, with \(b=0\). To emphasize the impact of crowd behavior on the cost of trading and the strategy, we display in Fig. 8 the trajectory of the mean field at the equilibrium for different values of the parameter b. This is sufficient to capture the effect of a possible synchronization between agents since, from the discussion in Sect. 3.1, only the common part of the strategy is impacted by the effective cost \(\alpha (1+b/2)\).

Fig. 8
figure 8

Mean-field trajectories and demand forecasts as function of the impact of the crowd on the cost of trading

As we saw in Sect. 3.1, higher crowd trading parameter b leads to increased trading costs and therefore reduced volatility of the aggregate strategy, which therefore follows the forecast updates less closely.

Volatility and correlation In this paragraph we compare the price volatility and the correlation between price and renewable infeed forecasts in our model with the empirical ones. We have already seen through theoretical analysis in Sect. 4.2 that our model reproduces the observed features of the volatility; the goal of this paragraph is to confirm this using simulated prices. We once again highlight the fact that the market impact can induce an increase in the price variations but no changes in the quadratic variation since the price impact, though it is stochastic, has a finite quadratic variation. However, the volatility estimated from discrete price observations, which is the only quantity relevant in practice, does increase in our model, as we shall see below.

We focus on hourly products and on several different delivery hours: 2 AM, 8 AM, 12 PM and 6 PM to include both peak (high electricity demand) and off-peak (low electricity demand) times. The volatility of the fundamental price S is assumed to be constant, (\(\sigma _S = 10\) €/MWh h\(^{1/2}\)) to ensure that the observed volatility changes are only due to the stochastic drift of the market price, i.e., the aggregate trading rates of the agents. The volatility of the production forecasts for the different delivery hours has been calibrated using the estimator defined in (21) and is shown in Table 2.

Table 2 Calibrated volatility of the production forecast for different delivery hours

During peak hours, both market activity and liquidity are higher. To account for this phenomenon in our model, we chose different levels of the liquidity coefficients \(\alpha \) and \(\beta \) defined in (18) and presented in Table 3.

Table 3 Liquidity coefficients used for different delivery hours

Since calibrating the model to market data is not the purpose of this study, we chose plausible values for these coefficients in an ad hoc manner with lower trading costs corresponding to delivery hours for which the market is more liquid. All other model parameters are specified in Table 1.

Fig. 9
figure 9

Simulated model volatility for different delivery hours

Figure 9 shows the estimated volatility of the simulated model price P in the Nash N-player game setting with \(N=100\), averaged over 1000 simulations. The volatility was computed using the estimator (16), with the same window width and time step as in the empirical analysis. From this graph we can see that the model is able to reproduce the increasing shape of the empirical market price volatility at the approach of the delivery time, and that it captures the different levels of volatility corresponding to the different delivery hours.

Correlation between price and renewable infeed An important stylized feature of intraday market prices, observed empirically in [27] is the correlation between the price and the renewable production forecasts. Figure 10 plots the correlation between 15-min increments of the simulated market price and the 15-min increments of the simulated renewable production forecasts as function of time. For each time step, the correlation \(\rho _t = \text {corr}(\varDelta Y_t, \varDelta P_t)\) is computed by Monte Carlo using the following estimator:

$$\begin{aligned} {\hat{\rho }}_{t} = \frac{\sum _{k =1}^{N_{sim}} \big (\varDelta Y^k_t - \overline{\varDelta Y}_t\big )\big (\varDelta P^k_t - \overline{\varDelta P}_t\big )}{\sqrt{\sum _{k = 1}^{N_{sim}} \big (\varDelta Y^k_t - \overline{\varDelta Y}_t\big )^2\sum _{k = 1}^{N_{sim}}\big (\varDelta P^k_t - \overline{\varDelta P}_t\big )^2}}, \end{aligned}$$

with \(N_{sim}\) stands for number of simulations (we considered \(N_{sim} = 50{,}000\)), \(\varDelta Y^k_t =-(\overline{X}^{N,k}_{t+dt}-\overline{X}^{N,k}_{t})\), \(\varDelta P^k_t = P^{N,k}_{t+dt}-P^{N,k}_{t}\) and \(N = 100\). Notice that we use the minus sign in front of the forecast increment to plot the correlation of production forecasts, whereas \({\overline{X}}\) stands for the demand forecast.

Fig. 10
figure 10

Correlation between the simulated market price increments and the renewable production forecast increments in the model during the last 6 h of trading

Fig. 11
figure 11

Aggregate position in different settings with \(N=5\) (left) and \(N=100\) (right) agents

We first note that the correlation is negative: an expected increase of the renewable production is correlated to a decrease in the market price and an expected lack of renewable production is correlated to an increase in the price. As we get closer to the delivery date, the agents trade more actively as new forecast information becomes available, and the market price becomes more strongly dependent on the forecast updates. The model outputs qualitatively match the results observed empirically. However, the strength of the correlation seems to be greater in the model than in reality. This can be explained by the fact that the model does not take into account other renewable means of production such as the solar energy. The slight increase of the correlation for longer times to delivery (the right-hand side of the graph) may be explained by the fact that the correlation is computed as the ratio of the covariance to the square root of the product of variances. While both quantities decrease for longer times to delivery, the denominator may decrease faster, explaining the slight increase in the correlation values.

Convergence and approximations In Fig. 11 we plot the mean field position, the aggregate N-player Nash equilibrium position and the aggregate position for the \(\epsilon \)-Nash equilibrium (respectively given by Theorem 1, Theorem 2 and Proposition 2) for a model with \(N=5\) players and \(N=100\) players. The trajectories were computed with the same simulated fundamental price, common production forecast and parameters as the Fig. 7 above, over the 6 h preceding the delivery time. The left graph (\(N=5\)) shows a big difference between the Nash equilibrium and \(\epsilon \)-Nash approximation on one hand, and the mean field on the other hand. This is explained by the individual production forecast taken into account in the Nash and \(\epsilon \)-Nash equilibria. When we consider a larger number of players, \(N=100\), the three position trajectories are much closer to each other. This confirms the asymptotic convergence to the mean field discussed in Sect. 3.3 for the N-player Nash equilibrium and \(\epsilon \)-Nash equilibrium.