Sales of previously owned houses in the US fell 2.2% from the previous month to a seasonally adjusted annual rate of 5.38 million in September 2019, and compared with market forecasts of 5.45 million. Sales of single family homes dropped 2.6% to 4.78 million; while sales of condos rose 1.7% to 0.60 million. Year-on-year, existing home sales went up 3.9 percent.

Pound Trades Below $1.29The British pound extended losses against the US Dollar on Tuesday afternoon, after MPs approved Withdrawal Agreement Bill but rejected Johnsons timetable. The pound was down more than 0.6% at $1.289 around 7:50 pm London time.13 min agoUK Stocks Up on Weaker Pound, Just Eat Bidding WarThe FTSE 100 rose 49 points, or 0.7% to 7,212, amid a weaker pound due to rising expectations that the UK PM Boris Johnson would force general elections before Christmas if his Brexit timetable is not approved by parliament and the EU grants a 3-month extension as requested. Also, Just Eat shares jumped 25%, after the online takeaway platform rejected a third Prosus offer of GBP4.9 billion saying it underscores the significant long-term potential and strategic value of the company and reaffirmed its backing for a planned merger with . Meanwhile, other major European stock markets closed little changed: the DAX 30 added 7 points, or 0.1% to 12,755; the CAC 40 gained 9 points, or 0.2% to 5,658; and the FTSE MIB finished near the flat line at 22,487; while the IBEX 35 went down 22 points, or 0.2% to 9,380.3 hours agoBrazilian Real Rises on Pension ReformThe Brazilian real rose as much as 1.4% to $4.07 on Tuesday, after the Senate approved the text of a pension reform bill, moving to a second and final plenary vote later in the day that will sign the bill into law.4 hours agoCanadian Dollar Falls After Federal ElectionsThe Canadian dollar weakened against the greenback on Tuesday, after Prime Minister Justin Trudeau won a second term in national elections on Monday and with Liberals set to form a minority government as a preliminary result showed they won 157 seats, a decrease of 20, rising concerns that a minority government would make building of new oil pipelines more difficult. The Loonie fell 0.2% to $1.31 around 10:20 AM NY time.5 hours agoOil Prices Reverse Early LossesOil prices increased on Tuesday, amid signs of progress over the US-China trade talks after the Vice Foreign Minister Le Yucheng said that as long as both countries respect each other, no problem could not be resolved. Oil prices have been under pressure early this session amid persistent worries about a global economic slowdown and its impact on oil demand. US crude oil rose as much as 1.4% to $54.27 per barrel while Brent crude added nearly 1.1% to $59.63 per barrel, around 12:00 PM New York time.5 hours agoUS Stocks Higher on Earnings, Trade OptimismWall Street opened higher on Tuesday, amid a mixed set of corporate earnings results including McDonalds and United Technologies. Also, optimism regarding trade negotiations weighed on sentiment after Vice Foreign Minister Le Yucheng said Beijing and Washington have achieved some progress in their trade talks while top trade negotiator Lighthizer said that the US aims to finish the phase-one trade deal by mid-November at the Asia-Pacific Economic Cooperation summit in Chile. The Dow Jones increased 18 points or 0.1%; the S&P 500 rose 6 points or 0.2%; and the Nasdaq gained 29 points or 0.4% around 3 minutes after the opening bell.6 hours agoCanada Retail Sales Unexpectedly FallRetail sales in Canada fell 0.1 percent month-over-month in August 2019, following an upwardly revised 0.6 percent rise in July and missing market expectations of a 0.4 percent gain. Sales dropped at food & beverage stores (-0.8 percent), namely supermarkets & other grocery stores (-0.8 percent), beer, wine & liquor (-1.9 percent), and convenience stores (-0.1 percent). Also, sales at gasoline stations declined for the second time in the last three months (-0.4 percent); and receipts at building material & garden equipment and supplies dealers went down for the second consecutive month (-0.5 percent). On the other hand, sales at both general merchandise stores (0.8 percent) and motor vehicle & parts dealers (0.1 percent) increased. In addition, sales at cannabis stores advanced 18.6 percent, the second double-digit increase in a row and the fifth double-digit rise in the last six months. Year-on-year, retail trade rose 1.1 percent, easing from an upwardly revised 1.4 percent in July.6 hours agoGold Rises Ahead of Crucial Day for BrexitGold prices increased on Tuesday ahead of the debate and vote by British lawmakers on the legislation for Britains exit from the European Union. On one side, the precious metal continues to benefit from investors expectations that the Federal Reserve will continue lowering interest rates, but hopes the US and China are moving towards a trade deal have been pressuring prices. Gold prices rose as much as 0.1% to $1,485.5 an ounce around 12:00 PM NY time.7 hours agoMexico Jobless Rate Falls to 3.8% in SeptemberThe unemployment rate in Mexico rose to 3.8 percent in September 2019 from 3.6 percent in the corresponding month of the previous year and matching market expectations. The jobless rate increased for men (3.8 percent from 3.4 percent) while dropped for women (3.8 percent from 3.9 percent). In September, about 16.3 percent of unemployed did not have a full secondary education while 83.7 percent had a higher education. Meantime, the activity rate went up to 60.1 percent from 59.5 percent a year earlier. When adjusted for seasonality, the jobless rate was at 3.5 percent, lower than a 3.6 percent in August.8 hours agoNews

Download historical data for 20 million indicators using your browser.API

Direct access to our calendar releases and historical data.

0) for (i = 0; i0 ? darkgreen : d.nchd.prev ?: d.nch:; /*if (s == CO1:COM) console.log(d.nch, triangle, triangle); */ var previous_triangle = r.find(tdtriangle); if (previous_triangle && previous_triangle.length) previous_triangle.html(triangle); //triangle = ; //previous_triangle.attr(id, newId); var nch = r.find(tdnch); //if (s == INDU:IND) //console.log(nch, nch.length, nch); if (nch) nch.each(function (i, item) //console.log(i, item); //return; if ($(item).attr(data-no-triangle)) $(item).text(d.nch.toFixed(dec)); $(item).css(color, fg); $(item).html(Math.abs(d.nch.toFixed(dec))); else $(item).text(d.nch.toFixed(dec)); $(item).css(color, fg); $(item).html(triangle + + Math.abs(d.nch.toFixed(dec))); ) // /* nch.text(d.nch.toFixed(dec)); nch.css(color, fg); nch.html(triangle + + Math.abs(d.nch.toFixed(dec))); */ var pch = r.find(tdpch); pch.text(d.pch.toFixed(2) + %); pch.css(color, fg); if (TEChannels != market) nch.attr(data-value, d.nch); pch.attr(data-value, d.pch); r.find(tdpch) bg = cdebf9; //cdebf9 p.css(backgroundColor, bg); setTimeout(function () p.css(backgroundColor, ffffff); , 2000) if (!isSnap) var dt = new Date(); var h = dt.getHours(); if (h; r.find(tdsession).html(stateSpan); else p.css(backgroundColor, rgb(255,255,255)); ; var TENotifications = 0; // CALENDAR + STREAM function TENotification(_title, _text, _url, _importance) TENotifications++; console.log(IO =>

Notification =>

, _title, _text, _url, _importance, TENotifications); if (TENotifications>

2 & _importance4 & _importance0) _alertType = CALENDAR; if (_importance>

1) IsDesktop = true; _color = 5cb85c; if (_importance>

2) _color = d9534f; _titleHTML =+ _alertType +ALERT; var _textHTML = _text; if (_text && _text.length>

200) console.log(Trim text); _textHTML = _text.substring(0, 200) + …; _textHTML +=More; else if (_text) _textHTML +=More; ///if (IsDesktop) PNotify.desktop.permission(); PNotify.desktop.permission(); (new PNotify( title: _titleHTML, text: _textHTML, hide: false, animation: fade, shadow: true, icon: false, mouse_reset: false, hide: true, delay: 30000, buttons: sticker: false , addclass: custom, )).get().click(function (e) if ($(.ui-pnotify-closer, .ui-pnotify-sticker, .ui-pnotify-closer *, .ui-pnotify-sticker *).is(e.target)) console.log(Closed Notification); return; window.location = _url; ); if (IsDesktop) var _tag = _url + ?v= + new Date().toISOString().slice(0, 10).replace(/-/g, ); console.log(PNotify tag, _tag); (new PNotify( title: _titleHTML, text: _textHTML, hide: false, animation: fade, shadow: true, icon: false, mouse_reset: false, hide: true, delay: 30000, buttons: sticker: false , addclass: custom, type: info, desktop: desktop: IsDesktop, title: TRADING ECONOMICS, text: _text, tag: _tag, fallback: false //icon: /images/logo2.png )).get().click(function (e) if ($(.ui-pnotify-closer, .ui-pnotify-sticker, .ui-pnotify-closer *, .ui-pnotify-sticker *).is(e.target)) console.log(Closed Notification); return; window.location = _url; );; function TECalendarRowUpdate(c) console.log(UPDATE CALENDAR ROW); var $row = $(tr[data-id= + c.CalendarId + ]); var $td = $row.find(spanactual); $td.text(c.Actual); bg = 5bc0de; $td.css(backgroundColor, bg); color = dexOf(-) ? darkgreen : darkred; $td.css(color, color); $row.find(spanprevious).text(c.Previous); $row.find(imgincoming).css(display, none); //$td.slideUp(); setInterval(function () $td.css(backgroundColor, ffffff); (Flash); , 2000); socket.on(calendar, function (c) console.log(IO CALENDAR) console.log(c); //var c = JSON.parse(_c); if (c.Importance>

= 1) var _title = untry.trim() + + c.Event.trim(); var _text = _title; if (c.Actual != null && c.Actual != ) _text += reported at + c.Actual + . ; if (c.Forecast != null && c.Forecast != ) _text += Consensus was + c.Forecast + . ; if (c.Previous != null && c.Previous != ) _text += Previously at + c.Previous + .; var _url = + c.URL; if (TE_URL.indexOf(calendar)>

-1) TECalendarRowUpdate(c); TENotification(_title, _text, _url, c.Importance); ); socket.on(stream, function (j) console.log(IO STREAM) console.log(j); var _title = j.title; var _description = j.description; var _url = j.url; if (_title && _description && _url) TENotification(_title, _description, _url, 0); ); var LAST_VISIBLE = new Date().getTime(); function saveSocketNetworkBW() if (TE_URL.indexOf(calendar)>

-1) return; if (TE_URL.indexOf(stream)>

-1) return; if (TE_URL.indexOf(/currencies)>

-1) return; if (TE_URL.indexOf(/stocks)>

-1) return; if (TE_URL.indexOf(/bonds)>

-1) return; if (TE_URL.indexOf(/commodities)>

-1) return; setInterval(function () if (typeof document == undefined !document) return LAST_VISIBLE = new Date().getTime(); if (typeof document.hidden != boolean) return LAST_VISIBLE = new Date().getTime(); //console.log(document.hidden, document.hidden, typeof document.hidden); if (!document.hidden) if (!IS_CONNECTED) console.log(GOING IN!); socket.connect(); return LAST_VISIBLE = new Date().getTime(); var now = new Date().getTime(); if (now – LAST_VISIBLE>

KILL_SOCKET_AFTER_IDLE) if (IS_CONNECTED) console.log(GOING OUT!); socket.disconnect(); , 1000 * 1); saveSocketNetworkBW();; function hide_msg(element, miliseconds) // hide the message after some time setTimeout(function () element.fadeOut(1000); , miliseconds); $(document).on(click, api-url-text, function (e) var copyTextarea = document.querySelector(api-url-text); copyTextarea.focus(); copyTextarea.select(); document.execCommand(copy); document.getSelection().removeAllRanges(); $(copied-msg).remove(); if (!$(copied-msg) $(copied-msg).lengthCopied); $(api-url-text).after(copied_msg) hide_msg(copied_msg, 5000); ); // click on the Export Data tab $(document).on(click, [href=data], function (e) ga(send, event, Data Request, tab export); ); // click on the API Access tab $(document).on(click, [href=api], function (e) ga(send, event, Data Request, tab api); //var apiMsg = getApiSamples(); //$(api-msg-panel).html(); //$(api-msg-panel).append(apiMsg); ); // click on the CSV File button under Export Data tab $(document).on(click, .export-btn-csv, function (e) e.preventDefault(); //ga(send, event, Data Request, tab export, CSV click); downloadItem(this, csv); ); // click on the JSON File button under Export Data tab $(document).on(click, .export-btn-json, function (e) e.preventDefault(); //ga(send, event, Data Request, tab export, JSON click); downloadItem(this, json); ); // click on the XML File button under Export Data tab $(document).on(click, .export-btn-xml, function (e) e.preventDefault(); //ga(send, event, Data Request, tab export, XML click); downloadItem(this, xml); ); // click on the Python tab inside API tab $(document).on(click, tabs-api-python, function (e) ga(send, event, Data Request, tab api, python inside API); ); // click on the Excel tab inside API tab $(document).on(click, tabs-api-excel, function (e) ga(send, event, Data Request, tab api, excel inside API); ); // click on the jQuery tab inside API tab $(document).on(click, tabs-api-jquery, function (e) ga(send, event, Data Request, tab api, jquery inside API); ); // click on the R tab inside API tab $(document).on(click, tabs-api-r, function (e) ga(send, event, Data Request, tab api, R inside API); ); // click on the NodeJS tab inside API tab $(document).on(click, tabs-api-nodejs, function (e) ga(send, event, Data Request, tab api, nodeJS inside API); ); // click on the C tab inside API tab $(document).on(click, tabs-api-csharp, function (e) ga(send, event, Data Request, tab api, CSharp inside API); ); // click on the Java tab inside API tab $(document).on(click, tabs-api-java, function (e) ga(send, event, Data Request, tab api, java inside API); ); // click on the PHP tab inside API tab $(document).on(click, tabs-api-php, function (e) ga(send, event, Data Request, tab api, PHP inside API); ); var lock_download = false; function downloadItem(element, format) if (lock_download) return; lock_download = true; // create a loader var loading = $(loader); var experience = 1; var export_data_msg = $(export-data-msg); // remove export message if any and insert the new one if (export_data_msg && export_data_msg.length>

0) $(export-msg-panel).remove(); $(export-data-msg).append(loading); else experience = 2; // find the anchor element if (!$(element).is(a)) element = $(element).find(a)[0]; if (!element element.length == 0 !$(element).is(a)) console.log(download link not found); return; var url = $(element).attr(href); console.log(url to download = + url); var d_type = format; if (format == csv) url = url.replace(format=csv, format=json); d_type = json; $.ajax( url: url, type: GET, dataType: d_type, xhrFields: withCredentials: true , ).done(function (data, status, xhr) console.log(SUCCESS); console.log(status = + xhr.status); console.log(data = + data.length); ga(send, event, Data Request, tab export, format, 1); var filename = buildFilename(url, format); downloadData(data, filename, format); ).fail(function (xhr, status, error) console.log(ERROR); console.log(status = + xhr.status); console.log(error message = + xhr.responseText) ga(send, event, Data Request, tab export, format, 0); if (xhr.status) switch (xhr.status) case 401: // unauthorized launchInvalidKeyModal(experience); break; case 403: // forbidden launchTrialOverModal(experience); break; case 400: // bad request launchBadRequestModal(experience); break; case 409: // conflict (more requests per second than allowed) launchThrottleModal(experience); break; default: console.log(Unhandled status = + xhr.status) var redirect_url = ; if (TESymbol) redirect_url = + TESymbol; else redirect_url = console.log(redirecting to: + redirect_url); window.open(redirect_url, _blank); break; ).always(function (xhr, status, error) loading.remove(); console.log(done downloading!); lock_download = false; ); function buildFilename(url, format) var filename = decodeURI(url); filename = filename.replace( ); var questionMark = filename.indexOf(?); if (questionMark != -1) filename = filename.substring(0, questionMark); filename = filename.replace(/\//g, _); filename = filename.replace(/\s/g, _); filename = filename.replace(/:/g, _); filename = filename.replace(/-/g, _); return filename + . + format; function downloadData(data, filename, type) var dataFile = null; switch (type) case csv: var csv = convertArrayOfObjectsToCSV( data: data ); if (csv == null) return; // create the csv file var dataFile = new Blob([csv], type: text/csv;charset=utf-8 ); break; case json: var dataFile = new Blob([JSON.stringify(data)], type: text/json;charset=utf-8 ); break; case xml: var dataFile = new Blob([new XMLSerializer().serializeToString(data.documentElement)], type: text/plain;charset=utf-8 ); break; if (dataFile != null) var anchor = document.createElement(a); anchor.href= window.URL.createObjectURL(dataFile); anchor.setAttribute(hidden, true); anchor.setAttribute(target, _self); anchor.setAttribute(download, filename); document.body.appendChild(anchor); anchor.click(); anchor.remove(); /* Download CSV from: */ function convertArrayOfObjectsToCSV(args) var result, ctr, keys, columnDelimiter, lineDelimiter, data; data = args.data null; if (data == null !data.length) return null; columnDelimiter = args.columnDelimiter ,; lineDelimiter = args.lineDelimiter \r\n; keys = Object.keys(data[0]); result = ; result += keys.join(columnDelimiter); result += lineDelimiter; data.forEach(function (item) ctr = 0; keys.forEach(function (key) if (ctr>

0) result += columnDelimiter; result += item[key]; ctr++; ); result += lineDelimiter; ); return result; function launchTrialOverModal(experience) if (!experience) experience = getParameterByName(ex, window.location.href); if (!experience experience == 1) var panel = createPanel( ACTIVATE, Activate your plan to get more data from Trading Economics, account+limit); $(export-data-msg).append(panel); else if (experience == 2) createModal( ACTIVATE, Activate your plan to get more data from Trading Economics, account+limit); function launchInvalidKeyModal() var experience = getParameterByName(ex, window.location.href); if (!experience experience == 1) var panel = createPanel( Get Started, Trading Economics provides its premium members with access to more than 20 million indicators for 196 countries plus historical/delayed/live quotes for exchange rates, stocks, + indexes, bonds and commodity prices. Subscribe to a plan to download data in a easy to use web interface, using our excel addin or our API., Subscription+Plans); $(export-data-msg).append(panel); else if (experience == 2) createModal( Get Started, Trading Economics provides its premium members with access to more than 20 million indicators for 196 countries plus historical/delayed/live quotes for exchange rates, stocks, + indexes, bonds and commodity prices. Subscribe to a plan to download data in a easy to use web interface, using our excel addin or our API., Subscription+Plans); function launchThrottleModal() var experience = getParameterByName(ex, window.location.href); if (!experience experience == 1) var panel = createPanel( null, null, Limit of request per second reached, API+Access); $(export-data-msg).append(panel); else if (experience == 2) createModal( null, null, Limit of request per second reached, API+Access); function launchBadRequestModal() var experience = getParameterByName(ex, window.location.href); if (!experience experience == 1) var panel = createPanel( CONTACT SUPPORT, Something went wrong with the request, please contact , or click the button bellow, API+Access); $(export-data-msg).append(panel); else if (experience == 2) createModal( CONTACT SUPPORT, Something went wrong with the request, please contact , or click the button bellow, API+Access); function createModal(actionCallBtnText, actionCallBtnLink, text, contactSubject, title) var htmlModal = “+ (title ?+ title +: ) + “+ (text ?

` // create the modal var modal = $(htmlModal); $(modal).modal(show); function createPanel(actionCallBtnText, actionCallBtnLink, text, contactSubject, title) var htmlPanel = `

` return htmlPanel; function getParameterByName(name, url) if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, \\$ var regex = new RegExp([?&] + name + (=([^&]*)&$)), results = regex.exec(url); if (!results) return null; if (!results[2]) return ; return decodeURIComponent(results[2].replace(/\+/g, )); function getApiSamples(country, category) var _country = ; var _category = ; var exportURL = ; if (country) _country = country.trim().toLowerCase(); else if (TECountry) _country = TECountry.trim().toLowerCase(); if (category) _category = category.trim().toLowerCase(); else if (TECategory) _category = TECategory.trim().toLowerCase(); var link = $(.export-btn-csv).attr(href); if (link) if (link.indexOf(?format=csv) != -1) exportURL = link.replace(?format=csv, ); else exportURL = link.replace(&format=csv, ); var userKeyURL = exportURL.indexOf(?) != -1 ? &c=Your_Key: Your_Secret : ?c=Your_Key: Your_Secret; exportURL = exportURL + userKeyURL; var apiCodeSamples = `

te.getIndicatorData(country=`+ _country + `, indicators=` + _category + `)

$(body).append(feedback_uv) function Feedback() var subject = window.location.pathname; if dexOf(:)

-1) subject += %20market%20feedback; var redirectURL = redirectURL += ?subject= + subject; window.open(redirectURL);