The collapse of OPEC+ talks over the weekend tipped markets into chaos on Monday. Traders, already on edge due to the unfolding coronavirus epidemic, were sent fleeing to safety after Saudi Arabia slashed its crude oil prices.

Crude and Brent tumbled over 30%, their worst daily performance since the Gulf War, hitting lows below $27.50 and $31.50 respectively. The Kingdom cut prices for April crude by 30% and stated that it intends to raise its output above 10 million barrels per day. Talks at the weekend saw OPEC and its allies fail to agree new terms for an oil production cut; OPEC+ couldn’t even agree to extend the current level of cuts, let alone deepen the cuts to battle the hit to demand from the coronavirus outbreak.

Saudi Arabia is well-positioned to weather weak prices and Russia claims it can withstand the pressure for up to a decade. US shale oil producers, who have flooded the global market with oil to take advantage of supported prices and are heavily debt-laden, could be in dire trouble.

Equities tank

Global equity markets have been sent tumbling. The collapse in the oil markets, combined with news that the Italian government has imposed travel bans on 16 million people, sent investors running from stocks.

US futures went limit down after triggering circuit breakers during the Asian session. After a 5% drop the Dow was indicated to open down over 1,300 points, but based upon the ETF market – which is not suspended – the Dow was looking at a drop of 1,500. Asian stocks took a hammering, with the Hang Seng and the Nikkei both closing over 1,100 points lower.

European equities sank as well, with the DAX, and Euro Stoxx 50, all off around 7%. The FTSE 100, also down 7% to test 6,000, was trading at levels not seen since the immediate aftermath of the Brexit referendum.

Stocks most at risk

While stocks across the board tanked, several industries were hit harder than others.

Oil majors slumped. BP (LSE) tumbled 20%, ExxonMobil dropped 17%, Chevron tumbled 16%, and Occidental cratered 38% – all in pre-market trading on the NYSE – while Royal Dutch Shell fell 14%.

Airlines were hit hard as well after the price slump left them sitting on big losses after hedging oil at higher prices. American Airlines, Delta Airlines, Southwest Airlines and United Airlines were all down 5-6% in the pre-market.

Coronavirus fears weighed on tech stocks. The FAANGS all recorded losses in the range of 6-7%, but cruise ship operators were hit harder. The US government warned American citizens not to go on cruises. Carnival – the company that owns many of the ships currently stranded due to on-board quarantines – dropped 10%, Norwegian Cruise Lines tumbled 11%, and Royal Caribbean Cruises slumped 12% – all before the markets opened.

New record lows for US bonds

The flight to safety drove the yield on US government debt down to record lows. Yields move inversely to prices. The yield on the US 10-year treasury bond fell to 0.32% while the yield on the 30-year treasury note fell towards 0.7%, breaching 1% for the first time in a year.

Gold traded around $1,673 after hitting $1,700 over the weekend.

Cryptos join in with global market chaos

The cryptocurrency market is no stranger to volatility. The world’s largest cryptocurrencies were down around 10-15%, with Bitcoin falling below $8,000.

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 Version111msRequest Duration4MBMemory UsageGET {locale}/news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/vc/news/oil-leads-global-market-tumble-on-black-monday
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/vc/news/oil-leads-global-market-tumble-on-black-monday
action_name
controller_action
App\Http\Controllers\DynamicContentController@getNewsFromCollection
uri
GET {locale}/news/{slug}
controller
App\Http\Controllers\DynamicContentController@getNewsFromCollection
prefix
/{locale}
where
file
app/Http/Controllers/DynamicContentController.php:370-421
middleware
web, SetDomain, GoMarkets, setlocale, trackingparams, redirects, Logout, pagecache, setrisk, gettranslations, getglobalsettings, urlstructure, saveReferral
duration
111ms
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 => "Fri, 04 Apr 2025 18:46:36 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "rqnhrZ9dbycOY6YgXTfhEWweixqlcVWMv9SorlJh" ]
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[18:46:36] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[18:46:36] LOG.info: page_bf550e9bf130357466ab0ba5225c356b [ "\/vc\/news\/oil-leads-global-marke...
  • Booting (13.01ms)time
  • Application (98.11ms)time
  • Routing (888μs)
  • 1 x Application (88.28%)
    98.11ms
    1 x Booting (11.71%)
    13.01ms
    1 x Routing (0.8%)
    888μs
    95 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
    • 1x components.news-columnnews-column.blade.php#?blade
    • 34x components.strapi-imgstrapi-img.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 {locale}/news/{slug}
    middleware
    web, SetDomain, GoMarkets, setlocale, trackingparams, redirects, Logout, pagecache, setrisk, gettranslations, getglobalsettings, urlstructure, saveReferral
    controller
    App\Http\Controllers\DynamicContentController@getNewsFromCollection
    prefix
    /{locale}
    where
    file
    app/Http/Controllers/DynamicContentController.php:370-421
    0 statements were executed0μs
          _token
          rqnhrZ9dbycOY6YgXTfhEWweixqlcVWMv9SorlJh
          ClearShow all
          Date ↕MethodURLData
          #12025-04-04 18:46:36GET/vc/news/oil-leads-global-market-tumble-on-black-monday/3395