;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

Brasil registra em 2021 maior entrada de dólares em seis anos, após 3 saldos negativos

Fluxo cambial total ficou positivo em US$ 6,134 bilhões - Por José de Castro
Fluxo cambial total ficou positivo em US$ 6,134 bilhões Imagem: Por José de Castro

05/01/2022 15h08

SÃO PAULO (Reuters) - O Brasil registrou em 2021 a maior entrada líquida de moeda estrangeira pelo câmbio contratado em seis anos, no equivalente a pouco mais de 6,1 bilhões de dólares, após três anos consecutivos de saldos negativos, mostraram dados do Banco Central nesta quarta-feira.

O fluxo cambial foi superavitário em 6,134 bilhões de dólares no acumulado do ano, melhor resultado desde 2015 (+9,414 bilhões de dólares).

A sobra de dólares, contudo, representa um volume modesto comparado com os 73,686 bilhões de dólares perdidos entre 2018 e 2020. Apenas em 2020, o déficit fora de 27,923 bilhões de dólares.

O acumulado do fluxo cambial vinha numa crescente até setembro, quando chegou a superar 22 bilhões de dólares, mas a partir de então as saídas de recursos aceleraram, num período em que o mercado se deparou com um combo que incluiu propagação do estresse financeiro no setor de construção chinês, rápida deterioração na expectativa fiscal do Brasil e preocupações com a inflação global.

Sobre o ano cheio, chama atenção a composição do resultado do fluxo.

Enquanto o fluxo financeiro conseguiu ficar menos negativo —saiu de déficits de 62,244 bilhões em 2019 e de 51,173 bilhões de dólares em 2020 para rombo de "apenas" 3,669 bilhões de dólares em 2021—, as operações comerciais minguaram, mostrando saldo positivo de 9,803 bilhões de dólares no ano ado, bem abaixo dos superávits de 23,250 bilhões de dólares em 2020 e de 17,475 bilhões de dólares de 2019.

Isso indica que "os exportadores não estão internalizando parte relevante dos recursos", comentou em nota Sérgio Goldenstein, chefe da área de estratégia da Renascença.

O fluxo positivo no ano de 2021 foi limitado por uma forte saída de recursos em dezembro, de 9,946 bilhões de dólares —a mais expressiva para qualquer mês desde dezembro de 2019 (-17,612 bilhões de dólares).

No acumulado do último bimestre do ano, o país perdeu 13,344 bilhões de dólares. Para Goldenstein, isso explica parte da pressão sobre a taxa de câmbio no período, levando o BC a realizar ofertas de liquidez no mercado à vista. Apenas em dezembro o Bacen liquidou a venda de 4,837 bilhões de dólares nessa modalidade.

Com a debandada de moeda no mês ado, os bancos tiveram de prover liquidez, o que elevou sua posição vendida na divisa no mercado à vista a 20,668 bilhões de dólares, maior valor desde março, quando ficou em 21,081 bilhões de dólares.

Ao longo de todo o ano ado o Bacen liquidou a venda de 11,982 bilhões de dólares no mercado à vista. Considerando operações de linhas, o BC liquidou a recompra de 4,900 bilhões de dólares em 2021.