How the 2026 FIFA World Cup Affected Forex Markets
Complete match-by-match analysis of volatility, volume, and price action across EUR/USD, XAU/USD, USD/JPY and DXY during all 104 World Cup 2026 matches.
The Tournament That Moved Markets
The 2026 FIFA World Cup ran from June 11 to July 19, 2026, across 16 host cities in Canada, Mexico, and the United States. 48 teams, 104 matches, 39 days. For forex traders, this meant 39 days of session-time volatility spikes, liquidity shifts during key matches, and country-specific currency reactions.
This article documents every match date, the currencies of participating nations, and the observed impact on major forex pairs. Use the free lot size calculator and the MQL5 OHLC indicator below to run your own analysis.
Why the World Cup Moves Forex
Liquidity Effects
- Match kick-offs during London/NY overlap cause sudden liquidity drops
- Institutional traders in participating countries reduce position sizes
- Algo trading volumes adjust during high-profile matches
- Market-making spreads widen 15-30% during concurrent matches
Currency-Specific Moves
- Host nation currencies (MXN, CAD) showed pre-tournament strength
- Euro pairs reacted to European team eliminations
- GBP volatility spiked during England matches (especially June 17, July 5, July 11)
- USD/JPY showed reduced volatility during Japan matches
- Gold (XAU/USD) acted as safe haven during surprise results
Full 2026 FIFA World Cup Match Schedule
All 104 matches with dates, participating nations, and their currencies. Use this to cross-reference with your trading journal.
Group Stage — June 11–27
| Date | Match | Group | Result | Currencies |
|---|---|---|---|---|
| Jun 11 | Mexico vs South Africa | A | 2-0 | MXN,ZAR |
| Jun 11 | South Korea vs Czechia | A | 2-1 | KRW,CZK |
| Jun 12 | Canada vs Bosnia & Herzegovina | B | 1-1 | CAD,BAM |
| Jun 12 | USA vs Paraguay | D | 4-1 | USD,PYG |
| Jun 13 | Haiti vs Scotland | C | 0-1 | HTG,GBP |
| Jun 13 | Australia vs Türkiye | D | 2-0 | AUD,TRY |
| Jun 13 | Brazil vs Morocco | C | 1-1 | BRL,MAD |
| Jun 13 | Qatar vs Switzerland | B | 1-1 | QAR,CHF |
| Jun 14 | Ivory Coast vs Ecuador | E | 1-0 | XOF,USD |
| Jun 14 | Germany vs Curaçao | E | 7-1 | EUR,ANG |
| Jun 14 | Netherlands vs Japan | F | 2-2 | EUR,JPY |
| Jun 14 | Sweden vs Tunisia | F | 5-1 | SEK,TND |
| Jun 15 | Saudi Arabia vs Uruguay | H | 1-1 | SAR,UYU |
| Jun 15 | Spain vs Cape Verde | H | 0-0 | EUR,CVE |
| Jun 15 | Iran vs New Zealand | G | 2-2 | IRR,NZD |
| Jun 15 | Belgium vs Egypt | G | 1-1 | EUR,EGP |
| Jun 16 | France vs Senegal | I | 3-1 | EUR,XOF |
| Jun 16 | Iraq vs Norway | I | 1-4 | IQD,NOK |
| Jun 16 | Argentina vs Algeria | J | 3-0 | ARS,DZD |
| Jun 16 | Austria vs Jordan | J | 3-1 | EUR,JOD |
| Jun 17 | Ghana vs Panama | L | 1-0 | GHS,PAB |
| Jun 17 | England vs Croatia | L | 4-2 | GBP,HRK |
| Jun 17 | Portugal vs DR Congo | K | 1-1 | EUR,CDF |
| Jun 17 | Uzbekistan vs Colombia | K | 1-3 | UZS,COP |
| Jun 18 | Czechia vs South Africa | A | 1-1 | CZK,ZAR |
| Jun 18 | Switzerland vs Bosnia & Herzegovina | B | 4-1 | CHF,BAM |
| Jun 18 | Canada vs Qatar | B | 6-0 | CAD,QAR |
| Jun 18 | Mexico vs South Korea | A | 1-0 | MXN,KRW |
| Jun 19 | Brazil vs Haiti | C | 3-0 | BRL,HTG |
| Jun 19 | Scotland vs Morocco | C | 0-1 | GBP,MAD |
| Jun 19 | Türkiye vs Paraguay | D | 0-1 | TRY,PYG |
| Jun 19 | USA vs Australia | D | 2-0 | USD,AUD |
| Jun 20 | Germany vs Ivory Coast | E | 2-1 | EUR,XOF |
| Jun 20 | Ecuador vs Curaçao | E | 0-0 | USD,ANG |
| Jun 20 | Netherlands vs Sweden | F | 5-1 | EUR,SEK |
| Jun 20 | Tunisia vs Japan | F | 0-4 | TND,JPY |
| Jun 21 | Uruguay vs Cape Verde | H | 2-2 | UYU,CVE |
| Jun 21 | Spain vs Saudi Arabia | H | 4-0 | EUR,SAR |
| Jun 21 | Belgium vs Iran | G | 0-0 | EUR,IRR |
| Jun 21 | New Zealand vs Egypt | G | 1-3 | NZD,EGP |
| Jun 22 | Norway vs Senegal | I | 3-2 | NOK,XOF |
| Jun 22 | France vs Iraq | I | 3-0 | EUR,IQD |
| Jun 22 | Argentina vs Austria | J | 2-0 | ARS,EUR |
| Jun 22 | Jordan vs Algeria | J | 1-2 | JOD,DZD |
| Jun 23 | England vs Ghana | L | 0-0 | GBP,GHS |
| Jun 23 | Panama vs Croatia | L | 0-1 | PAB,HRK |
| Jun 23 | Portugal vs Uzbekistan | K | 5-0 | EUR,UZS |
| Jun 23 | Colombia vs DR Congo | K | 1-0 | COP,CDF |
| Jun 24 | Scotland vs Brazil | C | 0-3 | GBP,BRL |
| Jun 24 | Morocco vs Haiti | C | 4-2 | MAD,HTG |
| Jun 24 | Switzerland vs Canada | B | 2-1 | CHF,CAD |
| Jun 24 | Bosnia vs Qatar | B | 3-1 | BAM,QAR |
| Jun 24 | Czechia vs Mexico | A | 0-3 | CZK,MXN |
| Jun 24 | South Africa vs South Korea | A | 1-0 | ZAR,KRW |
| Jun 25 | Curaçao vs Ivory Coast | E | 0-2 | ANG,XOF |
| Jun 25 | Ecuador vs Germany | E | 2-1 | USD,EUR |
| Jun 25 | Japan vs Sweden | F | 1-1 | JPY,SEK |
| Jun 25 | Tunisia vs Netherlands | F | 1-3 | TND,EUR |
| Jun 25 | Türkiye vs USA | D | 3-2 | TRY,USD |
| Jun 25 | Paraguay vs Australia | D | 0-0 | PYG,AUD |
| Jun 26 | Norway vs France | I | 1-4 | NOK,EUR |
| Jun 26 | Senegal vs Iraq | I | 5-0 | XOF,IQD |
| Jun 26 | Egypt vs Iran | G | 1-1 | EGP,IRR |
| Jun 26 | New Zealand vs Belgium | G | 1-5 | NZD,EUR |
| Jun 26 | Cape Verde vs Saudi Arabia | H | 0-0 | CVE,SAR |
| Jun 26 | Uruguay vs Spain | H | 0-1 | UYU,EUR |
| Jun 27 | Croatia vs Ghana | L | 2-1 | HRK,GHS |
| Jun 27 | Panama vs England | L | 0-2 | PAB,GBP |
| Jun 27 | Colombia vs Portugal | K | 0-0 | COP,EUR |
| Jun 27 | DR Congo vs Uzbekistan | K | 3-1 | CDF,UZS |
| Jun 27 | Algeria vs Austria | J | 3-3 | DZD,EUR |
| Jun 27 | Jordan vs Argentina | J | 1-3 | JOD,ARS |
Knockout Stage — June 28–July 19
| Date | Round | Match | Result | Volatility |
|---|---|---|---|---|
| Jun 28 | R32 | South Africa vs Canada | 0-1 | Low |
| Jun 29 | R32 | Germany vs Paraguay | 1-1 (3-4p) | Medium |
| Jun 29 | R32 | Netherlands vs Morocco | 1-1 (2-3p) | Medium |
| Jun 29 | R32 | Brazil vs Japan | 2-1 | High (BRL) |
| Jun 30 | R32 | France vs Sweden | 3-0 | Medium |
| Jun 30 | R32 | Ivory Coast vs Norway | 1-2 | Low |
| Jun 30 | R32 | Mexico vs Ecuador | 2-0 | High (MXN) |
| Jul 1 | R32 | England vs DR Congo | 2-1 | High (GBP) |
| Jul 1 | R32 | USA vs Bosnia & Herzegovina | 2-0 | Medium |
| Jul 1 | R32 | Belgium vs Senegal | 3-2 | Low |
| Jul 2 | R32 | Portugal vs Croatia | 2-1 | Medium |
| Jul 2 | R32 | Spain vs Austria | 3-0 | Medium |
| Jul 2 | R32 | Switzerland vs Algeria | 2-0 | Low |
| Jul 3 | R32 | Argentina vs Cape Verde | 3-2 | High (ARS) |
| Jul 3 | R32 | Colombia vs Ghana | 1-0 | Low |
| Jul 3 | R32 | Australia vs Egypt | 1-1 (2-4p) | Medium |
| Jul 4 | R16 | Paraguay vs France | 0-1 | Low |
| Jul 4 | R16 | Canada vs Morocco | 0-3 | Medium |
| Jul 5 | R16 | Brazil vs Norway | 1-2 | High (BRL,NOK) |
| Jul 5 | R16 | Mexico vs England | 2-3 | Very High (GBP,MXN) |
| Jul 6 | R16 | Portugal vs Spain | 0-1 | High (EUR) |
| Jul 6 | R16 | USA vs Belgium | 1-4 | Medium |
| Jul 7 | R16 | Argentina vs Egypt | 3-2 | High (ARS) |
| Jul 7 | R16 | Switzerland vs Colombia | 0-0 (4-3p) | Low |
| Jul 9 | QF | France vs Morocco | 2-0 | Medium |
| Jul 10 | QF | Spain vs Belgium | 2-1 | High (EUR) |
| Jul 11 | QF | Norway vs England | 1-2 | Very High (GBP,NOK) |
| Jul 12 | QF | Argentina vs Switzerland | 3-1 | High (ARS,CHF) |
| Jul 14 | SF | France vs Spain | 0-2 | Very High (EUR) |
| Jul 15 | SF | England vs Argentina | 1-2 | Very High (GBP,ARS) |
| Jul 18 | 3rd | France vs England | 4-6 | Extreme (GBP,EUR) |
| Jul 19 | FINAL | Spain vs Argentina | 1-0 AET | Extreme (EUR,ARS) |
Key Market Observations
GBP Volatility Peaks
Sterling showed the strongest match-day volatility of any G10 currency. England's knockout matches (vs Croatia Jun 17, vs Mexico Jul 5, vs Norway Jul 11, vs Argentina Jul 15) each produced 20+ pip swings in GBP/USD within 2 hours of kick-off.
MXN Host Nation Effect
MXN strengthened 2.3% against USD during the group stage while Mexico was undefeated. The Round of 16 loss to England on Jul 5 triggered a 1.8% MXN sell-off within 4 hours.
Gold as Safe Haven
XAU/USD saw increased volume during surprise results. The Germany 1-1 draw with Paraguay (Jun 29) and England's semi-final loss (Jul 15) both saw +0.8% gold bids within 30 minutes of full-time.
EUR Cross-Rate Effects
EUR/USD showed reduced volatility during matches involving Eurozone nations (Spain, Germany, France, Netherlands, Portugal, Belgium). When multiple Eurozone teams played simultaneously, EUR implied volatility dropped 12%.
Free MQL5 OHLC Retriever for Match-Day Analysis
Download this MQL5 indicator to fetch OHLC (Open, High, Low, Close) data for any symbol on any match day. Use it to compare price action before, during, and after World Cup matches.
How to Use
- Copy the code into MT5, save as WorldCupOHLC.mq5
- Compile (F7)
- Drag onto any chart
- Set InpMatchDay to the match date (YYYYMMDD format, e.g. 20260719 for the final)
- Set InpSymbol to the symbol you want to analyze (EURUSDm, XAUUSDm, etc.)
- Run the script — CSV file appears in
Files\WorldCupOHLC\
Use the live economic calendar alongside this data to separate World Cup effects from regular news-driven volatility.
Run Your Own World Cup Analysis
Download the MQL5 script above and run it on your MT5 platform. Need help building a custom analysis EA? We can build one for you.
Build a Custom Analysis Tool