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 Version1.44sRequest Duration4MBMemory UsageGET news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/news/three-reasons-why-the-next-move-in-the-sp-500-may-be-lower
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/three-reasons-why-the-next-move-in-the-sp-500-may-be-lower
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.44s
peak_memory
8MB
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=eu; mktloc=eyJpdiI6IlBDbHVXSXVGVU1tRi9NOVFoNXl1WEE9PSIsInZhbHVlIjoidmhEUDRMMVNOR1NYUHViQmJwUjlhZlA2cmg0L1BHQWRZYkJMb0RKMDZjODFnWEliQXhKYjJGd1FncUlCMFBEVSIsIm1hYyI6IjA4OWI0NjhhZDljNTYzZDczNWVhYzNmYTFiYmJlODgzYjg0ODhhYTdlMDBkMjQ0ZmU2N2JjMzA1MjAyYTQ0N2YiLCJ0YWciOiIifQ%3D%3D; intent_group=%252Feducation-centre%252Funderstanding-crypto-cfds-advantages-and-risks%252F; firstURL=https://web-qa.staging.markets.com/education-centre/understanding-crypto-cfds-advantages-and-risks/; lastURL=https://web-qa.staging.markets.com/education-centre/understanding-crypto-cfds-advantages-and-risks/; XSRF-TOKEN=eyJpdiI6IjgyQklPbXNXaERyOVdHc2xVQXphY2c9PSIsInZhbHVlIjoiRXdDR1BsTXMzdEIxT2dnQ3RsZ1F6NndITWpDT2RDSWxyVm1qN083T2J5TUVjcm93dFJVVFdndEkzaEVYa3NjWDd5WHNFN0l1anZmc1Y0bG1Wb1IxRkRQS2F1QWt6TGM5bDFud21HS282bHdMOTNJUXdtL2duOERLcjNMRUVIWSsiLCJtYWMiOiI5MTEzZDZkNzRjYjRhNTc4OWU5ZGJkZTNkNjY3ZTM5ZDIzMTk0ZjRmNTNhMWVmZGY5ZmU1MWE3N2E2YTI1NmE4IiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6Ijl4a3A5dEl5ZFZycms0V0QvY0lGR0E9PSIsInZhbHVlIjoiNS8xblJwbVdXRkFFcEYzeFgyT1FOTGlud0ltTzlLYVp5TFAwR1ZPR3YyeUo4YmJHL2pVWWk2b21oQWxjakN2ME9LcmZ0RkZsbWYrdXJZOU10aE1PSlE3VlQ1cEt4THpUbm9QZ2dHOFNSZEQvUTBpM1gybmFiYzlSV3lTbVo0TDYiLCJtYWMiOiI1MGY4MDA2YThhNGY4MjM2ZjI5YzIxZWVlNmUxOWUxNDliMWQyZmViN2RhZTA5MjY3ZjVlNDEwMDViYzhmY2Y4IiwidGFnIjoiIn0%3Dmktv4_ip_override=eu; mktloc=eyJpdiI6IlBDbHVXSXVGVU1tRi9NOVFoNXl1WEE9PSIsInZhbHVlIjoidmhEUDRMMVNOR1NYUHViQmJwUjlhZlA2cmg0L1BHQWRZYkJMb0RKMDZjODFnWEliQXhKYjJGd1F" ] "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:7 [ "mktv4_ip_override" => null "mktloc" => "us,us" "intent_group" => null "firstURL" => null "lastURL" => null "XSRF-TOKEN" => "JEpWoF00j3ZaalRmvFBLQkYGGaWdF2t3UAJglFjy" "laravel_session" => "GxHp3451XMmWzXRBuiHtyofWfkQ1umI0W4F0Ko5a" ]
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, 17 Apr 2025 10:13:17 GMT" ] ]
session_attributes
0 of 0
array:4 [ "_token" => "JEpWoF00j3ZaalRmvFBLQkYGGaWdF2t3UAJglFjy" "PHPDEBUGBAR_STACK_DATA" => [] "_previous" => array:1 [ "url" => "https://web-qa.staging.markets.com/params" ] "_flash" => array:2 [ "old" => [] "new" => [] ] ]
  • infolog[10:13:16] LOG.info: api_0eb10ef77bd73b02f32294009b5abb15 [ "\/news\/three-reasons-why-the-next-...
  • infolog[10:13:17] LOG.info: api_17fc106a2708d7ea5ac7d1a90ed6b972 [ "\/news\/three-reasons-why-the-next-...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[10:13:17] LOG.info: api_bf4f46e6af65fe5a79cd5445c26f02cd [ "\/news\/three-reasons-why-the-next-...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[10:13:17] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[10:13:17] LOG.info: page_c49662d43d3af93d766c16364d7c82cb [ "\/news\/three-reasons-why-the-next...
  • Booting (8.97ms)time
  • Application (1.43s)time
  • Routing (1.15ms)
  • 1 x Application (99.37%)
    1.43s
    1 x Booting (0.62%)
    8.97ms
    1 x Routing (0.08%)
    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
          JEpWoF00j3ZaalRmvFBLQkYGGaWdF2t3UAJglFjy
          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-17 10:13:17GET/news/three-reasons-why-the-next-move-in-the-sp-500-may-be-lower/3499