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.

July 20, 2026  |  20 min read

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 11Mexico vs South AfricaA2-0MXN,ZAR
Jun 11South Korea vs CzechiaA2-1KRW,CZK
Jun 12Canada vs Bosnia & HerzegovinaB1-1CAD,BAM
Jun 12USA vs ParaguayD4-1USD,PYG
Jun 13Haiti vs ScotlandC0-1HTG,GBP
Jun 13Australia vs TürkiyeD2-0AUD,TRY
Jun 13Brazil vs MoroccoC1-1BRL,MAD
Jun 13Qatar vs SwitzerlandB1-1QAR,CHF
Jun 14Ivory Coast vs EcuadorE1-0XOF,USD
Jun 14Germany vs CuraçaoE7-1EUR,ANG
Jun 14Netherlands vs JapanF2-2EUR,JPY
Jun 14Sweden vs TunisiaF5-1SEK,TND
Jun 15Saudi Arabia vs UruguayH1-1SAR,UYU
Jun 15Spain vs Cape VerdeH0-0EUR,CVE
Jun 15Iran vs New ZealandG2-2IRR,NZD
Jun 15Belgium vs EgyptG1-1EUR,EGP
Jun 16France vs SenegalI3-1EUR,XOF
Jun 16Iraq vs NorwayI1-4IQD,NOK
Jun 16Argentina vs AlgeriaJ3-0ARS,DZD
Jun 16Austria vs JordanJ3-1EUR,JOD
Jun 17Ghana vs PanamaL1-0GHS,PAB
Jun 17England vs CroatiaL4-2GBP,HRK
Jun 17Portugal vs DR CongoK1-1EUR,CDF
Jun 17Uzbekistan vs ColombiaK1-3UZS,COP
Jun 18Czechia vs South AfricaA1-1CZK,ZAR
Jun 18Switzerland vs Bosnia & HerzegovinaB4-1CHF,BAM
Jun 18Canada vs QatarB6-0CAD,QAR
Jun 18Mexico vs South KoreaA1-0MXN,KRW
Jun 19Brazil vs HaitiC3-0BRL,HTG
Jun 19Scotland vs MoroccoC0-1GBP,MAD
Jun 19Türkiye vs ParaguayD0-1TRY,PYG
Jun 19USA vs AustraliaD2-0USD,AUD
Jun 20Germany vs Ivory CoastE2-1EUR,XOF
Jun 20Ecuador vs CuraçaoE0-0USD,ANG
Jun 20Netherlands vs SwedenF5-1EUR,SEK
Jun 20Tunisia vs JapanF0-4TND,JPY
Jun 21Uruguay vs Cape VerdeH2-2UYU,CVE
Jun 21Spain vs Saudi ArabiaH4-0EUR,SAR
Jun 21Belgium vs IranG0-0EUR,IRR
Jun 21New Zealand vs EgyptG1-3NZD,EGP
Jun 22Norway vs SenegalI3-2NOK,XOF
Jun 22France vs IraqI3-0EUR,IQD
Jun 22Argentina vs AustriaJ2-0ARS,EUR
Jun 22Jordan vs AlgeriaJ1-2JOD,DZD
Jun 23England vs GhanaL0-0GBP,GHS
Jun 23Panama vs CroatiaL0-1PAB,HRK
Jun 23Portugal vs UzbekistanK5-0EUR,UZS
Jun 23Colombia vs DR CongoK1-0COP,CDF
Jun 24Scotland vs BrazilC0-3GBP,BRL
Jun 24Morocco vs HaitiC4-2MAD,HTG
Jun 24Switzerland vs CanadaB2-1CHF,CAD
Jun 24Bosnia vs QatarB3-1BAM,QAR
Jun 24Czechia vs MexicoA0-3CZK,MXN
Jun 24South Africa vs South KoreaA1-0ZAR,KRW
Jun 25Curaçao vs Ivory CoastE0-2ANG,XOF
Jun 25Ecuador vs GermanyE2-1USD,EUR
Jun 25Japan vs SwedenF1-1JPY,SEK
Jun 25Tunisia vs NetherlandsF1-3TND,EUR
Jun 25Türkiye vs USAD3-2TRY,USD
Jun 25Paraguay vs AustraliaD0-0PYG,AUD
Jun 26Norway vs FranceI1-4NOK,EUR
Jun 26Senegal vs IraqI5-0XOF,IQD
Jun 26Egypt vs IranG1-1EGP,IRR
Jun 26New Zealand vs BelgiumG1-5NZD,EUR
Jun 26Cape Verde vs Saudi ArabiaH0-0CVE,SAR
Jun 26Uruguay vs SpainH0-1UYU,EUR
Jun 27Croatia vs GhanaL2-1HRK,GHS
Jun 27Panama vs EnglandL0-2PAB,GBP
Jun 27Colombia vs PortugalK0-0COP,EUR
Jun 27DR Congo vs UzbekistanK3-1CDF,UZS
Jun 27Algeria vs AustriaJ3-3DZD,EUR
Jun 27Jordan vs ArgentinaJ1-3JOD,ARS

Knockout Stage — June 28–July 19

Date Round Match Result Volatility
Jun 28R32South Africa vs Canada0-1Low
Jun 29R32Germany vs Paraguay1-1 (3-4p)Medium
Jun 29R32Netherlands vs Morocco1-1 (2-3p)Medium
Jun 29R32Brazil vs Japan2-1High (BRL)
Jun 30R32France vs Sweden3-0Medium
Jun 30R32Ivory Coast vs Norway1-2Low
Jun 30R32Mexico vs Ecuador2-0High (MXN)
Jul 1R32England vs DR Congo2-1High (GBP)
Jul 1R32USA vs Bosnia & Herzegovina2-0Medium
Jul 1R32Belgium vs Senegal3-2Low
Jul 2R32Portugal vs Croatia2-1Medium
Jul 2R32Spain vs Austria3-0Medium
Jul 2R32Switzerland vs Algeria2-0Low
Jul 3R32Argentina vs Cape Verde3-2High (ARS)
Jul 3R32Colombia vs Ghana1-0Low
Jul 3R32Australia vs Egypt1-1 (2-4p)Medium
Jul 4R16Paraguay vs France0-1Low
Jul 4R16Canada vs Morocco0-3Medium
Jul 5R16Brazil vs Norway1-2High (BRL,NOK)
Jul 5R16Mexico vs England2-3Very High (GBP,MXN)
Jul 6R16Portugal vs Spain0-1High (EUR)
Jul 6R16USA vs Belgium1-4Medium
Jul 7R16Argentina vs Egypt3-2High (ARS)
Jul 7R16Switzerland vs Colombia0-0 (4-3p)Low
Jul 9QFFrance vs Morocco2-0Medium
Jul 10QFSpain vs Belgium2-1High (EUR)
Jul 11QFNorway vs England1-2Very High (GBP,NOK)
Jul 12QFArgentina vs Switzerland3-1High (ARS,CHF)
Jul 14SFFrance vs Spain0-2Very High (EUR)
Jul 15SFEngland vs Argentina1-2Very High (GBP,ARS)
Jul 183rdFrance vs England4-6Extreme (GBP,EUR)
Jul 19FINALSpain vs Argentina1-0 AETExtreme (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.

WorldCupOHLC.mq5
//+------------------------------------------------------------------+ //| WorldCupOHLC.mq5 - Match-day OHLC retriever | //| Compares OHLC for any symbol on World Cup match dates | //| Output: CSV file in Files folder with date,open,high,low,close | //+------------------------------------------------------------------+ #property strict #property description "Fetches OHLC data for World Cup 2026 match dates" #property description "Outputs CSV to Files\WorldCupOHLC\ for Excel analysis" input string InpSymbol="EURUSDm"; // Symbol (use Exness m suffix) input int InpMatchDay=20260611; // Match date (YYYYMMDD, e.g. 20260611) input int InpHourStart=0; // Hour to start (0 = midnight server) input int InpHoursSpan=24; // Hours to cover (24 = full day) input string InpFileName="WC2026"; // CSV filename prefix // Match schedule reference (date in YYYYMMDD format, match description) string MatchDates[]={ "20260611","Group A: Mexico vs South Africa", "20260611","Group A: South Korea vs Czechia", "20260612","Group B: Canada vs Bosnia", "20260612","Group D: USA vs Paraguay", "20260613","Group C: Haiti vs Scotland", "20260613","Group D: Australia vs Turkiye", "20260613","Group C: Brazil vs Morocco", "20260613","Group B: Qatar vs Switzerland", "20260614","Group E: Ivory Coast vs Ecuador", "20260614","Group E: Germany vs Curacao", "20260614","Group F: Netherlands vs Japan", "20260614","Group F: Sweden vs Tunisia", "20260615","Group H: Saudi Arabia vs Uruguay", "20260615","Group H: Spain vs Cape Verde", "20260615","Group G: Iran vs New Zealand", "20260615","Group G: Belgium vs Egypt", "20260616","Group I: France vs Senegal", "20260616","Group I: Iraq vs Norway", "20260616","Group J: Argentina vs Algeria", "20260616","Group J: Austria vs Jordan", "20260617","Group L: Ghana vs Panama", "20260617","Group L: England vs Croatia", "20260617","Group K: Portugal vs DR Congo", "20260617","Group K: Uzbekistan vs Colombia", "20260618","Group A: Czechia vs South Africa", "20260618","Group B: Switzerland vs Bosnia", "20260618","Group B: Canada vs Qatar", "20260618","Group A: Mexico vs South Korea", "20260619","Group C: Brazil vs Haiti", "20260619","Group C: Scotland vs Morocco", "20260619","Group D: Turkiye vs Paraguay", "20260619","Group D: USA vs Australia", "20260620","Group E: Germany vs Ivory Coast", "20260620","Group E: Ecuador vs Curacao", "20260620","Group F: Netherlands vs Sweden", "20260620","Group F: Tunisia vs Japan", "20260621","Group H: Uruguay vs Cape Verde", "20260621","Group H: Spain vs Saudi Arabia", "20260621","Group G: Belgium vs Iran", "20260621","Group G: New Zealand vs Egypt", "20260622","Group I: Norway vs Senegal", "20260622","Group I: France vs Iraq", "20260622","Group J: Argentina vs Austria", "20260622","Group J: Jordan vs Algeria", "20260623","Group L: England vs Ghana", "20260623","Group L: Panama vs Croatia", "20260623","Group K: Portugal vs Uzbekistan", "20260623","Group K: Colombia vs DR Congo", "20260624","Group C: Scotland vs Brazil", "20260624","Group C: Morocco vs Haiti", "20260624","Group B: Switzerland vs Canada", "20260624","Group B: Bosnia vs Qatar", "20260624","Group A: Czechia vs Mexico", "20260624","Group A: South Africa vs South Korea", "20260625","Group E: Curacao vs Ivory Coast", "20260625","Group E: Ecuador vs Germany", "20260625","Group F: Japan vs Sweden", "20260625","Group F: Tunisia vs Netherlands", "20260625","Group D: Turkiye vs USA", "20260625","Group D: Paraguay vs Australia", "20260626","Group I: Norway vs France", "20260626","Group I: Senegal vs Iraq", "20260626","Group G: Egypt vs Iran", "20260626","Group G: New Zealand vs Belgium", "20260626","Group H: Cape Verde vs Saudi Arabia", "20260626","Group H: Uruguay vs Spain", "20260627","Group L: Croatia vs Ghana", "20260627","Group L: Panama vs England", "20260627","Group K: Colombia vs Portugal", "20260627","Group K: DR Congo vs Uzbekistan", "20260627","Group J: Algeria vs Austria", "20260627","Group J: Jordan vs Argentina", "20260628","R32: South Africa vs Canada", "20260629","R32: Germany vs Paraguay", "20260629","R32: Netherlands vs Morocco", "20260629","R32: Brazil vs Japan", "20260630","R32: France vs Sweden", "20260630","R32: Ivory Coast vs Norway", "20260630","R32: Mexico vs Ecuador", "20260701","R32: England vs DR Congo", "20260701","R32: USA vs Bosnia", "20260701","R32: Belgium vs Senegal", "20260702","R32: Portugal vs Croatia", "20260702","R32: Spain vs Austria", "20260702","R32: Switzerland vs Algeria", "20260703","R32: Argentina vs Cape Verde", "20260703","R32: Colombia vs Ghana", "20260703","R32: Australia vs Egypt", "20260704","R16: Paraguay vs France", "20260704","R16: Canada vs Morocco", "20260705","R16: Brazil vs Norway", "20260705","R16: Mexico vs England", "20260706","R16: Portugal vs Spain", "20260706","R16: USA vs Belgium", "20260707","R16: Argentina vs Egypt", "20260707","R16: Switzerland vs Colombia", "20260709","QF: France vs Morocco", "20260710","QF: Spain vs Belgium", "20260711","QF: Norway vs England", "20260712","QF: Argentina vs Switzerland", "20260714","SF: France vs Spain", "20260715","SF: England vs Argentina", "20260718","3rd Place: France vs England", "20260719","FINAL: Spain vs Argentina" }; //+------------------------------------------------------------------+ int OnStart() { string path = "WorldCupOHLC\\"; string filename = path + InpFileName + "_" + IntegerToString(InpMatchDay) + ".csv"; // Ensure directory exists FileOpen(path + "test.tmp",FILE_WRITE|FILE_COMMON); FileDelete(path + "test.tmp",FILE_COMMON); int h = FileOpen(filename,FILE_WRITE|FILE_CSV|FILE_COMMON,","); if(h==INVALID_HANDLE) { Print("Failed to create file: ",filename); return(-1); } // Find match description string desc = ""; for(int i=0;i<ArraySize(MatchDates);i++) { if(MatchDates[i]==IntegerToString(InpMatchDay)) { desc = MatchDates[i+1]; break; } } // Header FileWrite(h,"Symbol","MatchDate","MatchDesc","HourStart","HourSpan", "Open","High","Low","Close","Range","Body","Volume"); // Fetch OHLC MqlRates rates[]; datetime from=StringToTime(IntegerToString(InpMatchDay)); datetime to=from+InpHoursSpan*3600; int count=CopyRates(InpSymbol,PERIOD_H1,from,to,rates); if(count>0) { double o=rates[0].open; double hi=rates[0].high; double lo=rates[0].low; double cl=rates[count-1].close; for(int i=0;i<count;i++) { if(rates[i].high>hi) hi=rates[i].high; if(rates[i].low<lo) lo=rates[i].low; } FileWrite(h,InpSymbol,IntegerToString(InpMatchDay),desc, InpHourStart,InpHoursSpan, DoubleToString(o,(int)SymbolInfoInteger(InpSymbol,SYMBOL_DIGITS)), DoubleToString(hi,(int)SymbolInfoInteger(InpSymbol,SYMBOL_DIGITS)), DoubleToString(lo,(int)SymbolInfoInteger(InpSymbol,SYMBOL_DIGITS)), DoubleToString(cl,(int)SymbolInfoInteger(InpSymbol,SYMBOL_DIGITS)), DoubleToString((hi-lo)/SymbolInfoDouble(InpSymbol,SYMBOL_POINT),0), DoubleToString((cl-o)/SymbolInfoDouble(InpSymbol,SYMBOL_POINT),0), (int)rates[count-1].tick_volume); } else { FileWrite(h,InpSymbol,IntegerToString(InpMatchDay),desc, InpHourStart,InpHoursSpan,"NO DATA"); } FileClose(h); Print("Saved: ",filename); return(0); } //+------------------------------------------------------------------+

How to Use

  1. Copy the code into MT5, save as WorldCupOHLC.mq5
  2. Compile (F7)
  3. Drag onto any chart
  4. Set InpMatchDay to the match date (YYYYMMDD format, e.g. 20260719 for the final)
  5. Set InpSymbol to the symbol you want to analyze (EURUSDm, XAUUSDm, etc.)
  6. 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