Following a March 23 move to lows around 2180, the S&P 500 recovered to trade at highs near 2973 at the end of April. With the market 160 points lower than this swing high at time of writing, we wanted to outline several reasons why the next leg for the index may be lower.

It may not be a single event that leads to a pullback, but rather a combination of many, including:

1. The reopening process may take time

The index fell sharply in the final hour of trading Tuesday, on the news that Los Angeles County’s stay home order would be extended “with all certainty” for another three months, while Dr Fauci warned of the risks of reopening businesses too early.

This saw the S&P 500 fall 2% and close at the session low at 2870, a move that was continued yesterday, testing the 2790 level at the lows.

2. A resurgence of US-China tensions

A leading cause for investor concern in 2019 was the US-China trade relationship, which is again showing signs of increasing tensions. There have been recent comments from both sides, with Chinese media reporting on calls rising in China to rework the deal with the US and US media reporting that the White House has directed the federal pension fund to halt investments in Chinese stocks.

Ratcheting up the rhetoric from here could lead to this issue once again coming to the forefront of investor minds.

3. Dividends and share buybacks at risk

Share buybacks, reducing the number of shares outstanding and increasing the value of those that remain, have been the only net demand for shares in the past decade. However, many firms have now stopped their buyback programs to preserve liquidity. Similarly, to preserve cash, many firms have suspended or reduced their dividend payments.

Both developments could negatively impact the demand for shares and prices.

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 Version522msRequest Duration4MBMemory UsageGET {locale}/news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/vc/news/three-reasons-why-the-next-move-in-the-sp-500-may-be-lowe...
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/three-reasons-why-the-next-move-in-the-sp-500-may-be-lowe...
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
523ms
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 => "Thu, 03 Apr 2025 11:01:30 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "XJ3ZMwSD7ts32TG0nlDe3ziwSOG8znGjfPpv0Oq5" ]
  • infolog[11:01:30] LOG.info: api_0eb10ef77bd73b02f32294009b5abb15 [ "\/vc\/news\/three-reasons-why-the-n...
  • infolog[11:01:30] LOG.info: api_17fc106a2708d7ea5ac7d1a90ed6b972 [ "\/vc\/news\/three-reasons-why-the-n...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[11:01:30] LOG.info: api_bf4f46e6af65fe5a79cd5445c26f02cd [ "\/vc\/news\/three-reasons-why-the-n...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[11:01:30] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[11:01:30] LOG.info: page_4c91c7351cd45741d3c2a18dd365675a [ "\/vc\/news\/three-reasons-why-the-...
  • Booting (9.45ms)time
  • Application (513ms)time
  • Routing (787μs)
  • 1 x Application (98.19%)
    513ms
    1 x Booting (1.81%)
    9.45ms
    1 x Routing (0.15%)
    787μ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
          XJ3ZMwSD7ts32TG0nlDe3ziwSOG8znGjfPpv0Oq5
          ClearShow all
          Date ↕MethodURLData
          #12025-04-03 11:01:30GET/vc/news/three-reasons-why-the-next-move-in-the-sp-500-may-be-lower/3695