Everything down. Stocks ended the first half in the way they’ve been headed all year: down. The FTSE 100 was among the best performers, declining just 3% YTD. By contrast the Nasdaq Composite fell 30%. Yesterday the S&P 500 declined almost 1% to take its losses in 2022 to more than 20%. The DAX is down a fifth too, as is the CAC. It was the worst quarter for European stocks since 2020; and the worst start to a year for the S&P 500 since 1970. 

The tech wreck is kind of spectacular. ARKK is down almost 60% this year and among the worst performers of the last quarter were Tesla, Nvidia and Netflix. Pandemic stay-at-home stocks have had a drubbing – Peloton is down 95% from its all-time high, whilst Zoom is down 80% and Etsy 75% lower. But the worst performers over the quarter were the cruise and casino operators. 

Heavy: market sentiment remains subdued as the same old worries about inflation and recession circulate. European stock markets opened lower on Friday and risk remains subdued though there was an attempted move higher for the DAX and CAC as the first hour of trade progressed. Shares in Asia fell, though China’s manufacturing activity expanded at the fastest rate in 13 months. Oil has fallen sharply on the risk-off tone, whilst bond yields have also declined on a flight to safety. Copper down hard, also nickel, as industrial metals are being offered as recession fears dominate. Gold has fallen below $1,800 and Bitcoin is struggling for traction below $20k. This is a horrible market and those getting sucked into bonds will get burned…inflation is going to be lingering for a long time – plateau not peak.

Japanese shares led declines in Asia as the Tankan headline index fell from +14 last quarter to +9 versus expectations of a smaller drop to +13. China’s Caixin Manufacturing PMI beat expectations at 51.7 vs 50.1, expanding at its fastest pace in over a year. 

US core PCE inflation cooled to 4.7% from +4.9% but the market wasn’t paying any attention to any peak-inflation narrative…truth is that the inflation genie is out the bottle and it’s going to be extremely tough to put it back in. 

Natural gas prices plunged as inventories climbed. The shutdown of the Freeport LNG facility has enabled utilities to stockpile supplies. Prices dived 17% yesterday and are down more than 40% since the first week of June. 

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 Version703msRequest Duration4MBMemory UsageGET news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/news/risk-subdued
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/risk-subdued
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
704ms
peak_memory
6MB
response
text/html; charset=UTF-8
request_format
html
request_query
[]
request_request
[]
request_headers
0 of 0
array:16 [ "cookie" => array:1 [ 0 => "mktv4_ip_override=fr; mktloc=eyJpdiI6IkF3b2ozOW9lR01WdzhLZ2R2NXk1anc9PSIsInZhbHVlIjoiRjdkYS9sMzZiakJnVEhFWmNKa1g1NzA1c1BxSmtkNGJIcjVOWlUvSDdCQllCUGg5NW81YnhRd2p4eGhTRW1YNSIsIm1hYyI6IjBmN2FkYzRjNjI4MGY0NDJiZDZkMjM4YTQ2MTdiNmVmZTY5YjcxMGNhZDRkMjdjZDQ5Y2M0ZmQ0Y2NlMjk4YTYiLCJ0YWciOiIifQ%3D%3D; intent_group=%252Fth%252Finstrument%252Fiag%252F; intent_instrument=iag; firstURL=https://web-qa.staging.markets.com/th/instrument/xlb/; lastURL=https://web-qa.staging.markets.com/th/instrument/xlb/; XSRF-TOKEN=eyJpdiI6ImJ3MHZ3YzR1enVSWHZaNzZSOStJS1E9PSIsInZhbHVlIjoiZEg1dzNtSnlyMlJKS1o5ZUQ5bCtoOVJnUUZsZTNUMExibmlxNFh2TWx2TWRhM3BXZ05tYWtZbnJVUUJSTzlybkQ5WDdRUkhxd1pSSWhpR0pSNGZnM0tMZWdBRmZuN0NiTzE0TGpZYStmSDBZdnA0TDRXZVNBckdYb0trTmV2dVYiLCJtYWMiOiIzM2JjY2U0MTc3Zjc2ZTk4MzIwOTMyYTZiMjkxYjRkZjMxNjIyYzYyYWZmY2EwZDAwNzkyOTBmMTA2ZTAzYTk3IiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IkJlb1VLcHdGQ1R4UkFSWnFSOG9jNHc9PSIsInZhbHVlIjoiMFFOS3F3R0lHbWQ3QXVjZ0czd1dYbUJncTFtM0pPaWRDUWZxNEZSa3VDK0NxZUxLUy8rTXZjbkRjcEFwTHRqYVdsTHZIUnoyaGJKWnAwV2o2RVZFVVUwaTBZL0tnK3YyQ3R2alUySHpVamdYZlE1REhhNkxLeTM3VG13R1dpUloiLCJtYWMiOiI0NjViYTljYWM5NDJhMzM4YTFhN2FkMTc4ZDBmMjY3ZDNhYzI0ODJlMGRiMjliMzNiMDA3MWE1ZDVkZmM3M2QzIiwidGFnIjoiIn0%3Dmktv4_ip_override=fr; mktloc=eyJpdiI6IkF3b2ozOW9lR01WdzhLZ2R2NXk1anc9PSIsInZhbHVlIjoiRjdkYS9sMzZiakJnVEhFWmNKa1g1NzA1c1BxSmtkNGJIcjVOWlUvSDdCQllCUGg5NW81YnhRd2p" ] "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
0 of 0
array:8 [ "mktv4_ip_override" => null "mktloc" => "us,us" "intent_group" => null "intent_instrument" => null "firstURL" => null "lastURL" => null "XSRF-TOKEN" => "H9eKnTeRh5wqGCKGINL3wd7LpnHy2x98pXVGb25q" "laravel_session" => "RERa9b31acE1ZFNEWfpfzBsleDW9WcbL9emVl2WJ" ]
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 => "Tue, 15 Apr 2025 01:26:35 GMT" ] ]
session_attributes
0 of 0
array:4 [ "_token" => "H9eKnTeRh5wqGCKGINL3wd7LpnHy2x98pXVGb25q" "PHPDEBUGBAR_STACK_DATA" => [] "_previous" => array:1 [ "url" => "https://web-qa.staging.markets.com/params" ] "_flash" => array:2 [ "old" => [] "new" => [] ] ]
  • infolog[01:26:34] LOG.info: api_e40248343fbbb5bc30642c1e7a85143c [ "\/news\/risk-subdued\/", 3600, ...
  • infolog[01:26:35] LOG.info: api_ac49290fb4357365e45ca55c2c05d810 [ "\/news\/risk-subdued\/", 3600, ...
  • infolog[01:26:35] LOG.info: api_1cc465f7f1d8fe03fec58563a442c5c8 [ "\/news\/risk-subdued\/", 3600, ...
  • infolog[01:26:35] LOG.info: api_c08304942be0c02e884162b1f3c567f9 [ "\/news\/risk-subdued\/", 3600, ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[01:26:35] LOG.info: api_037d052d1998168b5c088b9e79161812 [ "\/news\/risk-subdued\/", 3600, ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[01:26:35] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[01:26:35] LOG.info: page_287157dd892ec65670b7e580a3344d66 [ "\/news\/risk-subdued\/", 3600,...
  • Booting (8.97ms)time
  • Application (695ms)time
  • Routing (1.12ms)
  • 1 x Application (98.72%)
    695ms
    1 x Booting (1.27%)
    8.97ms
    1 x Routing (0.16%)
    1.12ms
    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
          H9eKnTeRh5wqGCKGINL3wd7LpnHy2x98pXVGb25q
          PHPDEBUGBAR_STACK_DATA
          []
          _previous
          array:1 [ "url" => "https://web-qa.staging.markets.com/params" ]
          _flash
          array:2 [ "old" => [] "new" => [] ]
          ClearShow all
          Date ↕MethodURLData
          #12025-04-15 01:26:35GET/news/risk-subdued/3699