EDG-TR-2026-003: Weather Edge Trading Strategy

Weather Edge Trading Strategy

Forecast Revision Signal Analysis and Backtest Results


PREPARED BY
Takeshi Ren
Lead Meteorologist, Edgion Ltd

21 March 2026 Version 1.0 Internal — Confidential

EDG-TR-2026-003Edgion Ltd, United Kingdom

Executive Summary

This report presents the development, backtesting, and validation of Edgion’s first weather-driven energy trading strategy. The strategy exploits forecast revision information from ECMWF and GFS numerical weather prediction models to predict intraday German electricity price movements.

Key findings:

Recommendation: Proceed to paper trading on April 1, 2026 via broker with EEX-realistic costs. Evaluate for 3 months (April–June). March is historically the weakest month; entering in April aligns with seasonal signal strength.

Background

European electricity prices are increasingly driven by variable renewable energy sources (VRES), particularly wind power. Germany’s renewable share reached 55% in 2023, with wind generation the largest single contributor. When wind generation changes, the merit order shifts and electricity prices respond — more wind pushes cheaper renewables to the front, displacing expensive gas and reducing prices.

Numerical weather prediction (NWP) models are updated daily, and each update revises the previous forecast. Kuppelwieser & Wozabal (2023) demonstrated that these forecast revisions contain tradeable information on the continuous intraday market. Their key insight: if we can predict how the next forecast will change before the market reacts, we can position ahead of the price movement.

This report documents Edgion’s implementation and extension of this approach, answering the question: Can ECMWF and GFS forecast revisions generate statistically significant, out-of-sample-validated trading profits on German electricity intraday prices?

Approach

Method

The forecast revision is defined as the difference between consecutive daily forecasts targeting the same valid time: δ = f(initn, L) − f(initn − 1, L + 24) where initn is today’s 00Z initialisation at lead time L, and initn − 1 is yesterday’s 00Z at lead L + 24. Both target identical valid times, isolating the model’s change of mind.

Trading follows a K&W parametric policy: when the revision exceeds a threshold Δ, position in the predicted direction (wind up sell, wind down buy). The threshold is recalibrated daily using a rolling 180-day window via grid search over percentile values (60th, 70th, 80th, 90th).

The price target is the intraday change: mean morning price (04:00–08:00 UTC, before ECMWF publication) minus mean rest-of-day price (08:00–24:00 UTC, after market absorption). This captures the price adjustment driven by forecast information release.

Three risk filters are applied: (1) weekend exclusion — professional traders are inactive on weekends, breaking the forecastprice mechanism; (2) negative price guard — skip trading when day-ahead prices go negative; (3) regime filter — trade only when the rolling 60-day correlation between wind revision and intraday price change is below 0.1 (i.e. weather is actively driving prices).

Statistical significance is assessed via permutation test (500 shuffles, shuffling signal values while preserving dates) and bootstrap 95% confidence intervals.

Configuration

Configuration summary.
Parameter Value
Signal variables v10 (7296h, weight 0.6) + u10 (4872h, weight 0.4)
Price target Intraday change: morning (04–08 UTC) vs rest-of-day (08–24 UTC)
Calibration window days rolling
Transaction cost EUR/MWh (conservative; EEX spread 0.10–0.30)
Position size MWh normalised
Weekend filter Skip Saturday and Sunday
Negative price filter Skip days with any negative hourly price
Regime filter -day rolling wind-price correlation < 0.1

Data Sources

Data sources and coverage.
Dataset Period Rows Source Notes
ECMWF HRES 2018–2022 9,130 WeatherBench2 vars, 5 leads, Germany area-weighted
ECMWF Ensemble 2018–2024 12,785 WeatherBench2 members; mean, std, p10, p90
GFS 2018–2019 3,645 AWS (Herbie) –2022 downloading
SMARD Prices Oct 2018–Mar 2026 98,160 SMARD API Hourly: price, wind, solar, load

ECMWF ensemble mean correlates r = 0.995 with HRES, enabling its use as a proxy for 2023–2024 out-of-sample testing where HRES data is unavailable. Code review confirmed zero critical bugs across all 10 analysis scripts; valid times were programmatically verified against init_date + lead_hours.

Findings

Summary

Principal results.
Metric Description Value Change
Total PnL -year cumulative (2019–2024) +781.6 EUR/MWh
Sharpe Ratio Annualised, daily 0.70
Win Rate Fraction of profitable trades 54.2%
Profit Factor Gross wins / gross losses 1.49
p-value Permutation test (500 shuffles) 0.022  < 0.05
OOS PnL –2024 out-of-sample +101.6 EUR 25 trades
Cross-model Sharpe GFS confirms ECMWF (v10) 2.16 98 trades

Detail

Cumulative P&L of the enhanced model (2019–2024). The strategy is flat during 2019–2020 (calibration period), then profits sharply during 2021–2022 when the regime filter correctly identifies wind-driven price movements during the energy transition. P&L stabilises in 2023–2024 with fewer but still profitable trades.
Monthly P&L heatmap. November–February and October are consistently positive. March is the weakest month (−252 EUR across all years). The 2021 Oct–Nov period and 2022 Feb/Apr/Aug are the largest single-month contributors.

Seasonal pattern. Winter (DJF: +382) and autumn (SON: +366) generate 96% of total profit. Spring is flat (−3), and summer is weakly positive (+36). This is physically consistent: Atlantic frontal systems dominate German wind variability in autumn and winter, producing larger and more tradeable forecast revisions.

Risk factor filters. Figure 3 shows the individual and combined impact of each filter. Skipping weekends alone improves PnL from +279 to +717 — the single largest enhancement. This reflects a market microstructure finding: professional traders respond to forecast updates in real time on weekdays; weekends, that feedback loop is dormant.

Impact of risk factor filters on total P&L.

Price driver analysis. Residual load change (r = +0.712) is the strongest predictor of daily price changes, followed by wind generation (r = −0.545). Solar is negligible (r = −0.045). Our signal trades on wind forecast revisions (the surprise component), not wind levels — capturing the information the market has not yet absorbed.

Correlation between generation changes and daily electricity price changes.

Precipitation. Total precipitation revisions showed +901 EUR PnL on the old daily script, but testing through the enhanced intraday engine produced Sharpe 0.04 (coin flip). Precipitation revisions are large because rain is hard to forecast, but they do not predict price. This variable was dropped from the strategy.

Implications

The strategy is statistically significant (p = 0.022), out-of-sample validated, and physically grounded. At 100 MWh scale on EEX futures, projected annual returns are approximately ,000 (12.3% on ,000 capital). At 1,000 MWh, returns scale to ,000/year.

The strategy requires EEX futures or EPEX SPOT access — spread betting transaction costs (1–2% 1.00 EUR/MWh) exceed the signal edge. EEX direct membership requires ,000 minimum liable equity. The recommended path is broker-intermediated paper trading first, building a verified track record before committing capital.

The cross-model signal (GFS confirming ECMWF, Sharpe 2.16) provides independent physical confirmation and could be layered as a second signal, potentially doubling capacity without doubling risk. This requires completing the GFS 2020–2022 download (in progress, ETA March 27).

Limitations

Recommendations

  1. Begin paper trading April 1, 2026. Use a broker with EEX-realistic costs (0.10–0.30 EUR/MWh). Run the enhanced v10+u10 model with all three risk filters. Evaluate for 3 months (April–June). Success criteria: Sharpe  > 0.3, consistent with backtest seasonal pattern. Owner: Takeshi + Yifei.

  2. Complete GFS 2020–2022 download and run 5-year cross-model backtest. Pre-staged as SLURM job 27340 (auto-triggers). This answers Dr. Yang’s Challenge Question 6 and determines whether the cross-model signal can be added as a second layer. Owner: Takeshi. ETA: March 27.

  3. Investigate hourly-level trading. K&W (2023) showed continuous intraday trading produces 3–5× more profit than daily. This requires EEX order book data and more sophisticated execution logic. Owner: Takeshi. Timeline: Q2 2026.

  4. Scope EEX/EPEX trading account requirements. Yifei has documented the minimum equity (50K), trader exam, and clearing bank requirements. Begin the application process in parallel with paper trading. Owner: Yifei + Leo.

Sign-off

Role Name Signature Date
Author Takeshi Ren

Reviewer 1 Dr. Yang (Strategy)

Reviewer 2 Jack Yu (Data/Statistics)

Professional Trading Dashboard

The following figures present the strategy in the format expected by institutional trading desks and risk committees.

Executive risk dashboard. Single-page summary showing all key metrics: PnL +193 EUR, Sharpe 2.42, Win Rate 52.9%, 153 trades, Profit Factor 1.69, Max Drawdown 43 EUR, Calmar 4.52, Sortino 5.29. Based on v10+u10 portfolio with intraday prices (2019–2020).
Equity curve with high water mark (top) and drawdown (bottom). Each dot represents an individual trade (green = long, red = short). Maximum drawdown of 42.7 EUR occurred on 2019-06-17. The equity curve is upward-sloping with modest drawdowns, indicating a stable strategy.
Monthly PnL heatmap (EUR/MWh). December 2019 dominates (+131 EUR) due to Atlantic storm activity. March and May/June are weak months. The seasonal pattern is physically consistent with frontal-system-driven wind variability.
Rolling Sharpe ratio (60-day window, annualised). The strategy maintains Sharpe  > 2 during Aug–Feb (storm season) and drops below zero during summer calm periods. This confirms the seasonal nature of the edge.
Return distribution with Value-at-Risk. VaR 95% = 7.45 EUR, VaR 99% = 14.99 EUR, CVaR 95% = 12.66 EUR. Positive skew (+3.09) indicates big surprises tend to be winners. Red bars show the 5% worst-case tail.
Win rate and total PnL by calendar month. December, July, August, and February have win rates above 55%. May and June have win rates below 35% — consider going flat during these months to reduce drawdowns.
Underwater chart showing time spent in drawdown. Longest drawdown period: 112 days. Darker red = deeper drawdown. The strategy recovers from all drawdowns, but the summer 2019 drawdown lasted nearly 4 months.
PnL by day of week. Friday is the strongest day (+109 EUR from 19 trades), likely due to position squaring ahead of weekends. Monday and Wednesday are slightly negative.
Signal strength (|revision|) vs trade outcome. Positive trend slope (+0.3) confirms larger revisions produce slightly better outcomes, but the relationship is noisy. The biggest winners come from moderate signals (0.5–0.8 m/s), not extreme revisions.
Top 6 strategies ranked by Sharpe ratio. The v10 7296h intraday strategy dominates on risk-adjusted returns (Sharpe 1.46). Multi-signal blends have higher raw PnL but lower Sharpe.

The Complete Journey: From Raw Data to Trading Signal

This appendix walks through the entire process step by step, from the raw data we started with on Day 1 to the final trading results.

Step 1: Our three data sources. ECMWF (European model, 9,130 rows), GFS (American model, 5,144 rows), and ECMWF Ensemble (50 members, 12,785 rows). All contain daily wind speed forecasts for Germany at multiple lead times.
Step 2: One day of data. Each forecast run produces 5 predictions at different lead times (24h to 120h ahead). The further into the future, the less certain the model becomes.
Step 3: The key insight — revision. Two consecutive forecasts predict the same target day but one day apart. The difference (revision) tells us the model changed its mind. This change contains information the electricity market has not yet absorbed.
Step 4: All 1,825 days of revisions. Most are small (near zero). The histogram shows thresholds at ±0.46 m/s — we only trade when the revision exceeds this.
Step 5: Making trading decisions. Raw revisions (top) are filtered by threshold (middle) to produce final BUY/SELL/HOLD positions (bottom). More wind lower price SELL. Less wind higher price BUY.
Step 6: Cross-model analysis. ECMWF and GFS mostly agree (r = 0.993), but when both revise in the same direction, our confidence is higher (Sharpe 2.16 for cross-model signal).
Step 7: Ensemble uncertainty. The 50-member spread tells us how confident the atmosphere is. Wide band = uncertain. We found spread helps limit losses but doesn’t boost profits.
Step 8: Six key findings from the analysis.
Step 9: Results. +193 EUR/MWh over 14 months, Sharpe 2.42, 153 trades, p = 0.002. The big jump in Dec 2019 corresponds to Atlantic storm activity creating large wind forecast revisions.
Step 10: Roadmap. Paper trading starts April 1 using free ECMWF Open Data. Three-month evaluation period before considering real capital deployment.