Deep reinforcement learning for grid-scale battery arbitrage
Simulated battery: 200 MW / 400 MWh, 90% round-trip efficiency, $10/MWh degradation cost. Price taker, arbitrage only, no FCAS.
Agent: dueling double DQN with noisy-network exploration and an n-step replay buffer.
Training: 9 September 2025 to 31 August 2026.
Test: 1 September to 6 October 2026.
Results
AgentPerfect foresightPriceState of charge
The price axis is clipped at the 99th percentile. Times are NEM time (AEST).
| Region | Net profit | Perfect foresight | % of perfect | Cycles |
|---|---|---|---|---|
| NSW1 | $548,995 | $1,081,596 | 51% | 34.9 |
| QLD1 | $810,220 | $1,262,219 | 64% | 35.8 |
| SA1 | $756,104 | $1,809,646 | 42% | 36.7 |
| TAS1 | $425,448 | $1,284,194 | 33% | 47.4 |
| VIC1 | $699,526 | $1,297,697 | 54% | 31.4 |
The agent captured 33% (TAS1) to 64% (QLD1) of perfect-foresight profit, cycling about once a day.
Method
Each interval the agent picks charge, hold or discharge at full power, from price, demand and interconnector lags, AEMO’s 5-minute (P5) and pre-dispatch reports, and its state of charge. The benchmark is a linear program over the whole period. Data: AEMO’s NEMweb.