European stock markets dipped in early trade Wednesday after US stocks plunged in a volatile session on Wall Street. The FTSE 100 is testing 7,300 and the DAX around 13,000. Risk is just a little circumspect after a tough US session amid a batch of troublesome data. The Nasdaq ended the day down 3%, having traded up 1% at one point. The S&P 500 was up 1.2% at the high of the day but closed down 2%. This was a clear rejection of the bear market rally. Futures are back to where they were before last Friday’s rally. The US dollar is still on the front foot after yesterday’s rally, whilst cryptocurrencies are weaker with Bitcoin under $20k. 

Tech stocks, especially the more speculative names, came under pressure as US consumer one year ahead inflation expectations rose to a record high 8%, from a revised 7.5% in March. Higher inflation is worse for the market in the near-term as it drives a Fed fear factor. Signs of cooling in commodities had been part of the tailwind for markets the last couple of weeks – past peak inflation narrative, into the slowdown part of the story sort of deal. But surging inflation expectations dragged and won’t go away quickly. Thursday’s PCE inflation data will be important – further cooling would be taken as a positive for stocks, especially tech, but still the bottom isn’t in.

Conference Board consumer confidence fell to the lowest level since February 2021, whilst consumer expectations declined to a decade low.

Richmond Fed manufacturing index was also down heavily in June.

Bonds are catching some bid with the 10yr down about 2bps at 3.15%, whilst European yields were a tad lower after inflation data from the North Rhine-Westphalia region of Germany dropped from 8.1% in May to 7.5% in June, whilst Bavarian inflation declined to +7.9% from +8.1%. Early indicator that inflation has peaked? We shall see as the rest of the German figures come in over the morning. Meanwhile, Spanish inflation up to 10% year-on-year from 8.5% in May…not so clever and the worst since April 1985. This only underlines the difficulty the European Central Bank has in raising rates but still doing QE to prevent a blowout in yields and spreads. The ECB is said to be mulling announcing the size and duration of its new bond buying programme in July as it hikes rates. However, get the fragmentation tool right and it will be in a stronger position to raise headline rates more aggressively. 

The US dollar has held onto most of yesterday’s gains. Much of this might be month/quarter/half-end rebalancing. Citi’s month-end flow model points to stronger USD buying than usual. GBPUSD dropped as low as 1.2180 this morning as the dollar continued to find bid, whilst EURUSD hit 1.0486 before paring losses at the start of the European session. Both crosses are testing lows struck a couple of times over the last fortnight. USDJPY trades a little higher this morning at 136. ECB’s Lagarde, BoE’s Bailey and the Fed’s Powell are due to take part in a panel event later. 

Oil continues to advance off its trend support, with spot Brent rising to a two-week high at $114, as oil producers in OPEC struggle to match supply commitments. Both Saudi Arabia and the UAE are said to be at capacity, whilst Libyan production is struggling with a potential force majeure at the Gulf of Sirte. OPEC shouldn’t do anything unexpected. Couple of things to note about oil right now. First the drop in liquidity with open interest in Brent and WTI at a 7-year low. Second, dated to frontline Brent spreads have blown out, indicating extreme tightness. Meanwhile the US Energy Information Administration (EIA) will restart publishing its weekly inventories report at the usual time today, including data from last week’s delayed release. API data showed a draw of 3.8 million barrels for the week ended June 24th. 

Latest news

Sunday, 29 December 2024

Indices

Stock market today: Most Asian stocks fell after US equities declined

Sunday, 29 December 2024

Indices

MicroStrategy joins Nasdaq-100 index: MSTR stock performance analysis 2024

Sunday, 29 December 2024

Indices

Morning Note: Key Levels & Data Driving the Last Monday of 2024

Closing 2024

Thursday, 26 December 2024

Indices

Week ahead: Closing 2024 and First Economic data from 2025

SettingsRequest history8.1.18PHP Version1.2sRequest Duration4MBMemory UsageGET news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/news/stocks-down-after-volatile-us-session
controller_action
App\Http\Controllers\DynamicContentController@getNewsFromCollection
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
status
200 OK
full_url
https://web-qa.staging.markets.com/news/stocks-down-after-volatile-us-session
action_name
controller_action
App\Http\Controllers\DynamicContentController@getNewsFromCollection
uri
GET news/{slug}
controller
App\Http\Controllers\DynamicContentController@getNewsFromCollection
file
app/Http/Controllers/DynamicContentController.php:370-421
middleware
web, SetDomain, GoMarkets, setlocale, trackingparams, redirects, Logout, pagecache, setrisk, gettranslations, getglobalsettings, urlstructure, saveReferral
duration
1.2s
peak_memory
6MB
response
text/html; charset=UTF-8
request_format
html
request_query
[]
request_request
[]
request_headers
0 of 0
array:15 [ "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "connection" => array:1 [ 0 => "keep-alive" ] "host" => array:1 [ 0 => "web-qa.staging.markets.com" ] ]
request_cookies
[]
response_headers
0 of 0
array:3 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 14 Apr 2025 17:43:18 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "jI08DdLcYHHfa1l8oclc07I3TqcT8r0ff8asFwJV" ]
  • infolog[17:43:17] LOG.info: api_c4ef001dff6e3907801430a18024f849 [ "\/news\/stocks-down-after-volatile-...
  • infolog[17:43:18] LOG.info: api_e907a09023d287ac1c2c6c753ca93646 [ "\/news\/stocks-down-after-volatile-...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[17:43:18] LOG.info: api_7fd204dc8e2cbe0f1c1cdf7c19e181ed [ "\/news\/stocks-down-after-volatile-...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[17:43:18] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[17:43:18] LOG.info: page_8555f133044ef46fab71eaf25f145c27 [ "\/news\/stocks-down-after-volatile...
  • Booting (16.01ms)time
  • Application (1.18s)time
  • Routing (1.15ms)
  • 1 x Application (98.67%)
    1.18s
    1 x Booting (1.33%)
    16.01ms
    1 x Routing (0.1%)
    1.15ms
    99 templates were rendered
    • 1x news-contentnews-content.blade.php#?blade
    • 1x components.news-landingnews-landing.blade.php#?blade
    • 1x components.news-singlenews-single.blade.php#?blade
    • 1x components.article-navigationarticle-navigation.blade.php#?blade
    • 1x components.text-editortext-editor.blade.php#?blade
    • 1x components.share-listshare-list.blade.php#?blade
    • 1x repeatable.trading-tabletrading-table.blade.php#?blade
    • 6x repeatable.trading-table-labelstrading-table-labels.blade.php#?blade
    • 24x repeatable.trading-table-rowtrading-table-row.blade.php#?blade
    • 2x components.page-advertpage-advert.blade.php#?blade
    • 36x components.strapi-imgstrapi-img.blade.php#?blade
    • 1x components.news-columnnews-column.blade.php#?blade
    • 3x components.spacerspacer.blade.php#?blade
    • 1x components.news-rownews-row.blade.php#?blade
    • 1x layouts.mainmain.blade.php#?blade
    • 1x csscss.blade.php#?blade
    • 1x scripts.hrefmaphrefmap.blade.php#?blade
    • 1x layouts.headerheader.blade.php#?blade
    • 1x layouts.header.mobile-login-buttonsmobile-login-buttons.blade.php#?blade
    • 1x layouts.header.mobile-searchmobile-search.blade.php#?blade
    • 2x repeatable.languageslanguages.blade.php#?blade
    • 1x layouts.header.menumenu.blade.php#?blade
    • 1x layouts.header.search-togglesearch-toggle.blade.php#?blade
    • 1x layouts.header.login-buttonslogin-buttons.blade.php#?blade
    • 1x components.search-resultssearch-results.blade.php#?blade
    • 1x components.blur-animationblur-animation.blade.php#?blade
    • 1x layouts.floating.cookiescookies.blade.php#?blade
    • 1x scripts.breadcrumbsbreadcrumbs.blade.php#?blade
    • 1x components.corner-advertcorner-advert.blade.php#?blade
    • 1x layouts.footerfooter.blade.php#?blade
    • 1x scripts.functionalfunctional.blade.php#?blade
    • 1x scripts.trackingtracking.blade.php#?blade
    uri
    GET news/{slug}
    middleware
    web, SetDomain, GoMarkets, setlocale, trackingparams, redirects, Logout, pagecache, setrisk, gettranslations, getglobalsettings, urlstructure, saveReferral
    controller
    App\Http\Controllers\DynamicContentController@getNewsFromCollection
    file
    app/Http/Controllers/DynamicContentController.php:370-421
    0 statements were executed0μs
          _token
          jI08DdLcYHHfa1l8oclc07I3TqcT8r0ff8asFwJV
          ClearShow all
          Date ↕MethodURLData
          #12025-04-14 17:43:18GET/news/stocks-down-after-volatile-us-session/3499