Markets distracted by Chinese manufacturing growth, Brexit votes continue, easyJet issues profit warning

Data showing surprise growth in Chinese manufacturing during March has stoked gains for equity markets today. Asian stocks are leading global indices higher; the Hang Seng gained over 500 points, while the Nikkei rose 300 points. European equities followed suit, led by Germany’s DAX, which broke through 11,700.00 before trimming gains to trend around the 11,650.00 handle. US futures indicated a higher opening, with the Dow above 26,100.00 and the NASDAQ indicated 1% higher around 7,470.00.

China’s Caixin manufacturing PMI climbed into positive territory for the first time in four months, printing at 50.8 against analyst expectations for a reprint at 49.9. Even more notable was the rise in staffing levels in Chinese factories; the first recorded since 2013.

Progress in US-Sino trade talks has helped increase external demand, but the bulk of new activity was as a consequence of renewed stimulus by the Chinese government. But one positive reading from China does not a crisis avert, and markets might want to take a look at the latest numbers from the Eurozone before dropping bonds and rushing back into equities.

Manufacturing in the euro area saw its largest decline in almost six years last month, with powerhouse economy Germany leading the drop. The German PMI tumbled to 44.1 – lowest since July 2012 – while the aggregate currency bloc indicator fell from 49.3 in February to 47.5 in March.

US manufacturing data is set for release this afternoon; February saw a worse-than-expected decline – another could slam the brakes on the equity rally.

UK parliament ready to vote on further Brexit options

Cable has found strong bid this morning, with 0.5% gains taking GBP/USD back towards the key $1.3100 handle. However, positive moves for sterling are less to do with developments in the UK political sphere and more to do with a move out of safe-havens as described above. The dollar is also down versus the euro, Aussie, and Kiwi.

MPs are getting ready to hold another series of indicative votes today, with some of the defeated motions returning for a second attempt, although others have been replaced with new options. On the menu are everything from ruling out a no-deal exit to demanding a no-deal exit, a referendum to prevent a no deal, and a referendum on any deal passed by Parliament.

It’s hard to see any of these options gaining a majority after the events of last week, which leaves us awaiting a fourth vote on Theresa May’s Withdrawal Agreement. The Prime Minister may threaten a general election should the proposal fail, which seems unlikely to sway many who opposed the deal, considering most of them are the opposition parties and even many Conservative MPs have openly called for one.

Turbulence for UK airlines as easyJet issues profit warning

Rising costs and Brexit have hammered easyJet’s bottom line. The company announced it expects to make a pre-tax loss of £275 million during fiscal 2019 – up from an £18 million loss in the first half of 2018. The company also stated that it was “cautious” with regards to the H2 outlook.

Bookings for early summer have seen revenue per seat rise slightly, but in the first half the metric is expected to have dropped 7.4% in line with guidance issued in January. Increased passenger numbers are forecast to have pushed revenue 7.3% higher to £2.34 bn, in-line with the analyst consensus.

First-half costs are guided 19% higher thanks to the cost of fuel and investment in measures to minimise summer disruption, with preparations including spare planes and crew.

EasyJet shares dropped 8% on the news, with read-through seen across the sector. Ryanair fell 3.2%, while IAG – owner of rival British Airways – slipped 1.5%.

For easyJet, the damage from Brexit uncertainty is the impact it is having upon consumers; the company itself is well-prepared for even a no deal Brexit. The EU Parliament has approved air connectivity legislation and the UK has confirmed it will reciprocate – allowing UK and EU air carriers to continue operating.

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 Version390msRequest Duration4MBMemory UsageGET news/{slug}
status
200 OK
full_url
https://web-qa.staging.markets.com/news/market-commentary-china-brexit-and-easyjet
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/market-commentary-china-brexit-and-easyjet
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
390ms
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=eu" ] "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:1 [ "mktv4_ip_override" => null ]
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 => "Sat, 26 Apr 2025 05:55:31 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "iQElOGW2B2R6DmBG2ZLaxZDTICgNkZqiWXg12cgU" ]
  • infolog[05:55:31] LOG.info: api_d3d213b9648b4907da5795233ea3450a [ "\/news\/market-commentary-china-bre...
  • infolog[05:55:31] LOG.info: api_ebcb1ab3e58ab954dad4e70ea7496f14 [ "\/news\/market-commentary-china-bre...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[05:55:31] LOG.info: api_c4eb3bc9678bd4202e1606f6e800a7ec [ "\/news\/market-commentary-china-bre...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • warninglog[05:55:31] LOG.warning: str_replace(): Passing null to parameter #3 ($subject) of type array|string ...
  • infolog[05:55:31] LOG.info: page_5d8f646da386698784a7d5628d74fe1c [ "\/news\/market-commentary-china-br...
  • Booting (11.21ms)time
  • Application (379ms)time
  • Routing (1.1ms)
  • 1 x Application (97.13%)
    379ms
    1 x Booting (2.87%)
    11.21ms
    1 x Routing (0.28%)
    1.10ms
    102 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
    • 3x components.page-advertpage-advert.blade.php#?blade
    • 38x 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
          iQElOGW2B2R6DmBG2ZLaxZDTICgNkZqiWXg12cgU
          ClearShow all
          Date ↕MethodURLData
          #12025-04-26 05:55:31GET/news/market-commentary-china-brexit-and-easyjet/34102