Daily Market Reports | 9:09 AM
By Greg Peel
Material Concern
The futures had suggested down -15 points on Friday morning but the ASX200 immediately fell -40 points, back to the 6000 level, and spent the rest of the day bouncing around to finish roughly where it began.
All sectors bar one closed in the red but the standouts were materials (-1.5%) and healthcare (-1.2%).
Materials had been the star of Thursday’s trade on higher commodity prices which, to a great extent, lend themselves to a lower US dollar. But consternation set in on Friday when Donald Trump announced he intends to ban, on national security risk, TikTok, unless it sells its US business, and now WeChat, owned by Tencent, which is basically China’s Facebook-Google- Amazon all in one.
It’s a tenuous connection but the bottom line is escalating US-China tensions and as we have learned, that is not necessarily good for Australian exports if we deign to choose sides. Rio Tinto’s ((RIO)) CEO up in front of a parliamentary enquiry into why his company destroyed a sacred Aboriginal site didn’t help either.
Overnight, a “positive” US jobs number sparked a bounce for the US dollar which led to a swift reversal in the prices of gold, iron ore, copper and oil but also a merciful one percent drop in the Aussie, providing an offset. It begs the question of how investors might respond to the sector today, and we note the futures were up 0.7% on Saturday morning when the S&P500 closed flat.
For healthcare, the biggest drag has been the Aussie so there should be some relief today, except that ResMed ((RMD)) kept falling on Friday (-3.2%) post-result on broker downgrades. Note that FNArena database brokers have only one Buy on the stock between them.
The one winning sector was consumer discretionary, as heavily shorted travel agents had another run, with Corporate Travel Management ((CTD)) and Flight Centre ((FLT)) each jumping over 6%. This follows a White House decision to now allow US citizens to fly out of the country (it remains a mystery as to where) and a second round of direct government support for US airlines.
Star Entertainment ((SGR)) also seemed to like that news (+4.5%) while News Corp ((NWS)) rose 5.7% post result.
It was -3% odd falls for the top five index losers on the day which included ResMed, Fisher & Paykel Healthcare in sympathy, and money stocks Janus Henderson ((JHG)) and Virgin UK ((VUK)).
All other sectors closed down around the -0.5% mark apart from telcos, which were flat. The RBA made its contribution to general weakness in its quarterly Statement on Monetary Policy in winding back what had earlier been quite an upbeat 2020 forecast under the circumstances to less so given Victoria’s re-lockdown.
As to why the futures were up 42 points on Saturday morning is not immediately clear, with Wall Street doing little (other than a pullback for the Nasdaq) and the local result season ramping up this week.
The full story is for FNArena subscribers only. To read the full story plus enjoy a free two-week trial to our service SIGN UP HERE
If you already had your free trial, why not join as a paying subscriber? CLICK HERE
var fn_do_fb_login; var fn_check_login_state; var fn_get_fb_login_button; var fn_remove_fb_loading_btn; var fn_status_change_callback;
jQuery(document).ready(function(e){
window.fbAsyncInit = function() { FB.init({ appId : '2003222569780759', // dev version: 500318794096450 cookie : true, // Enable cookies to allow the server to access the session. xfbml : true, // Parse social plugins on this webpage. version : 'v4.0' // Use this Graph API version for this call. });
//check if all fb elements done rendering //========== fn_get_fb_login_button();
FB.Event.subscribe('xfbml.render', function(response) { fn_remove_fb_loading_btn(); }); //==========
FB.getLoginStatus(function(response) { // Called after the JS SDK has been initialized.
var fb_r = response;
if (fb_r && fb_r.status === 'connected') {
get_detail_data(fb_r.authResponse.userID); // Returns the login status.
// logout function // FB.logout(function(response) { // console.log('do logout'); // }); } }); };
(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
//fb functionality //======================================================= fn_check_login_state = function check_login_state() { // Called when a person is finished with the Login Button.
//everytime event login triggered, reset the form fn_reset_form();
FB.getLoginStatus(function(response) {
var status_change_callback = fn_status_change_callback(response);
if (status_change_callback) {
FB.api('/me', function(response) {
console.log(response);
});
}
});
}
//new function to do fb login - since might need a separate function //between checking and login fn_do_fb_login = function do_fb_login() { // Called when a person is finished with the Login Button.
//everytime event login triggered, reset the form fn_reset_form();
FB.getLoginStatus(function(response) {
e('.form_loading').show();
var status_change_callback = fn_status_change_callback(response);
if (status_change_callback) {
FB.api('/me', function(response) {
console.log(response); set_detail_data_to_form_and_submit(response.id);
});
} else {
FB.login(function(fb_l_r) {
if (fb_l_r.authResponse && fb_l_r.status == 'connected') {
console.log(fb_l_r.authResponse.userID); set_detail_data_to_form_and_submit(fb_l_r.authResponse.userID);
} else { e('.form_loading').hide(); }
});
}
});
}
fn_status_change_callback = function status_change_callback(response) { // Called with the results from FB.getLoginStatus().
var check_status;
console.log('status_change_callback'); console.log(response); // The current login status of the person.
if (response.status === 'connected') { // Logged into your webpage and Facebook.
get_detail_data(response.id); check_status = true;
} else { // Not logged into your webpage or we are unable to tell.
console.log('facebook is not logged in'); check_status = false;
}
return check_status;
}
function get_detail_data(fb_id) {
FB.api( '/'+fb_id+'/', {fields: 'id,first_name,last_name,email'}, function (fb_r) {
var fb_data_json = JSON.stringify(fb_r);
if (fb_r && !fb_r.error) {
e('#fb_data').html(fb_data_json);
}
} );
}
//it's kinda silly, but since fb is an async, cannot use passing parameter on a function like jquery //so instead put it on FB.api function set_detail_data_to_form_and_submit(fb_id) {
e('.form_loading').show();
FB.api( '/'+fb_id+'/', {fields: 'id,first_name,last_name,email'}, function (fb_r) {
var fb_data_json = JSON.stringify(fb_r);
if (fb_r && !fb_r.error) {
var fb_id = fb_r.id; var fb_firstname = fb_r.first_name; var fb_lastname = fb_r.last_name; var fb_email = fb_r.email;
e('.sns_facebook').val(1); e('.sns_facebook_id').val(fb_id);
e('#fb_data').html(fb_data_json); do_submit_form();
//no form_loading hide - we gonna lock the form IF it's success
} else {
e('.form_loading').hide();
}
} );
}
fn_get_fb_login_button = function get_fb_login_button() {
var html = '
'+ ' '; e('.fb_button_placeholder').html(html);}
fn_remove_fb_loading_btn = function remove_fb_loading_btn() {
e('.fb_loading_btn').hide(); e('.fb_login_wrapper').show();
}
fn_reset_form = function reset_form() {
e('.sns_facebook').val(''); e('.sns_facebook_id').val(''); e('.form_loading').hide();
}
function do_submit_form() {
var the_form = e('.formLogin:visible');
if (the_form.length) {
var target_form = the_form[0]; target_form.submit();
} else {
console.log('form not exist');
}
} //=======================================================
//initialize fn_reset_form();
});