CINXE.COM
INDICADORES ECONÓMICOS | ES | TRADINGECONOMICS.COM
<!doctype html> <html lang="es" xml:lang="es"> <head id="ctl00_Head1"><meta charset="utf-8" /><title> INDICADORES ECONÓMICOS | ES | TRADINGECONOMICS.COM </title><meta id="metaDesc" name="description" content="Vea más de 20 millones de indicadores económicos para 196 países. Obtenga indicadores gratuitos, datos históricos, gráficos, noticias y previsiones para 196 países." /><meta id="metaKeyword" name="keywords" content="Indicadores económicos, datos económicos, tasas de interés, previsiones del tipo de cambio, Trading Economics, comercio de divisas, señal de trading, recomendaciones de trading, señales de Forex, estrategias de trading, estrategias de trading en Forex." /><meta id="ctl00_metaLanguage" clienstidmode="Static" name="content-language" content="es" /><meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1" /><meta name="theme-color" content="#333333" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/css/bootstrap.min.css" integrity="sha512-SbiR/eusphKoMVVXysTKG/7VseWii+Y3FdHrt0EpKgpToZeemhqHeZeLWLhJutz/2ut2Vw1uQEj2MbRF+TVBUA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.10.2/font/bootstrap-icons.min.css" integrity="sha512-YFENbnqHbCRmJt5d+9lHimyEMt8LKSNTMLSaHjvsclnZGICeY/0KYEeiHwD1Ux4Tcao0h60tdcMv+0GljvWyHg==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link href="//d3fy651gv2fhd3.cloudfront.net/stylesheet.min.css?v=20250409" rel="stylesheet" /> <script type="text/javascript">var TEChartSettings = {}; var TESymbol = ''; var TECountry = ''; var TECategory = ''; var TEFrequency = ''; var TELanguage = 'es'; var TELastUpdate = '20250331000000'; var TEChartVersion = ''; var symbol = ''; var symbolType = ''; var hasCalendar = false; var isLoggedIn = false; var TERole = ""; var TEAlertsName = ''; var TEChartsDatasource = 'https://d3ii0wo49og5mi.cloudfront.net'; var IsMobile = false; var TEChartsMeta = ''; var TEForecast = []; var TEAuthorization = ''; var TESecurify = ''; var TESecurifyUrl = ''; var TEType = ''; var TEChartUrl = '/'; var TEComparable = 0; var isAlertsLoaded = false; var IsDarkMode = false; var isPakoLoaded = false; var TEChartsToken = '20240229:nazare'; var TEObfuscationkey = 'tradingeconomics-charts-core-api-key'; var isCopyright = false;</script> <script type="text/javascript">var DEBUG = false; if (window.location.host.indexOf('localhost') > -1) DEBUG = true; else if (window.location.href.indexOf('debug') > -1) DEBUG = true; if (!DEBUG) { if (!window.console) window.console = {}; var methods = ["log", "debug", "info"]; for (var i = 0; i < methods.length; i++) { console[methods[i]] = function () { }; } }</script> <link rel="icon" href="//d3fy651gv2fhd3.cloudfront.net/favicon.svg" type="image/svg+xml" /><link rel="canonical" href="https://es.tradingeconomics.com" /></head> <body > <script>IsDarkMode=false;</script> <form method="post" action="./" id="aspnetForm"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="pO/mV9yGn2BVBdpKWJQHPU0M9k64jyYTfuXvvm7PVRsjqB1+ISFRK7iPJrfJ4/lhOr08hW8av62Ku9iv54gFxXFtwjU=" /> </div> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" /> </div> <nav id="ctl00_NavigationUC1_ctl00_menu" class="navbar navbar-dark fixed-top" role="navigation"> <div class="container"> <div class="navbar-header navbar-header-search" id="searchMobileHeader"> <div class="d-flex justify-content-between"> <a class="navbar-brand" style="width: 100%"> <input type="text" placeholder="Search" id="thisIstheTinySearchBoxIdTag" autocomplete="off" class="nav-search-input-class navbar-search-2" /> </a> <ul id="thisIstheTinySearchResultsIdTag" class="dropdown-menu navbar-search-1"> <li> <div class="container-fluid"> <div id="dpSearch-resultCnt-tiny" class="dpTaResult"> </div> </div> </li> </ul> <div class="navbar-mobile-close-search"> <a noref class="navbar-mobile-item" id="thisIsTheTinyRemoveId"><i class="bi bi-x-lg"></i></a> </div> </div> </div> <div class="navbar-header navbar-collapse float-end" id="mainHeader"> <div class="d-flex"> <button type="button" class="navbar-toggler" data-bs-toggle="offcanvas" data-bs-target="#tesidemenu" aria-controls="tesidemenuoptions"> <span class="navbar-toggler-icon"></span> </button> <div class="logo-banner d-flex justify-content-between float-right"> <a class="navbar-brand" href="/"> <svg width="129" height="35" version="1.1" viewBox="0 0 34.131 9.2604" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" aria-label = "Trading Economics logo"> <g fill="#858585" stroke="#858585" stroke-width=".1" ><path d="m1.3315 8.5517v-3.7879h2.8086v0.64079h-2.0438v0.83974h1.9017v0.6382h-1.9017v1.0309h2.1162v0.6382z"/><path d="m7.2846 7.1591 0.74156 0.23513q-0.17053 0.62012-0.56844 0.92242-0.39532 0.29972-1.0051 0.29972-0.75448 0-1.2402-0.51418-0.48576-0.51676-0.48576-1.4108 0-0.94568 0.48834-1.4676 0.48834-0.52452 1.2842-0.52452 0.69505 0 1.1291 0.41083 0.25838 0.24288 0.38757 0.69763l-0.75706 0.18087q-0.067179-0.29456-0.28164-0.46509-0.21187-0.17053-0.51676-0.17053-0.42116 0-0.68471 0.30231-0.26097 0.30231-0.26097 0.97927 0 0.7183 0.25838 1.0232 0.25838 0.30489 0.67179 0.30489 0.30489 0 0.52452-0.19379 0.21962-0.19379 0.31523-0.60978z"/><path d="m8.5275 6.681q0-0.57878 0.17312-0.97152 0.12919-0.28939 0.3514-0.51935 0.22479-0.22996 0.49093-0.34106 0.35398-0.14986 0.81649-0.14986 0.83716 0 1.3384 0.51935 0.50385 0.51935 0.50385 1.4444 0 0.91726-0.49868 1.4366-0.49868 0.51676-1.3333 0.51676-0.84491 0-1.3436-0.51418-0.49868-0.51676-0.49868-1.4211zm0.78807-0.025838q0 0.64337 0.29714 0.97669 0.29714 0.33073 0.75448 0.33073 0.45734 0 0.74931-0.32815 0.29456-0.33073 0.29456-0.9896 0-0.65112-0.2868-0.97152-0.28422-0.32039-0.75706-0.32039-0.47284 0-0.76223 0.32556-0.28939 0.32298-0.28939 0.97669z"/><path d="m12.806 8.5517v-3.7879h0.74414l1.5503 2.5296v-2.5296h0.71055v3.7879h-0.7674l-1.527-2.4701v2.4701z"/><path d="m16.465 6.681q0-0.57878 0.17312-0.97152 0.12919-0.28939 0.3514-0.51935 0.22479-0.22996 0.49093-0.34106 0.35398-0.14986 0.81649-0.14986 0.83716 0 1.3384 0.51935 0.50384 0.51935 0.50384 1.4444 0 0.91726-0.49868 1.4366-0.49868 0.51676-1.3333 0.51676-0.84491 0-1.3436-0.51418-0.49868-0.51676-0.49868-1.4211zm0.78807-0.025838q0 0.64337 0.29714 0.97669 0.29714 0.33073 0.75448 0.33073t0.74931-0.32815q0.29456-0.33073 0.29456-0.9896 0-0.65112-0.2868-0.97152-0.28422-0.32039-0.75706-0.32039t-0.76223 0.32556q-0.28939 0.32298-0.28939 0.97669z"/><path d="m20.726 8.5517v-3.7879h1.1446l0.6873 2.5838 0.67955-2.5838h1.1472v3.7879h-0.71055v-2.9817l-0.75189 2.9817h-0.73639l-0.74931-2.9817v2.9817z"/><path d="m25.121 8.5517v-3.7879h0.76481v3.7879z"/><path d="m29.038 7.1591 0.74156 0.23513q-0.17053 0.62012-0.56844 0.92242-0.39532 0.29972-1.0051 0.29972-0.75448 0-1.2402-0.51418-0.48576-0.51676-0.48576-1.4108 0-0.94568 0.48834-1.4676 0.48834-0.52452 1.2842-0.52452 0.69505 0 1.1291 0.41083 0.25838 0.24288 0.38757 0.69763l-0.75706 0.18087q-0.06718-0.29456-0.28164-0.46509-0.21187-0.17053-0.51676-0.17053-0.42116 0-0.68471 0.30231-0.26097 0.30231-0.26097 0.97927 0 0.7183 0.25838 1.0232 0.25838 0.30489 0.67179 0.30489 0.30489 0 0.52452-0.19379 0.21962-0.19379 0.31523-0.60978z"/><path d="m30.242 7.3193 0.74414-0.072347q0.06718 0.37465 0.2713 0.55035 0.2067 0.1757 0.55552 0.1757 0.36949 0 0.55552-0.15503 0.18862-0.15761 0.18862-0.3669 0-0.13436-0.0801-0.22738-0.077514-0.095602-0.27388-0.16536-0.13436-0.046509-0.61237-0.16536-0.61495-0.15245-0.863-0.37465-0.34882-0.31264-0.34882-0.76223 0-0.28939 0.16278-0.54002 0.16536-0.25321 0.47284-0.38499 0.31006-0.13178 0.74672-0.13178 0.71314 0 1.0723 0.31264 0.36174 0.31264 0.37982 0.83457l-0.76481 0.03359q-0.04909-0.29197-0.21187-0.41858-0.1602-0.12919-0.48317-0.12919-0.33331 0-0.52193 0.13694-0.12144 0.08785-0.12144 0.23513 0 0.13436 0.11369 0.22996 0.14469 0.12144 0.7028 0.25321t0.82424 0.27389q0.26872 0.13953 0.41858 0.38499 0.15244 0.24288 0.15244 0.60203 0 0.32556-0.18087 0.60978-0.18087 0.28422-0.5116 0.42375-0.33073 0.13694-0.82424 0.13694-0.7183 0-1.1033-0.33073-0.38499-0.33331-0.45992-0.96893z"/></g> <g fill="#ddd" stroke="#ddd" stroke-width=".1" ><path d="m1.4629 4.2437v-2.8324h-1.0116v-0.57671h2.7091v0.57671h-1.0092v2.8324z"/><path d="m3.607 4.2437v-3.4091h1.4487q0.54648 0 0.79297 0.093018 0.24882 0.090692 0.39765 0.32556 0.14883 0.23487 0.14883 0.53718 0 0.3837-0.22557 0.63484-0.22557 0.24882-0.67438 0.31393 0.22324 0.13022 0.36742 0.28603 0.1465 0.1558 0.393 0.55345l0.41625 0.66508h-0.82321l-0.49764-0.74182q-0.2651-0.39765-0.36277-0.49997-0.097668-0.10464-0.20696-0.14185-0.1093-0.039532-0.34649-0.039532h-0.13953v1.4232zm0.68833-1.9673h0.50927q0.49532 0 0.61857-0.041858t0.19301-0.14418q0.069763-0.10232 0.069763-0.2558 0-0.17208-0.093018-0.27673-0.090692-0.10697-0.25812-0.13488-0.083716-0.011627-0.50229-0.011627h-0.53718z"/><path d="m10.118 4.2437h-0.74879l-0.29766-0.77437h-1.3627l-0.28138 0.77437h-0.73019l1.3278-3.4091h0.72786zm-1.2674-1.3488-0.46974-1.265-0.46044 1.265z"/><path d="m10.481 0.8346h1.2581q0.42556 0 0.6488 0.065112 0.29998 0.088367 0.51392 0.31393 0.21394 0.22557 0.32556 0.55345 0.11162 0.32556 0.11162 0.8046 0 0.4209-0.10464 0.72554-0.1279 0.37207-0.36509 0.60229-0.17906 0.17441-0.48369 0.27208-0.22789 0.072089-0.60926 0.072089h-1.2953zm0.68833 0.57671v2.258h0.51392q0.28835 0 0.41625-0.032556 0.16743-0.041858 0.27673-0.14185 0.11162-0.099994 0.18138-0.32789 0.06976-0.23022 0.06976-0.62554t-0.06976-0.60694-0.19534-0.33021q-0.12557-0.1186-0.31858-0.16046-0.14418-0.032556-0.56508-0.032556z"/><path d="m13.902 4.2437v-3.4091h0.68833v3.4091z"/><path d="m15.253 4.2437v-3.4091h0.66973l1.3953 2.2766v-2.2766h0.6395v3.4091h-0.69066l-1.3743-2.2231v2.2231z"/><path d="m20.271 2.9903v-0.57438h1.4836v1.3581q-0.21627 0.20929-0.62787 0.36974-0.40928 0.15813-0.83018 0.15813-0.53485 0-0.9325-0.22324-0.39765-0.22557-0.59764-0.64182-0.19999-0.41858-0.19999-0.90925 0-0.53253 0.22324-0.94645 0.22324-0.41393 0.65345-0.63484 0.32789-0.16976 0.81623-0.16976 0.63484 0 0.99064 0.26743 0.35812 0.2651 0.46044 0.73484l-0.68368 0.1279q-0.072088-0.25115-0.27208-0.39532-0.19766-0.1465-0.49532-0.1465-0.45114 0-0.71856 0.28603-0.2651 0.28603-0.2651 0.84879 0 0.60694 0.26975 0.91157 0.26975 0.30231 0.70693 0.30231 0.21627 0 0.43253-0.083716 0.21859-0.086041 0.3744-0.20696v-0.43253z"/></g> </svg> </a> <div class="d-flex align-items-center nav-options"> <div class="d-flex align-items-center nav-entry-link-group"> <a class="nav-entry-link" href="/calendar"><span class="d-none d-lg-inline-flex">Calendario</span></a> <a class="nav-entry-link" href="/stream"><span class="d-none d-lg-inline-flex">Noticias</span></a> <div class="dropdown"> <a href="#" class="dropdown d-flex nav-entry-link" data-bs-toggle="dropdown"><span class=" d-none d-lg-inline-flex">Mercados</span></a> <ul class="dropdown-menu nav-dropdown-menu"> <li class='dropdown-item nav-dropdown-item'><a href="/commodities">Materias Primas</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/stocks">índices</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/shares">Comparte</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/currencies">Monedas</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/crypto">Cripto</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/bonds">Bonos</a></li> </ul> </div> <a class="nav-entry-link" href="/indicators"><span class="d-none d-lg-inline-flex">Indicadores</span></a> <a class="nav-entry-link" href="/countries"><span class=" d-none d-lg-inline-flex">Países</span></a> <div class="dropdown"> <a href="#" class="dropdown d-flex nav-entry-link" data-bs-toggle="dropdown"><span class=" d-none d-lg-inline-flex">Expectativas</span></a> <ul class="dropdown-menu nav-dropdown-menu"> <li class='dropdown-item nav-dropdown-item'><a href="/forecast/commodity">Materias Primas</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/forecast/stock-market">índices</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/forecast/currency">Monedas</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/forecast/crypto">Cripto</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/forecast/government-bond-10y">Bonos</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/forecasts">Países</a></li> <li class='dropdown-item nav-dropdown-item'><a href="/indicators?g=forecast">Indicadores</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="offcanvas offcanvas-start" tabindex="-1" id="tesidemenu" aria-labelledby="tesidemenuoptions"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel"></h5> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div class="row navbar-nav-scroll" style="--bs-scroll-height: 95vh;"> <div class="accordion" id="accordionNavbar"> <div class="accordion-item"> <div class="accordion-header menu-main-option"><a class="nav-link accordion-button navmenu-mobile-item" href="/calendar" target="_self"><i class="bi bi-calendar3 me-2"></i>Calendario</a></div> </div> <div class="accordion-item"> <div class="accordion-header menu-main-option"><a class="nav-link accordion-button navmenu-mobile-item" href="/Stream" target="_self"><i class="bi bi-layout-text-sidebar me-2"></i>Noticias</a></div> </div> <div class="accordion-item"> <div class="accordion-header menu-main-option d-flex align-items-center"> <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseMarkets" aria-expanded="false" aria-controls="collapseTwo"> <i class="bi bi-arrow-down-up me-2"></i>Mercados <i class="bi bi-caret-up-fill ms-auto caret-toggle"></i> </button> </div> <div id="collapseMarkets" class="accordion-collapse collapse show" data-bs-parent="#accordionNavbar"> <div class="accordion-body mobile-accordion-body"> <ul class="nav navbar-nav navbarMobile"> <li><a class="navmobile-link nav-link" href="/commodities" target="_self">Materias Primas</a></li> <li><a class="navmobile-link nav-link" href="/stocks" target="_self">índices</a></li> <li><a class="navmobile-link nav-link" href="/shares" target="_self">Comparte</a></li> <li><a class="navmobile-link nav-link" href="/currencies" target="_self">Monedas</a></li> <li><a class="navmobile-link nav-link" href="/crypto" target="_self">Cripto</a></li> <li><a class="navmobile-link nav-link" href="/bonds" target="_self">Bonos</a></li> <li><a class="navmobile-link nav-link" href="/earnings" target="_self">Ganancias</a></li> <li><a class="navmobile-link nav-link" href="/holidays" target="_self">Vacaciones</a></li> </ul> </div> </div> </div> <div class="accordion-item"> <div class="accordion-header menu-main-option d-flex align-items-center"> <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCountries" aria-expanded="false" aria-controls="collapseTwo"> <i class="bi bi-globe me-2"></i>Países<i class="bi bi-caret-down-fill ms-auto caret-toggle"></i> </button> </div> <div id="collapseCountries" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar"> <div class="accordion-body mobile-accordion-body"> <ul class="nav navbar-nav navbarMobile"> <li><a class="navmobile-link nav-link" href="/united-states/indicators" target="_self">Estados Unidos</a></li> <li><a class="navmobile-link nav-link" href="/united-kingdom/indicators" target="_self">Reino Unido</a></li> <li><a class="navmobile-link nav-link" href="/euro-area/indicators" target="_self">Zona euro</a></li> <li><a class="navmobile-link nav-link" href="/australia/indicators" target="_self">Australia</a></li> <li><a class="navmobile-link nav-link" href="/canada/indicators" target="_self">Canadá</a></li> <li><a class="navmobile-link nav-link" href="/japan/indicators" target="_self">Japón</a></li> <li><a class="navmobile-link nav-link" href="/china/indicators" target="_self">China</a></li> <li><a class="navmobile-link nav-link" href="/brazil/indicators" target="_self">Brasil</a></li> <li><a class="navmobile-link nav-link" href="/russia/indicators" target="_self">Rusia</a></li> <li><a class="navmobile-link nav-link" href="/india/indicators" target="_self">India</a></li> <li><a class='navmobile-link nav-link' href="/countries" target="_self"><i class="bi bi-plus-square"></i> Más Países</a></li> </ul> </div> </div> </div> <div class="accordion-item"> <div class="accordion-header menu-main-option d-flex align-items-center"> <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseIndicators" aria-expanded="false" aria-controls="collapseTwo"> <i class="bi bi-bar-chart-fill me-2"></i>Indicadores <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i> </button> </div> <div id="collapseIndicators" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar"> <div class="accordion-body mobile-accordion-body"> <ul class="nav navbar-nav navbarMobile"> <li><a class="navmobile-link nav-link" href="/country-list/interest-rate" target="_self">Tasa De Interés</a></li> <li><a class="navmobile-link nav-link" href="/country-list/inflation-rate" target="_self">Tasa De Inflación</a></li> <li><a class="navmobile-link nav-link" href="/country-list/unemployment-rate" target="_self">Tasa de desempleo</a></li> <li><a class="navmobile-link nav-link" href="/country-list/gdp-growth-rate" target="_self">PIB - Tasa de crecimiento</a></li> <li><a class="navmobile-link nav-link" href="/country-list/gdp-per-capita" target="_self">PIB - Por habitante</a></li> <li><a class="navmobile-link nav-link" href="/country-list/current-account-to-gdp" target="_self">Cuenta corriente</a></li> <li><a class="navmobile-link nav-link" href="/country-list/gold-reserves" target="_self">Reservas de Oro</a></li> <li><a class="navmobile-link nav-link" href="/country-list/government-debt-to-gdp" target="_self">Deuda Del Estado</a></li> <li><a class="navmobile-link nav-link" href="/country-list/crude-oil-production" target="_self">Producción De Petróleo Crudo</a></li> <li><a class="navmobile-link nav-link" href="/country-list/gasoline-prices" target="_self">Precios De La Gasolina</a></li> <li><a class="navmobile-link nav-link" href="/country-list/rating" target="_self">Calificación Crediticia</a></li> <li><a class='navmobile-link nav-link' href="/indicators" target="_self"><i class="bi bi-plus-square"></i> Más Indicadores</a></li> </ul> </div> </div> </div> <div class="accordion-item"> <div class="accordion-header menu-main-option d-flex align-items-center"> <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseForecasts" aria-expanded="false" aria-controls="collapseTwo"> <i class="bi bi-graph-down-arrow me-2"></i>Expectativas <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i> </button> </div> <div id="collapseForecasts" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar"> <div class="accordion-body mobile-accordion-body"> <ul class="nav navbar-nav navbarMobile"> <li><a class='navmobile-link nav-link' href="/forecast/commodity">Materias Primas</a></li> <li><a class='navmobile-link nav-link' href="/forecast/stock-market">índices</a></li> <li><a class='navmobile-link nav-link' href="/forecast/currency">Monedas</a></li> <li><a class='navmobile-link nav-link' href="/forecast/crypto">Cripto</a></li> <li><a class='navmobile-link nav-link' href="/forecast/government-bond-10y">Bonos</a></li> <li><a class='navmobile-link nav-link' href="/forecasts">Países</a></li> <li><a class='navmobile-link nav-link' href="/indicators?g=forecast">Indicadores</a></li> </ul> </div> </div> </div> <div class="accordion-item d-block d-sm-none"> <div class="accordion-header menu-main-option d-flex align-items-center"> <button class="accordion-button navmenu-mobile-item collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseApps" aria-expanded="false" aria-controls="collapseTwo"> <i class="bi bi-phone me-2"></i>Apps <i class="bi bi-caret-down-fill ms-auto caret-toggle"></i> </button> </div> <div id="collapseApps" class="accordion-collapse collapse" data-bs-parent="#accordionNavbar"> <div class="accordion-body mobile-accordion-body"> <ul class="nav navbar-nav navbarMobile"> <li><a class="navmobile-link nav-link" href="https://itunes.apple.com/us/app/trading-economics/id1142178921?mt=8" target="_self">App Store</a></li> <li><a class="navmobile-link nav-link" href="https://play.google.com/store/apps/details?id=com.tradingeconomics.calendar" target="_self">Google Play</a></li> <li><a class="navmobile-link nav-link" href="https://www.twitter.com/teconomics" target="_self">Twitter</a></li> </ul> </div> </div> </div> <style> .form-switch { width: 3.5em !important; height: 2em !important } .bi-sun-fill { font-size: 12px; color: #ddd } .bi-moon-fill { font-size: 10px; color: #333 } .darkmode-toggle-container { width: auto; padding: 0px; margin-left: 0px; margin-top: 0px } .form-check-div-sun { width: 20px; margin-bottom: 2px; margin-left: -52px; position: relative } .form-check-div-moon { width: 20px; margin-bottom: 3px; margin-left: 3px; position: relative } </style> <div class="accordion-item"> <div class=" accordion-header d-flex align-items-center darkmode-toggle-container" style="padding: 10px 0px 10px 20px !important"> <div class="form-check form-switch darkmode-form-switch"> <input class="form-check-input p-1" type="checkbox" role="button" id="flexSwitchCheckChecked"> </div> <div class="form-check-div-sun"> <label class="form-check-label form-check-label-sun p-1 d-inline" for="flexSwitchCheckChecked"><i class="bi bi-sun-fill"></i></label> </div> <div class="form-check-div-moon"> <label class="form-check-label form-check-label-moon p-1 d-inline" for="flexSwitchCheckChecked"><i class="bi bi-moon-fill"></i></label> </div> </div> </div> <script> function SetTheme(isDark) { console.log('Changing theme', isDark); if (IsDarkMode != isDark) { IsDarkMode = isDark; document.body.classList.toggle("dark-theme"); // Set cookie const d = new Date(); d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000)); let expires = "expires=" + d.toUTCString(); document.cookie = "IsDarkMode" + "=" + IsDarkMode + ";" + expires + ";path=/"; IsDarkMode ? ga('event', 'te_darkmode_on') : ga('event', 'te_darkmode_off'); window.location.reload(); } } document.addEventListener('DOMContentLoaded', function () { let checkbox = document.getElementById("flexSwitchCheckChecked"); let sundiv = document.getElementsByClassName("form-check-label-sun")[0]; let moondiv = document.getElementsByClassName("form-check-label-moon")[0]; if (IsDarkMode) { sundiv.classList.add("d-none"); moondiv.classList.remove("d-none"); } else { moondiv.classList.add("d-none"); sundiv.classList.remove("d-none"); } checkbox.checked = IsDarkMode; }); document.getElementById("flexSwitchCheckChecked").addEventListener("change", function () { SetTheme(!IsDarkMode) }); </script> <div class="accordion-item d-block d-md-none" style="border: none"> <div class="accordion-header accordion-last-item" style="padding: 30px 0px !important;"></div> </div> </div> </div> </div> </div> </nav> <script> document.addEventListener('DOMContentLoaded', function () { let accordionHeaders = document.querySelectorAll('.menu-main-option'); accordionHeaders.forEach(function (header) { header.addEventListener('click', function () { let caretIcon = header.querySelector('.caret-toggle'); let allCaretIcons = document.querySelectorAll('.menu-main-option .caret-toggle'); allCaretIcons.forEach(function (icon) { if (icon !== caretIcon) { icon.classList.remove('bi-caret-up-fill'); icon.classList.add('bi-caret-down-fill'); } }); caretIcon.classList.toggle('bi-caret-down-fill'); caretIcon.classList.toggle('bi-caret-up-fill'); }); }); }); </script> <div class="container"> <div class="row te-content"> <div class='col-xl-12' role="main"> <style>body{background-color:#f2f2f2;padding-top:70px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{padding-right:10px;padding-left:10px}@media only screen and (max-width:575px){body{padding-top:55px!important}.thumbnail{padding:5px}}</style> <div class="row"> <div class='col-lg-8'> <style> .headline-title{ font-size: 23px; line-height: 1.2em; font-weight: bold; color: #fff; } .headline-content { padding: 15px; padding-top: 30px; padding-bottom: 22px; } .headline-content { max-width: 550px;} </style> <div id="ctl00_ContentPlaceHolder1__ff971b90b813ccb5_panel1"> <style>.headlines{min-height: 310px; background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://d1koue9segiqoj.cloudfront.net/2021/Wall%20Street%206.jpeg'); background-size: cover; background-position: center; background-repeat: no-repeat;}</style> <div class="thumbnail headlines"> <div class="row"> <div class="col-lg-12"> <div class="headline-content"> <a href='/stocks' style="text-decoration: none"> <span class="headline-title" href='/stocks'> Acciones se disparan por pausa arancelaria en EE. UU </span> <br /> <br /> <span class="headlines-description" style="color: #fff">El Nasdaq 100 se disparó un 12,2%, su mayor aumento en un día desde 2001, mientras que el S&P 500 subió un 9,5%, registrando su mayor salto desde 2008. El Dow Jones ganó 2.963 puntos, su aumento más significativo desde marzo de 2020, después de que el presidente Trump anunciara que EE. UU. pausaría sus aranceles recíprocos a países que no han tomado represalias durante 90 días. A su vez, el presidente de EE. UU. aumentó las tensiones con China al incrementar sus aranceles al 125% en respuesta a la represalia de China.</span> </a> <br /> </div> </div> </div> </div> </div> <style> .home-tile-outside { height: 226px } .home-tile-inside { padding-left: 5px; padding-top: 5px; display: flex; flex-direction: column; height: 100%; padding-bottom: 13px; } .home-tile-description { overflow: hidden; text-overflow: ellipsis; flex-grow: 1; } #hometiles { padding-left: 2px; padding-right: 2px } .more-news { width: 100%; text-align: right; text-decoration: underline; margin-top: -15px; margin-bottom: 5px } @media only screen and (max-width:428px) { .home-tile-outside { height: unset } .home-tile-inside { padding: 15px } #hometiles { margin-top: -15px } #hometiles .thumbnail { margin-bottom: 5px } .more-news { margin-top: 10px; text-align: left; margin-bottom: 20px } } .home-tile-timespan { color: #808080; text-align: left; width: 100%; font-size: 0.8em; margin-top: 9px } </style> <div class="row" id="hometiles"> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/united-states/interest-rate' style="text-decoration: none;"> <div class="home-tile-inside"> <b>Minutas del FOMC resaltan preocupaciones de inflación vinculadas a aranceles</b> <div class="home-tile-description">Los responsables de la Fed esperaban que la inflación se viera impulsada este año debido al impacto de los aranceles elevados, aunque reconocieron una considerable incertidumbre en torno a la magnitud y persistencia de estos efectos, según las actas de la última reunión del FOMC en marzo de 2025. Al mismo tiempo, la mayoría de los funcionarios destacaron la posibilidad de que las presiones inflacionarias de diversas fuentes pudieran resultar más persistentes de lo previamente anticipado. Casi todos los participantes consideraron que los riesgos de inflación estaban sesgados al alza, mientras que los riesgos para el empleo se percibían sesgados a la baja. La Fed mantuvo la tasa de fondos federales sin cambios en 4.25%-4.5% durante su reunión de marzo de 2025, prolongando la pausa en su ciclo de recortes de tasas que comenzó en enero, en línea con las expectativas. La Fed también elevó sus expectativas de inflación para 2025 y 2026 y rebajó sus pronósticos de crecimiento para 2025, aunque aún anticipa reducir las tasas de interés en alrededor de 50 puntos básicos este año, igual que en la proyección de diciembre.</div> <div class="home-tile-timespan"> hace 4 horas </div> </div> </a> </div> </div> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/commodity/copper' style="text-decoration: none;"> <div class="home-tile-inside"> <b>El cobre se dispara un 8% tras la histórica venta masiva</b> <div class="home-tile-description">Los futuros de cobre en EE. UU. se dispararon un 8.5% a $4.4 por libra el miércoles después de probar mínimos de tres meses de $4.05 más temprano en la sesión, recibiendo algo de alivio después de que el presidente de EE. UU., Trump, pausara su paquete de aranceles recíprocos por 90 días. Los aranceles recíprocos inicialmente excluyeron al cobre, pero la medida avivó las esperanzas de que los países pudieran lograr acuerdos con EE. UU. durante el período para eliminar barreras comerciales más agudas que presionarían el crecimiento global y la demanda manufacturera. Aun así, los futuros de cobre están casi un 20% por debajo de su máximo histórico de $5.3 alcanzado el 26 de marzo, ya que EE. UU. señaló que aún impondrá aranceles específicamente dirigidos al cobre en las próximas semanas. La amenaza amplió la prima de los futuros de cobre en EE. UU. frente a contratos comparables en la LME debido al estrés que las barreras comerciales ejercerían sobre la capacidad limitada de fundición de cobre en EE. UU.</div> <div class="home-tile-timespan"> hace 4 horas </div> </div> </a> </div> </div> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/united-states/government-bond-yield' style="text-decoration: none;"> <div class="home-tile-inside"> <b>La venta de bonos del Tesoro de EE. UU. se modera</b> <div class="home-tile-description">El rendimiento del bono del Tesoro estadounidense a 10 años retrocedió desde su máximo de la sesión para cotizar alrededor del 4.4%, tras el anuncio del Presidente Trump de una suspensión de 90 días de los aranceles recíprocos más altos para docenas de socios comerciales, con efecto inmediato. Al mismo tiempo, los aranceles sobre las importaciones chinas se elevaron al 125%, desde el 104% anterior. Mientras tanto, el Tesoro de EE. UU. subastó $39 mil millones en bonos a 10 años, con una demanda considerada robusta, ofreciendo algo de alivio al mercado. Más temprano en la sesión, el rendimiento de referencia había subido hasta 20 puntos básicos a 4.5%, reflejando la creciente ansiedad de los inversores tras el anuncio de aranceles de Trump. Las preocupaciones se intensificaron aún más por el movimiento de represalia de China de imponer un arancel adicional del 50%, así como por la aprobación de la UE de aranceles dirigidos a €21 mil millones en bienes estadounidenses. Informes de ventas extranjeras y señales de un cambio más amplio hacia el efectivo sugirieron que los inversores estaban liquidando posiciones, alimentando temores de que los bonos del Tesoro de EE. UU. puedan estar perdiendo su estatus tradicional de refugio seguro.</div> <div class="home-tile-timespan"> hace 5 horas </div> </div> </a> </div> </div> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/commodity/crude-oil' style="text-decoration: none;"> <div class="home-tile-inside"> <b>El petróleo crudo rebota por encima de $62</b> <div class="home-tile-description">Los futuros del petróleo crudo WTI repuntaron bruscamente el miércoles, subiendo más del 4% para cotizar por encima de los $62 por barril, a medida que se aliviaban los temores de recesión y mejoraba la perspectiva de la demanda de energía. La recuperación siguió a la decisión del presidente Trump de suspender aranceles recíprocos para la mayoría de los países durante los próximos 90 días, una medida que calmó los mercados y revivió el apetito por activos de riesgo. Aunque China sigue excluida de la suspensión, con aranceles a sus exportaciones ahora elevados al 125% en respuesta a su última ronda de represalias, la amplia desescalada en las tensiones comerciales ayudó a restaurar la confianza en los mercados de materias primas. Apoyando aún más el repunte, el último informe de la EIA reveló una disminución en las existencias de gasolina y destilados mayor de lo esperado, lo que ayudó a compensar un modesto aumento en las reservas de crudo. Mientras tanto, comentarios de funcionarios de la OPEP+ insinuando posibles retrasos en los aumentos de producción previamente anunciados ayudaron a moderar las preocupaciones por el exceso de oferta y reforzaron el repunte de los precios.</div> <div class="home-tile-timespan"> hace 5 horas </div> </div> </a> </div> </div> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/mexico/inflation-cpi' style="text-decoration: none;"> <div class="home-tile-inside"> <b>La inflación en México sube como se esperaba</b> <div class="home-tile-description">La tasa de inflación en México aumentó ligeramente a 3.80% en marzo de 2025 desde el 3.77% del mes anterior, en línea con las expectativas del mercado, siendo la más alta en lo que va del año, pero permaneciendo por debajo del umbral superior del objetivo del 4% del Banco de México. La inflación fue mayor para alimentos, alcohol y tabaco (4.15% vs 3.78% en febrero) pero disminuyó ligeramente para la vivienda (3.64% vs 3.75%). Mientras tanto, la tasa de inflación subyacente se mantuvo prácticamente sin cambios en 3.64%.</div> <div class="home-tile-timespan"> hace 11 horas </div> </div> </a> </div> </div> <div class="col-lg-4 col-md-6 col-xs-12"> <div class="thumbnail home-tile-outside"> <a href='/united-states/mortgage-applications' style="text-decoration: none;"> <div class="home-tile-inside"> <b>Solicitudes de Hipotecas en EE.UU. Aumentan un 20%</b> <div class="home-tile-description">Los volúmenes de solicitudes de hipotecas en EE. UU. aumentaron un 20% respecto a la semana anterior en la primera semana de abril, más que compensando las tres caídas consecutivas de los períodos anteriores, según datos recopilados por la Asociación de Banqueros Hipotecarios. El aumento estuvo en línea con la caída de 9 puntos básicos en las tasas hipotecarias de referencia, siguiendo la caída en los bonos del Tesoro a largo plazo y los valores respaldados por hipotecas (MBS), ya que los indicios de una guerra comercial entre EE. UU. y sus principales socios comerciales desencadenaron una huida hacia la renta fija en el período. Las solicitudes para un contrato de refinanciamiento de hipoteca, que son más sensibles a los cambios a corto plazo en las tasas de interés, aumentaron un 35%. A su vez, las solicitudes para una hipoteca para comprar una vivienda aumentaron un 9%.</div> <div class="home-tile-timespan"> hace 12 horas </div> </div> </a> </div> </div> </div> </div> <div class='col-lg-4'> <style> #market-widget .nav {flex-wrap:nowrap;}#market-widget .nav>li>a {padding-left: 3px;padding-right: 3px;outline:none;} #market-widget .nav>li>a { font-size: 13px;}#market-widget .nav>li>a {padding-left: 5px;padding-right: 5px;} .market-widget-thead{font-size: 12px;}.market-widget-th-left{text-align: left;}.market-widget-th-center{text-align: center;}.market-widget-row{padding: 0px;}.market-widget-first{padding-left: 10px!important; max-width: 80px; overflow: hidden;}.market-widget-last{text-align: center;max-width: 70px; overflow: hidden;}.market-widget-change{text-align: left; min-width: 70px}.market-widget-pct{text-align: center;} @media only screen and (max-width: 380px) {#market-widget .nav > li > a {padding-left: 3px;padding-right: 3px;}} .modal{ --bs-modal-header-border-color: none !important; --bs-modal-footer-border-color:none !important; } </style> <style> .market-widget-thead { display:none } </style> <div id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Panel1"> <div id="market-widget" class="card"> <ul class="nav nav-tabs " role="tablist" id="mainWidget"> <li role="presentation" class="nav-item"><a aria-current="page" href="#Commodity" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab">Mercadoria</a></li> <li role="presentation" class="nav-item"><a aria-current="page" href="#Index" class="active nav-link d-table-cell" role="tab" data-bs-toggle="tab">Índice</a></li> <li role="presentation" class="nav-item d-lg-none d-xl-block"><a aria-current="page" href="#Share" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab">Acciones</a></li> <li role="presentation" class="nav-item"><a aria-current="page" href="#FX" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab">Forex</a></li> <li role="presentation" class="nav-item"><a aria-current="page" href="#Crypto" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab">Cripto</a></li> <li role="presentation" class="nav-item"><a aria-current="page" href="#Bond" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab">Bono</a></li> </ul> <div class="tab-content" style="margin-bottom: -15px"> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl00$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl00_group" value="Commodity" /> <div role="tabpanel" class="tab-pane fade show " id='Commodity'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="CL1:COM" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/crude-oil">Petróleo Crudo</a> </td> <td id="p" class="market-widget-last"> 63.084 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 3.50 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.88% </td> </tr> <tr class='datatable-row-alternating' data-symbol="CO1:COM" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/brent-crude-oil">Brent</a> </td> <td id="p" class="market-widget-last"> 66.099 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 3.28 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.22% </td> </tr> <tr class='datatable-row' data-symbol="NG1:COM" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/natural-gas">Gas Natural</a> </td> <td id="p" class="market-widget-last"> 3.7346 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.27 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 7.78% </td> </tr> <tr class='datatable-row-alternating' data-symbol="XB1:COM" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/gasoline">Gasolina</a> </td> <td id="p" class="market-widget-last"> 2.0474 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.10 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 4.91% </td> </tr> <tr class='datatable-row' data-symbol="HO1:COM" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/heating-oil">Petróleo para calefacción</a> </td> <td id="p" class="market-widget-last"> 2.1251 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.12 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.76% </td> </tr> <tr class='datatable-row-alternating' data-symbol="XAUUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/gold">Oro</a> </td> <td id="p" class="market-widget-last"> 3080.15 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 101.80 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 3.42% </td> </tr> <tr class='datatable-row' data-symbol="XAGUSD:CUR" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/silver">Plata</a> </td> <td id="p" class="market-widget-last"> 30.872 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 1.28 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 4.32% </td> </tr> <tr class='datatable-row-alternating' data-symbol="HG1:COM" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/copper">Cobre</a> </td> <td id="p" class="market-widget-last"> 4.4061 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.35 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 8.66% </td> </tr> <tr class='datatable-row' data-symbol="S 1:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/soybeans">Soya</a> </td> <td id="p" class="market-widget-last"> 1012.75 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 20.00 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 2.01% </td> </tr> <tr class='datatable-row-alternating' data-symbol="W 1:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/wheat">Trigo</a> </td> <td id="p" class="market-widget-last"> 542.25 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 2.25 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.42% </td> </tr> <tr class='datatable-row' data-symbol="XAL1:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/coal">Carbón</a> </td> <td id="p" class="market-widget-last"> 98.00 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.50 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.51% </td> </tr> <tr class='datatable-row-alternating' data-symbol="JBP:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/steel">Acero</a> </td> <td id="p" class="market-widget-last"> 3028.00 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 32.00 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -1.05% </td> </tr> <tr class='datatable-row' data-symbol="NGEU:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/eu-natural-gas">Gas TTF</a> </td> <td id="p" class="market-widget-last"> 33.46 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 2.07 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -5.83% </td> </tr> <tr class='datatable-row-alternating' data-symbol="LB1:COM" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/commodity/lumber">Madera</a> </td> <td id="p" class="market-widget-last"> 596.59 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 22.51 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 3.92% </td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/commodities">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl01$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl01_group" value="Currency" /> <div role="tabpanel" class="tab-pane fade show " id='FX'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="EURUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/euro-area/currency">EURUSD</a> </td> <td id="p" class="market-widget-last"> 1.09513 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0002 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.01% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GBPUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-kingdom/currency">GBPUSD</a> </td> <td id="p" class="market-widget-last"> 1.28181 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0002 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.01% </td> </tr> <tr class='datatable-row' data-symbol="AUDUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/australia/currency">AUDUSD</a> </td> <td id="p" class="market-widget-last"> 0.61530 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0002 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.02% </td> </tr> <tr class='datatable-row-alternating' data-symbol="NZDUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/new-zealand/currency">NZDUSD</a> </td> <td id="p" class="market-widget-last"> 0.56502 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0003 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.05% </td> </tr> <tr class='datatable-row' data-symbol="USDJPY:CUR" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/japan/currency">USDJPY</a> </td> <td id="p" class="market-widget-last"> 147.713 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.0025 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> 0.00% </td> </tr> <tr class='datatable-row-alternating' data-symbol="USDCNY:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/china/currency">USDCNY</a> </td> <td id="p" class="market-widget-last"> 7.34498 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.0040 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.05% </td> </tr> <tr class='datatable-row' data-symbol="USDCHF:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/switzerland/currency">USDCHF</a> </td> <td id="p" class="market-widget-last"> 0.85600 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.0014 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.16% </td> </tr> <tr class='datatable-row-alternating' data-symbol="USDCAD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/canada/currency">USDCAD</a> </td> <td id="p" class="market-widget-last"> 1.40891 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0007 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.05% </td> </tr> <tr class='datatable-row' data-symbol="USDMXN:CUR" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/mexico/currency">USDMXN</a> </td> <td id="p" class="market-widget-last"> 20.2744 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0308 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.15% </td> </tr> <tr class='datatable-row-alternating' data-symbol="USDINR:CUR" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/india/currency">USDINR</a> </td> <td id="p" class="market-widget-last"> 86.3160 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.1250 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.14% </td> </tr> <tr class='datatable-row' data-symbol="USDBRL:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/brazil/currency">USDBRL</a> </td> <td id="p" class="market-widget-last"> 5.81920 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.1931 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -3.21% </td> </tr> <tr class='datatable-row-alternating' data-symbol="USDRUB:CUR" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/russia/currency">USDRUB</a> </td> <td id="p" class="market-widget-last"> 86.1505 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.3008 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.35% </td> </tr> <tr class='datatable-row' data-symbol="USDKRW:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/south-korea/currency">USDKRW</a> </td> <td id="p" class="market-widget-last"> 1446.80 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 40.2900 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -2.71% </td> </tr> <tr class='datatable-row-alternating' data-symbol="DXY:CUR" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-states/currency">DXY</a> </td> <td id="p" class="market-widget-last"> 102.964 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0094 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.01% </td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/currencies">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl02$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl02_group" value="Index" /> <div role="tabpanel" class="tab-pane fade show active" id='Index'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> <th class=''></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="SPX:IND" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-states/stock-market">US500</a> </td> <td id="p" class="market-widget-last"> 5472.84 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 490 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 9.84% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="INDU:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/indu:ind">US30</a> </td> <td id="p" class="market-widget-last"> 40866 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 3,221 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 8.55% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="US100:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/us100:ind">US100</a> </td> <td id="p" class="market-widget-last"> 19208 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 2,117 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 12.39% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="NKY:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/japan/stock-market">JP225</a> </td> <td id="p" class="market-widget-last"> 31714 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 1,299 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -3.93% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="UKX:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-kingdom/stock-market">GB100</a> </td> <td id="p" class="market-widget-last"> 7679 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 231 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -2.92% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="DAX:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/germany/stock-market">DE40</a> </td> <td id="p" class="market-widget-last"> 19671 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 609 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -3.00% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="CAC:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/france/stock-market">FR40</a> </td> <td id="p" class="market-widget-last"> 6863 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 237 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -3.34% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="FTSEMIB:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/italy/stock-market">IT40</a> </td> <td id="p" class="market-widget-last"> 32731 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 926 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -2.75% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="IBEX:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/spain/stock-market">ES35</a> </td> <td id="p" class="market-widget-last"> 11798 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 268 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -2.22% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="AS51:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/australia/stock-market">ASX200</a> </td> <td id="p" class="market-widget-last"> 7375 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 135 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -1.80% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="SHCOMP:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/china/stock-market">SHANGHAI</a> </td> <td id="p" class="market-widget-last"> 3187 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 41 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 1.31% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="SENSEX:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/india/stock-market">SENSEX</a> </td> <td id="p" class="market-widget-last"> 73847 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 380 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.51% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row' data-symbol="SPTSX:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/canada/stock-market">TSX</a> </td> <td id="p" class="market-widget-last"> 23727 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 1,220 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.42% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> <tr class='datatable-row-alternating' data-symbol="INDEXCF:IND" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/russia/stock-market">MOEX</a> </td> <td id="p" class="market-widget-last"> 2645 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 101 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -3.69% </td> <td id='session' class='d-none d-md-table-cell'><span class='bi bi-clock' style='font-size:10px; color: darkred' title='closed trading session'></span></td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/stocks">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl03$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl03_group" value="Stocks" /> <div role="tabpanel" class="tab-pane fade show " id='Share'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="AAPL:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/aapl:us">Apple</a> </td> <td id="p" class="market-widget-last"> 198.60 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 26.22 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 15.21% </td> </tr> <tr class='datatable-row-alternating' data-symbol="TSLA:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/tsla:us">Tesla</a> </td> <td id="p" class="market-widget-last"> 271.23 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 50.23 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 22.73% </td> </tr> <tr class='datatable-row' data-symbol="MSFT:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/msft:us">Microsoft</a> </td> <td id="p" class="market-widget-last"> 390.27 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 36.08 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 10.19% </td> </tr> <tr class='datatable-row-alternating' data-symbol="AMZN:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/amzn:us">Amazon</a> </td> <td id="p" class="market-widget-last"> 191.09 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 20.41 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 11.96% </td> </tr> <tr class='datatable-row' data-symbol="FB:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/fb:us">Meta</a> </td> <td id="p" class="market-widget-last"> 584.23 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 74.68 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 14.66% </td> </tr> <tr class='datatable-row-alternating' data-symbol="NVDA:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/nvda:us">Nvidia</a> </td> <td id="p" class="market-widget-last"> 114.36 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 18.33 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 19.09% </td> </tr> <tr class='datatable-row' data-symbol="V:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/v:us">Visa</a> </td> <td id="p" class="market-widget-last"> 332.70 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 25.02 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 8.13% </td> </tr> <tr class='datatable-row-alternating' data-symbol="JPM:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/jpm:us">JPMorgan</a> </td> <td id="p" class="market-widget-last"> 234.89 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 18.49 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 8.54% </td> </tr> <tr class='datatable-row' data-symbol="INTC:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/intc:us">Intel</a> </td> <td id="p" class="market-widget-last"> 21.47 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 3.32 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 18.29% </td> </tr> <tr class='datatable-row-alternating' data-symbol="JNJ:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/jnj:us">J&J</a> </td> <td id="p" class="market-widget-last"> 150.93 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 1.30 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.87% </td> </tr> <tr class='datatable-row' data-symbol="PG:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/pg:us">P&G</a> </td> <td id="p" class="market-widget-last"> 162.34 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 4.16 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 2.63% </td> </tr> <tr class='datatable-row-alternating' data-symbol="XOM:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/xom:us">Exxon Mobil</a> </td> <td id="p" class="market-widget-last"> 105.91 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 5.23 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.19% </td> </tr> <tr class='datatable-row' data-symbol="GOOG:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/goog:us">Alphabet</a> </td> <td id="p" class="market-widget-last"> 161.39 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 15.00 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 10.25% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GS:US" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/gs:us">Goldman Sachs</a> </td> <td id="p" class="market-widget-last"> 517.94 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 56.44 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 12.23% </td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/stocks">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl04$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl04_group" value="Bond" /> <div role="tabpanel" class="tab-pane fade show " id='Bond'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="USGG10YR:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-states/government-bond-yield">Estados Unidos</a> </td> <td id="p" class="market-widget-last"> 4.3560 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.096 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.10% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GUKG10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/united-kingdom/government-bond-yield">Reino Unido</a> </td> <td id="p" class="market-widget-last"> 4.8150 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.207 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.21% </td> </tr> <tr class='datatable-row' data-symbol="GJGB10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/japan/government-bond-yield">Japón</a> </td> <td id="p" class="market-widget-last"> 1.2820 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.003 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.00% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GACGB10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/australia/government-bond-yield">Australia</a> </td> <td id="p" class="market-widget-last"> 4.3920 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.177 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.18% </td> </tr> <tr class='datatable-row' data-symbol="GDBR10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/germany/government-bond-yield">Alemania</a> </td> <td id="p" class="market-widget-last"> 2.5800 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.045 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.05% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GEBR10Y:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/brazil/government-bond-yield">Brasil</a> </td> <td id="p" class="market-widget-last"> 14.8580 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.013 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.01% </td> </tr> <tr class='datatable-row' data-symbol="RUGE10Y:GOV" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/russia/government-bond-yield">Rusia</a> </td> <td id="p" class="market-widget-last"> 16.1300 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.340 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.34% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GIND10YR:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/india/government-bond-yield">India</a> </td> <td id="p" class="market-widget-last"> 6.4450 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.028 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.03% </td> </tr> <tr class='datatable-row' data-symbol="GCAN10YR:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/canada/government-bond-yield">Canadá</a> </td> <td id="p" class="market-widget-last"> 3.2040 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.067 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.07% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GBTPGR10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/italy/government-bond-yield">Italia</a> </td> <td id="p" class="market-widget-last"> 3.8850 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.028 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.03% </td> </tr> <tr class='datatable-row' data-symbol="GFRN10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/france/government-bond-yield">Francia</a> </td> <td id="p" class="market-widget-last"> 3.3920 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.001 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> 0.00% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GSAB10YR:GOV" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/south-africa/government-bond-yield">Sudáfrica</a> </td> <td id="p" class="market-widget-last"> 11.0600 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.100 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 0.10% </td> </tr> <tr class='datatable-row' data-symbol="GCNY10YR:GOV" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/china/government-bond-yield">China</a> </td> <td id="p" class="market-widget-last"> 1.6590 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.011 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.01% </td> </tr> <tr class='datatable-row-alternating' data-symbol="GSWISS10:IND" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/switzerland/government-bond-yield">Suiza</a> </td> <td id="p" class="market-widget-last"> 0.4850 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.004 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> 0.00% </td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/bonds">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$ctl02$MarketsTableWidget$Repeater1$ctl05$group" id="ctl00_ContentPlaceHolder1_ctl02_MarketsTableWidget_Repeater1_ctl05_group" value="Crypto" /> <div role="tabpanel" class="tab-pane fade show " id='Crypto'> <table class="table table-condensed" style="padding-bottom: -10px;"> <thead class="market-widget-thead"> <tr> <th> </th> <th style="text-align: center;"></th> <th style="text-align: left;" class="d-lg-none d-xl-table-cell"></th> <th style="text-align: center;"></th> </tr> </thead> <tbody> <tr class='datatable-row' data-symbol="BTCUSD:CUR" data-decimals="0"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/btcusd:cur">Bitcoin</a> </td> <td id="p" class="market-widget-last"> 83015 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 6,728 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 8.82% </td> </tr> <tr class='datatable-row-alternating' data-symbol="ETHUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/ethusd:cur">Ether</a> </td> <td id="p" class="market-widget-last"> 1671.60 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 198.2000 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 13.45% </td> </tr> <tr class='datatable-row' data-symbol="BNBUSD:CUR" data-decimals="1"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/bnbusd:cur">Binance</a> </td> <td id="p" class="market-widget-last"> 582.9 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 29.8200 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 5.39% </td> </tr> <tr class='datatable-row-alternating' data-symbol="ADAUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/adausd:cur">Cardano</a> </td> <td id="p" class="market-widget-last"> 0.63865 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0803 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 14.39% </td> </tr> <tr class='datatable-row' data-symbol="SOLUSD:CUR" data-decimals="4"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/solusd:cur">Solana</a> </td> <td id="p" class="market-widget-last"> 119.2000 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 13.6698 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 12.95% </td> </tr> <tr class='datatable-row-alternating' data-symbol="XRPUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/xrpusd:cur">Ripple</a> </td> <td id="p" class="market-widget-last"> 2.06506 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.2689 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 14.97% </td> </tr> <tr class='datatable-row' data-symbol="DOTUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/dotusd:cur">Polkadot</a> </td> <td id="p" class="market-widget-last"> 3.68 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.3139 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 9.31% </td> </tr> <tr class='datatable-row-alternating' data-symbol="AVXUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/avxusd:cur">Avalanche</a> </td> <td id="p" class="market-widget-last"> 18.55 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 2.4300 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 15.07% </td> </tr> <tr class='datatable-row' data-symbol="MTCUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/mtcusd:cur">Polygon</a> </td> <td id="p" class="market-widget-last"> 0.19 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0221 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 13.29% </td> </tr> <tr class='datatable-row-alternating' data-symbol="ATMUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/atmusd:cur">Cosmos</a> </td> <td id="p" class="market-widget-last"> 4.55 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.3857 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 9.26% </td> </tr> <tr class='datatable-row' data-symbol="DAIUSD:CUR" data-decimals="5"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/daiusd:cur">Dai</a> </td> <td id="p" class="market-widget-last"> 0.99991 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-negative-image'></span> 0.0002 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-negative"> -0.02% </td> </tr> <tr class='datatable-row-alternating' data-symbol="LTCUSD:CUR" data-decimals="3"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/ltcusd:cur">Litecoin</a> </td> <td id="p" class="market-widget-last"> 76.700 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 7.6200 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 11.03% </td> </tr> <tr class='datatable-row' data-symbol="UNIUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/uniusd:cur">Uniswap</a> </td> <td id="p" class="market-widget-last"> 5.45 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.6790 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 14.23% </td> </tr> <tr class='datatable-row-alternating' data-symbol="ALGUSD:CUR" data-decimals="2"> <td class="datatable-item-first" style="text-wrap: auto"> <a href="/algusd:cur">Algorand</a> </td> <td id="p" class="market-widget-last"> 0.18 </td> <td id="nch" class="datatable-item d-lg-none d-xl-table-cell " style="text-align: left; min-width: 70px"> <span class='market-positive-image'></span> 0.0306 </td> <td id="pch" class="market-widget-pct calendar-item calendar-item-positive"> 19.91% </td> </tr> </tbody> <tfoot> <tr> <td colspan="2" class="more-link"><a style="text-decoration: underline" aria-label = "Read more" href="/crypto">Más</a></td> <td colspan="4" class="widget-link" style="display:none "> <div class="plus-sign-widget"> <a style="font-size:12px" aria-label="Add widgets" href="javascript:void(0);"onclick="showWidgetModal();"> <i class="bi bi-plus-square-fill"></i> Add to your site</a> </div> </td> </tr> </tfoot> </table> </div> </div> </div> </div> <script> function redirectToAPI() { window.location.href = "https://tradingeconomics.com/api/widgets.aspx?source=markets-widget"; } function showWidgetModal() { if (isLoggedIn) { return redirectToAPI() } let modalChartTitle = "" let modalChartContent = "<div>"; modalChartContent += "Take your website to the next level by embedding our customizable widgets! Exclusively for subscribers and priced accordingly to your needs."; modalChartContent += "</div>"; let modalChartFooter = "<div style='text-align:center;'><div class='btn-group'>"; if (!isLoggedIn) { let buttonPricing = "<a class='btn btn-outline-secondary' href='https://tradingeconomics.com/api/widgets.aspx?source=markets-widget' target='_blank'>Learn more</a>" let buttonContact = "<a class='btn btn-outline-secondary' href='https://tradingeconomics.com/api/contact.aspx?subject=markets+widget' target='_blank'>Questions? <b>Contact us</b></a>" modalChartFooter += buttonPricing + buttonContact; } modalChartFooter += "</div></div>"; var modal = "<div class ='modal' id='chartModal' tabindex='-1' role='dialog' aria-labelledby='myModalLabel'>"; modal += "<div class='modal-dialog modal-dialog-centered' role='document'>"; modal += "<div class='modal-content'>"; modal += "<div class='modal-header'><div class='modal-title'></div><button type='button' class ='btn-close' data-bs-dismiss='modal' aria-label='Close'></button></div>"; modal += "<div class='modal-body' style='text-align:justify;'></div>" modal += "<div class='modal-footer'></div>" modal += "</div></div></div>" var jModal = $(modal); $(jModal).find(".modal-title").html(modalChartTitle); if (modalChartContent) $(jModal).find(".modal-body").html(modalChartContent); else $(jModal).find(".modal-body").remove(); if (modalChartFooter) $(jModal).find(".modal-footer").html(modalChartFooter); else $(jModal).find(".modal-footer").remove(); $(jModal).on('show.bs.modal', function (e) { $(".navbar").css("padding-right", "17px"); $(".pagemenu").css("padding-right", "17px"); $(".pagetabs").css("padding-right", "17px"); }); $(jModal).on('hide.bs.modal', function (e) { $(".navbar").css("padding-right", ""); $(".pagemenu").css("padding-right", ""); $(".pagetabs").css("padding-right", ""); }); $(jModal).modal("show"); } </script> <style> #market-widget-mini {height: 225px;} #market-widget-mini .nav {flex-wrap:nowrap;}#market-widget-mini .nav>li>a {padding-left: 3px;padding-right: 3px;outline:none;}#market-widget-mini .nav>li>a { font-size: 15px;}#market-widget-mini .nav>li>a {padding-left: 5px;padding-right: 5px;} .market-widget-mini-thead{font-size: 12px;}.market-widget-mini-th-left{text-align: left;}.market-widget-mini-th-center{text-align: center;}.market-widget-mini-row{padding: 0px;}.market-widget-mini-first{padding-left: 10px!important; max-width: 80px; overflow: hidden;}.market-widget-mini-last{text-align: center;max-width: 70px; overflow: hidden;}.market-widget-mini-change{text-align: left; min-width: 70px}.market-widget-mini-pct{text-align: center;} #market-widget-mini {padding: 5px 0px 5px 0px}.mini-widget-symbol-tag{position:absolute; font-size:11px;padding:3px 6px; top:50px;color:#808080;left:13px} @media only screen and (max-width: 380px) {#market-widget-mini .nav > li > a {padding-left: 3px;padding-right: 3px;}} @media only screen and (max-width: 991px) { #market-widget-mini { height: 250px; }} @media only screen and (max-width: 767px){ #market-widget-mini .nav>li>a{ padding:3px 3px !important; }} </style> <div id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Panel2"> <div id="market-widget-mini" class="card"> <ul class="nav nav-tabs " role="tablist" id="miniWidget"> <li role="presentation" class="nav-item" style="margin-left: 15px;"><a aria-current="page" href="#FX-mini" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab" title="Moneda"> Moneda</a></li> <li role="presentation" class="nav-item"><a aria-current="page" href="#Index-mini" class="active nav-link d-table-cell" role="tab" data-bs-toggle="tab" title="Índice"> Índice</a></li> <li role="presentation" class="nav-item"> <a aria-current="page" href="#Bond-mini" class=" nav-link d-table-cell" role="tab" data-bs-toggle="tab" title="Bonos"> Bono </a> </li> </ul> <div class="tab-content" style="margin-bottom: -15px; padding-left: 15px; padding-right:10px"> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl00$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl00_minigroup" value="Commodity-mini" /> <div role="tabpanel" class="tab-pane fade show " id='Commodity-mini'> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl01$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl01_minigroup" value="Currency-mini" /> <div role="tabpanel" class="tab-pane fade show " id='FX-mini'> <span data-symbol="EURUSD:CUR" class="mini-widget-symbol-tag" style=""> EURUSD </span> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl02$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl02_minigroup" value="Index-mini" /> <div role="tabpanel" class="tab-pane fade show active" id='Index-mini'> <span data-symbol="SPX:IND" class="mini-widget-symbol-tag" style=""> US500 </span> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl03$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl03_minigroup" value="Stocks-mini" /> <div role="tabpanel" class="tab-pane fade show " id='Share-mini'> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl04$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl04_minigroup" value="Bond-mini" /> <div role="tabpanel" class="tab-pane fade show " id='Bond-mini'> <span data-symbol="USGG10YR:IND" class="mini-widget-symbol-tag" style=""> US 10Y </span> </div> <input type="hidden" name="ctl00$ContentPlaceHolder1$_ff33b311ea244bd8$Repeater2$ctl05$minigroup" id="ctl00_ContentPlaceHolder1__ff33b311ea244bd8_Repeater2_ctl05_minigroup" value="Crypto-mini" /> <div role="tabpanel" class="tab-pane fade show " id='Crypto-mini'> </div> </div> <style> .mini-widget-table tbody { border-top: 1px solid #dee2e6; } .mini-widget-table > :not(caption) > * > * { border-bottom: none; } #chart-spans-widget { display: flex; justify-content: flex-end; gap: 0px; top: -17px; position: relative; height: 0px; margin-right: 10px; margin-bottom: 3px; } #chart-spans-widget a { display: inline-block; padding: 1px 5px; text-decoration: none; color: #333; font-size: 15px; height: 31px; } #chart-spans-widget a:hover { border-bottom: 2px solid; cursor: pointer; } .chart-spans-widget-active { border-bottom: 2px solid; } .chart-widget-container{ width: 100%; height: 100%;padding-left: 15px; } @media only screen and (max-width: 1399px) and (min-width: 991px) { #chart-spans-widget a:nth-child(3) { display: none; } } @media only screen and (max-width: 1200px) and (min-width: 991px) { #chart-spans-widget a:nth-child(2) { display: none; } } body.dark-theme #chart-spans-widget a { color: #ddd; } body.dark-theme #market-widget-mini .nav-tabs > li > .nav-link.active { background-color: transparent; border-bottom-color: #ddd; } #container .loading-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background-color: rgba(240, 240, 240, 0.9); font-family: Arial, sans-serif; font-size: 16px; font-weight: bold; color: #666; } #container .loading-spinner { width: 30px; height: 30px; border: 4px solid #ccc; border-top: 4px solid #666; border-radius: 50%; animation: spin 0.3s linear infinite; margin-right: 10px; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media only screen and (max-width: 450px) { #chart-spans-widget a:nth-child(3) { display: none; } } </style> <script src="https://code.highcharts.com/highcharts.js"></script> <div id="chart-spans-widget"> <a class="chart-spans-widget-active" data-value="1y">1Y</a> <a data-value="5y">5Y</a> <a data-value="10y">10Y</a> <a data-value="25y">25Y</a> </div> <div id="container" class="chart-widget-container"></div> <script> const container = document.getElementById('container'); var miniWidgetSpan = '1y'; var chartSymbol = "EURUSD:CUR, SPX:IND, USGG10YR:IND".split(","); var activeChartSymbol = '' const structure_array = ['x', 'y', 'percentChange', 'change', 'open', 'high', 'low', 'close']; const baseDataUrl = 'https://d3ii0wo49og5mi.cloudfront.net/markets/'; const miniWidget = document.getElementById('miniWidget'); function createRequest() { let query = `?span=${miniWidgetSpan}&ohlc=0&key=20240229:nazare` if (miniWidgetSpan.toLowerCase() == 'all') { query = `?span=max&ohlc=0&key=20240229:nazare` miniWidgetSpan = 'max' } return `${baseDataUrl}${activeChartSymbol}${query}` } const chartSpansWidget = document.getElementById('chart-spans-widget'); chartSpansWidget.addEventListener('click', (event) => { if (event.target.tagName === 'A') { event.preventDefault(); miniWidgetSpan = event.target.getAttribute('data-value').trim() let dataUrl = createRequest(); const links = chartSpansWidget.querySelectorAll('a'); links.forEach(link => link.classList.remove('chart-spans-widget-active')); event.target.classList.add('chart-spans-widget-active'); fetchDataAndUpdateChart(dataUrl); } }); if (miniWidget) { miniWidget.addEventListener('click', function (event) { let target = event.target; if (target.tagName !== 'A') { target = target.closest('a'); } if (target && target.tagName === 'A') { const href = target.getAttribute('href').toLowerCase(); if (href.includes("fx") || href.includes("forex")) { updateChartSymbol(0); } if (href.includes("bond")) { updateChartSymbol(2); } if (href.includes("index")) { updateChartSymbol(1); } } }); } async function dataMagic(b64Data, dk) { let compressedData = atob(b64Data); let uint8Array = new Uint8Array(compressedData.length); for (let i = 0; i < compressedData.length; i++) { uint8Array[i] = compressedData.charCodeAt(i); } const keyBytes = new TextEncoder().encode(dk); for (let i = 0; i < uint8Array.length; i++) { uint8Array[i] ^= keyBytes[i % keyBytes.length]; } const decompressedData = pako.inflate(uint8Array, { to: 'string' }); return decompressedData; } async function decompressAndDeobfuscateData(b64Data, dk) { try { const result = await dataMagic(b64Data, dk) return JSON.parse(result) } catch (err) { console.log(err); return null; } } function updateChartSymbol(index) { let symbol = chartSymbol[index].trim().replace(" ", ""); activeChartSymbol = symbol; let dataUrl = createRequest(); fetchDataAndUpdateChart(dataUrl); } function formatDate(timestamp) { const date = new Date(timestamp); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`; } function processChartData(data, dataurl) { if (!Array.isArray(data.series) || data.series.length === 0) { console.error('No valid series data:', data); return; } const chartData = []; data.series.forEach(series => { if (Array.isArray(series.data)) { series.data.forEach(item => { const treatedDatapoint = {}; item.forEach((el, index) => { if (index > 0) { treatedDatapoint[structure_array[index]] = el; } else { treatedDatapoint[structure_array[index]] = el * 1000; treatedDatapoint.date = formatDate(el * 1000); } }); chartData.push(treatedDatapoint); }); } }); updateChartWithData(chartData, dataurl); } function fetchDataAndUpdateChart(dataUrl) { fetch(dataUrl) .then(response => response.json()) .then(data => { return decompressAndDeobfuscateData(data, TEObfuscationkey); }) .then(decompressedData => { if (!decompressedData) { console.error('Decompressed data is invalid'); return; } processChartData(decompressedData, dataUrl); }) .catch(error => console.error('Error in fetch or data processing:', error)); } function roundToStep(value, step) { if (value >= 0) { return Math.round(value / step) * step; } else { return value; } } function formatTick(tick) { if (Math.abs(tick) < 10) { return tick.toFixed(2); } return Math.round(tick); } function formatYTicker(tick) { const absTick = Math.abs(tick); const formatNumber = (value) => { return value % 1 === 0 ? value.toFixed(0) : value.toFixed(2); }; if (absTick < 10) { if (TELanguage == "ar") { return tick % 1 === 0 ? tick.toFixed(0) : tick.toFixed(3); } else { return formatNumber(tick) } } if (absTick >= 1e12) { return formatNumber(tick / 1e12) + 'T'; } if (absTick >= 1e9) { return formatNumber(tick / 1e9) + 'B'; } if (absTick >= 1e6) { return formatNumber(tick / 1e6) + 'M'; } if (absTick >= 1e3) { return formatNumber(tick / 1e3) + 'K'; } return Math.round(tick); } function updateYTicks(maxY, minY, numberTicks, lastdatapoint) { const range = maxY - minY; const desiredTicks = numberTicks; let step = range / desiredTicks; let marginMinY = minY if (minY >= 0) { if ((minY - (step / 2)) < 0) { marginMinY = 0 } else { marginMinY = minY - (step / 2) } } const roundedMin = roundToStep(marginMinY, step); const roundedMax = roundToStep(maxY + (step / 2), step); let tickPositions = []; for (let i = roundedMin; i <= roundedMax; i += step) { tickPositions.push(parseFloat(formatTick(i))); if (tickPositions[tickPositions.length - 1] >= maxY) { break; } } chart.yAxis[0].update({ min: roundedMin, max: maxY, tickPositions: tickPositions, }); return; } function updateXLabelsFormat(dataurl) { chart.xAxis[0].update({ labels: { formatter: function () { if (dataurl.toLowerCase().includes('span=25y') || dataurl.toLowerCase().includes('span=10y') || dataurl.toLowerCase().includes('span=5y')) { return Highcharts.dateFormat('%Y', this.value); } else { const date = new Date(this.value); const year = Highcharts.dateFormat('%Y', this.value); let monthDay = Highcharts.dateFormat('%b/%d', this.value); if (TELanguage == null || TELanguage == '') { Highcharts.setOptions({ lang: { months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], } }); const utcDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds())); monthDay = Highcharts.dateFormat('%b/%d', utcDate); } //const ticks = this.axis.tickPositions; //const index = ticks.indexOf(this.value); //const isFirstTickOfYear = index === 0 || (index > 0 && new Date(ticks[index - 1]).getFullYear() !== date.getFullYear()); /*if (isFirstTickOfYear) { return `${year} ${monthDay}`; }*/ return `${monthDay}`; } } } }); return; } function addCustomLabel(closeValue) { if (!closeValue) { closeValue = chart.series[0].data[chart.series[0].data.length - 1].y } if (closeValue == undefined) return; if (chart.customCloseLabel) { chart.customCloseLabel.destroy(); } if (chart.customCloseLabelRect) { chart.customCloseLabelRect.destroy(); } const yAxis = chart.yAxis[0]; const yAxisXPosition = yAxis.left + yAxis.width; const yAxisYPosition = yAxis.toPixels(closeValue); const labelPadding = 2; const labelFontSize = 13; let labelText = formatYTicker(closeValue); /*if (closeValue < 10) { labelText = labelText.toFixed(4) } else if (closeValue < 1000) { labelText = labelText.toFixed(2) } else if (closeValue >= 1000 && closeValue < 10000) { labelText = labelText.toFixed(1) } else { labelText= labelText.toFixed(0) }*/ const textWidth = chart.renderer .text(labelText, 0, 0) .css({ fontSize: `${labelFontSize}px` }) .getBBox().width; const rectWidth = 53; const rectHeight = labelFontSize + 8; chart.customCloseLabelRect = chart.renderer .rect( yAxisXPosition - 3, yAxisYPosition - rectHeight / 2, rectWidth, rectHeight ) .attr({ fill: '#2962ff', zIndex: 11, rx: 0, ry: 0, }) .add(); chart.customCloseLabel = chart.renderer .text(labelText, yAxisXPosition + labelPadding, yAxisYPosition - 1 + labelFontSize / 2) .attr({ zIndex: 12, align: 'left', }) .css({ fontSize: `${labelFontSize}px`, color: 'white', }) .add(); } function addCloseLine() { const closeSeries = chart.series.find(series => series.name === 'Close Line'); let lastdatapoint = chart.series[0].data[chart.series[0].data.length - 1] let closeValue = lastdatapoint.y if (closeSeries) { closeSeries.update({ data: [[chart.series[0].data[0].x, closeValue], [lastdatapoint.x, closeValue]], animation: false }); } else { chart.addSeries({ name: 'Close Line', type: 'line', data: [[chart.series[0].data[0].x, closeValue], [lastdatapoint.x, closeValue]], color: '#2962ff', dashStyle: 'ShortDash', lineWidth: 1, enableMouseTracking: false, marker: { enabled: false }, animation: false, zIndex: 10 }); } } function updateChartWithData(chartData, dataurl) { let minY = null; let maxY = null; let closeValue = null; chartData.forEach(function (datapoint) { if (minY == null) { minY = datapoint.y; maxY = datapoint.y; } else { minY = Math.min(minY, datapoint.y); maxY = Math.max(maxY, datapoint.y); } closeValue = datapoint.y; }); chart.series[0].setData(chartData, true); chart.userOptions.series[0]['symbol'] = activeChartSymbol; if (TELanguage == 'fa') { minY = minY * 0.997; } updateYTicks(maxY, minY, 3, chartData[chartData.length - 1]); updateXLabelsFormat(dataurl); //addCloseLine(); addCustomLabel(); } function showLoading() { const container = document.getElementById('container'); container.innerHTML = ` <div class="loading-overlay"> <div class="loading-spinner"></div> Loading... </div> `; } let chart; function initializeChart() { if (!isPakoLoaded) { if (!document.querySelector('.loading-overlay')) { showLoading(); } setTimeout(initializeChart, 50); return; } container.innerHTML = ""; chart = Highcharts.chart('container', { chart: { type: 'area', style: { fontFamily: '"Helvetica Neue",Helvetica,Arial,sans-serif', }, backgroundColor: IsDarkMode ? 'transparent' : '', marginLeft: 0, marginTop: 25, marginBottom: 30, marginRight: 50, paddingLeft: 0, animation: false, events: { load() { const initialSymbol = chartSymbol[1].trim().replace(" ", ""); activeChartSymbol = initialSymbol const dataUrl = createRequest(); fetchDataAndUpdateChart(dataUrl); } } }, accessibility: { enabled: false, }, title: { text: null }, subtitle: { text: null }, legend: { enabled: false }, xAxis: { type: 'datetime', labels: { y:17, format: `{value: %Y-%m-%d}`, style: { color: IsDarkMode ? '#ddd' : '', fontSize: '13px' }, }, tickPositioner: function () { const positions = []; const start = this.dataMin; const end = this.dataMax; const offset = (end - start) * 0.1; const adjustedStart = start + offset; const adjustedEnd = end - offset; const screenWidth = window.innerWidth; let numberOfTicks = 2; if (screenWidth >= 991 && screenWidth <= 1200) { numberOfTicks = 1 } const interval = (adjustedEnd - adjustedStart) / numberOfTicks; for (let pos = adjustedStart; pos <= adjustedEnd; pos += interval) { positions.push(pos); } return positions; }, //lineColor: IsDarkMode ? '#ddd' : '#333', //tickColor: IsDarkMode ? '#ddd' : '#333', lineWidth: 0, tickWidth: 0, }, yAxis: { opposite: true, title: { text: null }, labels: { style: { color: IsDarkMode ? '#ddd' : '', fontSize: '13px' }, enabled: true, padding: 0, x: 2, formatter: function () { return formatYTicker(this.value) } }, startOnTick: false, endOnTick: false, gridLineWidth: 0, maxTicks: 4, }, tooltip: { pointFormat: '{point.y} {point.change} ( {point.percentChange}%)', formatter: function () { let percentChange = this.point.percentChange; let change = this.point.change; let percentChangeFormatted = (percentChange > 0 ? '+' : '') + (percentChange != null ? percentChange.toFixed(2) : 0); let changeFormatted = (change > 0 ? '+' : '') + (change != null ? change.toFixed(2) : '0'); let percentChangeColor = percentChange > 0 ? 'green' : 'red'; let changeColor = change > 0 ? 'green' : 'red'; let date = Highcharts.dateFormat('%Y-%m-%d', this.point.x); return date + '<br>' + this.point.y.toFixed(2) + ' ' + `<span style="color:${changeColor}">${changeFormatted }</span> ` + `(<span style="color:${percentChangeColor}">${percentChangeFormatted}%</span>)`; } }, credits: { enabled: false }, plotOptions: { area: { marker: { enabled: false, symbol: 'circle', radius: 2, states: { hover: { enabled: true, } } }, lineWidth: 1, animation: { duration: 0 } } }, series: [{ name: '', data: [], color: IsDarkMode ? '#333' : '#d4dfff', lineWidth: 1, zIndex: 5, fillColor: { linearGradient: [0, 0, 0, 1], stops: !IsDarkMode ? [[0, 'rgba(41, 98, 255, 0.2)'], [1, 'rgba(41, 98, 255, 0.2)']] : [[0, 'rgba(37, 79, 145, 0.6)'], [1, 'rgba(37, 79, 145, 0.6)']] }, zones: [{ value: 0, color: '#ffd4d4', fillColor: 'rgba(255, 0, 0, 0.1)' }, { value: Number.POSITIVE_INFINITY, color: !IsDarkMode ? 'rgba(41, 98, 255, 0.3)' : 'rgba(37, 79, 145, 1)' }] }] }); } Highcharts.setOptions({ lang: { decimalPoint: '.', thousandsSep: ',', numericSymbols: ['k', 'M', 'B', 'T', 'P', 'E'] } }); initializeChart() function onResizeHandler() { addCustomLabel() } window.addEventListener("resize", onResizeHandler); </script> </div> </div> </div> </div> <div class="row"> <div class="col-lg-12"> <style> .te-sort{cursor: pointer;} #homematrix { padding: 0px 0px 0px 0px; border: none; } #homematrix a { color: #fff; text-decoration: none; } #homematrix .btn-group{ margin-top: 10px; margin-bottom: 6px; } #homematrix a:hover { text-decoration:underline; } #matrix{ background-color: #333; } #matrix th { background-color: #333; color: #fff; font-weight: bold; border: none; } #matrix td { border-color: #000; } #matrix tr:hover { background-color: #254f73; } .matrix-country { font-weight: bold; padding-left: 10px; white-space: nowrap; } </style> <style>#homematrix th { font-size: 14px;} @media screen and (min-width: 1400px) { #homematrix th { font-size: 14px;} }</style> <style>.table-header {font-size: 13px;}</style> <div id='homematrix' class="thumbnail"> <div > <table id="matrix" class="table table-hover sortable-theme-minimal table-heatmap" data-sortable=""> <thead class="te-sort"> <tr> <th><span class='matrix-country'>País</span></th> <th data-heatmap="1" data-heatmap-limit="20000" data-heatmap-dnColor="#78c1ff">PIB</th> <th data-heatmap="1" data-heatmap-limit="5">PIB - Tasa de crecimiento</th> <th data-heatmap="1" data-heatmap-limit="10" data-heatmap-dnColor="#78c1ff">Tasa De Interés</th> <th data-heatmap="1" data-heatmap-limit="20">Tasa De Inflación</th> <th data-heatmap="1" data-heatmap-limit="20">Tasa de Desempleo</th> <th data-heatmap="1" data-heatmap-limit="20">Presupuesto del Gobierno</th> <th data-heatmap="1" data-heatmap-limit="200" data-heatmap-dnColor="#78c1ff">DEUDA / PIB</th> <th data-heatmap="1" data-heatmap-limit="10">Cuenta corriente</th> <th data-heatmap="1" data-heatmap-limit="1000" data-heatmap-dnColor="#78c1ff">Población</th> </tr> </thead> <tr> <td><a class="matrix-country" href="/united-states/indicators">Estados Unidos</a></td> <td data-heatmap-value='27721'><a href="/united-states/gdp">27721</a></td> <td data-heatmap-value='2.40'><a href="/united-states/gdp-growth">2.40</a></td> <td data-heatmap-value='4.50'><a href="/united-states/interest-rate">4.50</a></td> <td data-heatmap-value='-2.80'><a href="/united-states/inflation-cpi">2.80</a></td> <td data-heatmap-value='-4.20'><a href="/united-states/unemployment-rate">4.20</a></td> <td data-heatmap-value='-6.20'><a href="/united-states/government-budget">-6.20</a></td> <td data-heatmap-value='122.30'><a href="/united-states/government-debt-to-gdp">122.30</a></td> <td data-heatmap-value='-3.90'><a href="/united-states/current-account-to-gdp">-3.90</a></td> <td data-heatmap-value='341.15'><a href="/united-states/population">341.15</a></td> </tr> <tr> <td><a class="matrix-country" href="/china/indicators">China</a></td> <td data-heatmap-value='17795'><a href="/china/gdp">17795</a></td> <td data-heatmap-value='1.60'><a href="/china/gdp-growth">1.60</a></td> <td data-heatmap-value='3.10'><a href="/china/interest-rate">3.10</a></td> <td data-heatmap-value='--0.70'><a href="/china/inflation-cpi">-0.70</a></td> <td data-heatmap-value='-5.40'><a href="/china/unemployment-rate">5.40</a></td> <td data-heatmap-value='-5.80'><a href="/china/government-budget">-5.80</a></td> <td data-heatmap-value='83.40'><a href="/china/government-debt-to-gdp">83.40</a></td> <td data-heatmap-value='2.20'><a href="/china/current-account-to-gdp">2.20</a></td> <td data-heatmap-value='1408.00'><a href="/china/population">1408.00</a></td> </tr> <tr> <td><a class="matrix-country" href="/euro-area/indicators">Zona euro</a></td> <td data-heatmap-value='15781'><a href="/euro-area/gdp">15781</a></td> <td data-heatmap-value='0.00'><a href="/euro-area/gdp-growth">0.00</a></td> <td data-heatmap-value='2.65'><a href="/euro-area/interest-rate">2.65</a></td> <td data-heatmap-value='-2.20'><a href="/euro-area/inflation-cpi">2.20</a></td> <td data-heatmap-value='-6.10'><a href="/euro-area/unemployment-rate">6.10</a></td> <td data-heatmap-value='-3.60'><a href="/euro-area/government-budget">-3.60</a></td> <td data-heatmap-value='87.40'><a href="/euro-area/government-debt-to-gdp">87.40</a></td> <td data-heatmap-value='2.80'><a href="/euro-area/current-account-to-gdp">2.80</a></td> <td data-heatmap-value='350.17'><a href="/euro-area/population">350.17</a></td> </tr> <tr> <td><a class="matrix-country" href="/germany/indicators">Alemania</a></td> <td data-heatmap-value='4526'><a href="/germany/gdp">4526</a></td> <td data-heatmap-value='-0.20'><a href="/germany/gdp-growth">-0.20</a></td> <td data-heatmap-value='2.65'><a href="/germany/interest-rate">2.65</a></td> <td data-heatmap-value='-2.20'><a href="/germany/inflation-cpi">2.20</a></td> <td data-heatmap-value='-6.30'><a href="/germany/unemployment-rate">6.30</a></td> <td data-heatmap-value='-2.80'><a href="/germany/government-budget">-2.80</a></td> <td data-heatmap-value='62.90'><a href="/germany/government-debt-to-gdp">62.90</a></td> <td data-heatmap-value='5.70'><a href="/germany/current-account-to-gdp">5.70</a></td> <td data-heatmap-value='84.70'><a href="/germany/population">84.70</a></td> </tr> <tr> <td><a class="matrix-country" href="/japan/indicators">Japón</a></td> <td data-heatmap-value='4204'><a href="/japan/gdp">4204</a></td> <td data-heatmap-value='0.60'><a href="/japan/gdp-growth">0.60</a></td> <td data-heatmap-value='0.50'><a href="/japan/interest-rate">0.50</a></td> <td data-heatmap-value='-3.70'><a href="/japan/inflation-cpi">3.70</a></td> <td data-heatmap-value='-2.40'><a href="/japan/unemployment-rate">2.40</a></td> <td data-heatmap-value='-5.50'><a href="/japan/government-budget">-5.50</a></td> <td data-heatmap-value='255.20'><a href="/japan/government-debt-to-gdp">255.20</a></td> <td data-heatmap-value='4.70'><a href="/japan/current-account-to-gdp">4.70</a></td> <td data-heatmap-value='123.59'><a href="/japan/population">123.59</a></td> </tr> <tr> <td><a class="matrix-country" href="/india/indicators">India</a></td> <td data-heatmap-value='3568'><a href="/india/gdp">3568</a></td> <td data-heatmap-value='1.60'><a href="/india/gdp-growth">1.60</a></td> <td data-heatmap-value='6.00'><a href="/india/interest-rate">6.00</a></td> <td data-heatmap-value='-3.61'><a href="/india/inflation-cpi">3.61</a></td> <td data-heatmap-value='-8.20'><a href="/india/unemployment-rate">8.20</a></td> <td data-heatmap-value='-5.87'><a href="/india/government-budget">-5.87</a></td> <td data-heatmap-value='81.59'><a href="/india/government-debt-to-gdp">81.59</a></td> <td data-heatmap-value='-1.20'><a href="/india/current-account-to-gdp">-1.20</a></td> <td data-heatmap-value='1386.18'><a href="/india/population">1386.18</a></td> </tr> <tr> <td><a class="matrix-country" href="/united-kingdom/indicators">Reino Unido</a></td> <td data-heatmap-value='3381'><a href="/united-kingdom/gdp">3381</a></td> <td data-heatmap-value='0.10'><a href="/united-kingdom/gdp-growth">0.10</a></td> <td data-heatmap-value='4.50'><a href="/united-kingdom/interest-rate">4.50</a></td> <td data-heatmap-value='-2.80'><a href="/united-kingdom/inflation-cpi">2.80</a></td> <td data-heatmap-value='-4.40'><a href="/united-kingdom/unemployment-rate">4.40</a></td> <td data-heatmap-value='-4.80'><a href="/united-kingdom/government-budget">-4.80</a></td> <td data-heatmap-value='95.30'><a href="/united-kingdom/government-debt-to-gdp">95.30</a></td> <td data-heatmap-value='-2.70'><a href="/united-kingdom/current-account-to-gdp">-2.70</a></td> <td data-heatmap-value='68.27'><a href="/united-kingdom/population">68.27</a></td> </tr> <tr> <td><a class="matrix-country" href="/france/indicators">Francia</a></td> <td data-heatmap-value='3052'><a href="/france/gdp">3052</a></td> <td data-heatmap-value='-0.10'><a href="/france/gdp-growth">-0.10</a></td> <td data-heatmap-value='2.65'><a href="/france/interest-rate">2.65</a></td> <td data-heatmap-value='-0.80'><a href="/france/inflation-cpi">0.80</a></td> <td data-heatmap-value='-7.30'><a href="/france/unemployment-rate">7.30</a></td> <td data-heatmap-value='-5.50'><a href="/france/government-budget">-5.50</a></td> <td data-heatmap-value='110.60'><a href="/france/government-debt-to-gdp">110.60</a></td> <td data-heatmap-value='0.40'><a href="/france/current-account-to-gdp">0.40</a></td> <td data-heatmap-value='68.44'><a href="/france/population">68.44</a></td> </tr> <tr> <td><a class="matrix-country" href="/italy/indicators">Italia</a></td> <td data-heatmap-value='2301'><a href="/italy/gdp">2301</a></td> <td data-heatmap-value='0.10'><a href="/italy/gdp-growth">0.10</a></td> <td data-heatmap-value='2.65'><a href="/italy/interest-rate">2.65</a></td> <td data-heatmap-value='-2.00'><a href="/italy/inflation-cpi">2.00</a></td> <td data-heatmap-value='-5.90'><a href="/italy/unemployment-rate">5.90</a></td> <td data-heatmap-value='-3.40'><a href="/italy/government-budget">-3.40</a></td> <td data-heatmap-value='135.30'><a href="/italy/government-debt-to-gdp">135.30</a></td> <td data-heatmap-value='1.10'><a href="/italy/current-account-to-gdp">1.10</a></td> <td data-heatmap-value='58.97'><a href="/italy/population">58.97</a></td> </tr> <tr> <td><a class="matrix-country" href="/brazil/indicators">Brasil</a></td> <td data-heatmap-value='2174'><a href="/brazil/gdp">2174</a></td> <td data-heatmap-value='0.20'><a href="/brazil/gdp-growth">0.20</a></td> <td data-heatmap-value='14.25'><a href="/brazil/interest-rate">14.25</a></td> <td data-heatmap-value='-5.06'><a href="/brazil/inflation-cpi">5.06</a></td> <td data-heatmap-value='-6.80'><a href="/brazil/unemployment-rate">6.80</a></td> <td data-heatmap-value='-8.90'><a href="/brazil/government-budget">-8.90</a></td> <td data-heatmap-value='84.68'><a href="/brazil/government-debt-to-gdp">84.68</a></td> <td data-heatmap-value='-2.55'><a href="/brazil/current-account-to-gdp">-2.55</a></td> <td data-heatmap-value='212.58'><a href="/brazil/population">212.58</a></td> </tr> <tr> <td><a class="matrix-country" href="/canada/indicators">Canadá</a></td> <td data-heatmap-value='2142'><a href="/canada/gdp">2142</a></td> <td data-heatmap-value='0.60'><a href="/canada/gdp-growth">0.60</a></td> <td data-heatmap-value='2.75'><a href="/canada/interest-rate">2.75</a></td> <td data-heatmap-value='-2.60'><a href="/canada/inflation-cpi">2.60</a></td> <td data-heatmap-value='-6.70'><a href="/canada/unemployment-rate">6.70</a></td> <td data-heatmap-value='-1.40'><a href="/canada/government-budget">-1.40</a></td> <td data-heatmap-value='107.50'><a href="/canada/government-debt-to-gdp">107.50</a></td> <td data-heatmap-value='-1.00'><a href="/canada/current-account-to-gdp">-1.00</a></td> <td data-heatmap-value='41.53'><a href="/canada/population">41.53</a></td> </tr> <tr> <td><a class="matrix-country" href="/russia/indicators">Rusia</a></td> <td data-heatmap-value='2021'><a href="/russia/gdp">2021</a></td> <td data-heatmap-value='-0.80'><a href="/russia/gdp-growth">-0.80</a></td> <td data-heatmap-value='21.00'><a href="/russia/interest-rate">21.00</a></td> <td data-heatmap-value='-10.10'><a href="/russia/inflation-cpi">10.10</a></td> <td data-heatmap-value='-2.40'><a href="/russia/unemployment-rate">2.40</a></td> <td data-heatmap-value='-1.70'><a href="/russia/government-budget">-1.70</a></td> <td data-heatmap-value='14.90'><a href="/russia/government-debt-to-gdp">14.90</a></td> <td data-heatmap-value='2.50'><a href="/russia/current-account-to-gdp">2.50</a></td> <td data-heatmap-value='146.20'><a href="/russia/population">146.20</a></td> </tr> <tr> <td><a class="matrix-country" href="/mexico/indicators">México</a></td> <td data-heatmap-value='1789'><a href="/mexico/gdp">1789</a></td> <td data-heatmap-value='-0.60'><a href="/mexico/gdp-growth">-0.60</a></td> <td data-heatmap-value='9.00'><a href="/mexico/interest-rate">9.00</a></td> <td data-heatmap-value='-3.80'><a href="/mexico/inflation-cpi">3.80</a></td> <td data-heatmap-value='-2.50'><a href="/mexico/unemployment-rate">2.50</a></td> <td data-heatmap-value='-5.00'><a href="/mexico/government-budget">-5.00</a></td> <td data-heatmap-value='49.70'><a href="/mexico/government-debt-to-gdp">49.70</a></td> <td data-heatmap-value='-0.80'><a href="/mexico/current-account-to-gdp">-0.80</a></td> <td data-heatmap-value='128.46'><a href="/mexico/population">128.46</a></td> </tr> </table> </div> <a href="/matrix" aria-label = "Go to matrix for more countries matrix" class="btn-group btn-group-sm" style="padding-left: 5px; padding-bottom: 5px;"> <div class='btn btn-outline-secondary'><i class="bi bi-plus-lg"></i></div> </a> </div> </div> </div> </div> </div> </div> <div class="container-fluid te-footer"> <footer> <div class="container"> <div class="row"> <div id="ctl00_Footer1_PanelFooterLanguages"> <style>.footerItems {}</style> <br /> <p> <a href="/" class="footerItems">Página De Inicio</a> | <a href="/countries" class="footerItems">Países</a> | <a href="/indicators" class="footerItems">Indicadores</a> | <a target="_blank" href="https://tradingeconomics.com/about-te.aspx" class="footerItems">Quiénes Somos</a> | <a href="https://tradingeconomics.com/contact.aspx" target="_blank" class="footerItems">Contactar</a> </p> <div class="container"> <div class="row"> <div class="col-lg-1 col-md-2 col-6"> <a class="footer-languages" href="https://tradingeconomics.com" target="_self">English</a><br /> <a class="footer-languages" href="https://es.tradingeconomics.com" target="_self">Español</a><br /> <a class="footer-languages" href="https://pt.tradingeconomics.com" target="_self">Português</a><br /> <a class="footer-languages" href="https://fr.tradingeconomics.com" target="_self">Français</a><br /> <a class="footer-languages" href="https://de.tradingeconomics.com" target="_self">Deutsch</a><br /> </div> <div class="col-lg-1 col-md-2 col-6"> <a class="footer-languages" href="https://it.tradingeconomics.com" target="_self">Italiano</a><br /> <a class="footer-languages" href="https://pl.tradingeconomics.com" target="_self">Polski</a><br /> <a class="footer-languages" href="https://da.tradingeconomics.com" target="_self">Dansk</a><br /> <a class="footer-languages" href="https://sv.tradingeconomics.com" target="_self">Svenska </a><br /> <a class="footer-languages" href="https://no.tradingeconomics.com" target="_self">Norsk</a><br /> </div> <div class="col-lg-1 col-md-2 col-6"> <a class="footer-languages" href="https://ru.tradingeconomics.com" target="_self">Русский</a><br /> <a class="footer-languages" href="https://tr.tradingeconomics.com" target="_self">Türkçe</a><br /> <a class="footer-languages" href="https://hu.tradingeconomics.com" target="_self">Magyar</a><br /> <a class="footer-languages" href="https://fa.tradingeconomics.com" target="_self">Farsi</a><br /> <a class="footer-languages" href="https://id.tradingeconomics.com" target="_self">Indonesian</a><br /> </div> <div class="col-lg-1 col-md-2 col-6"> <a class="footer-languages" href="https://zh.tradingeconomics.com" target="_self">简体中文</a><br /> <a class="footer-languages" href="https://jp.tradingeconomics.com" target="_self">日本語</a><br /> <a class="footer-languages" href="https://ko.tradingeconomics.com" target="_self">한국어</a><br /> <a class="footer-languages" href="https://ar.tradingeconomics.com" target="_self">العربية</a><br /> </div> </div> </div> <br /> <div class="footer-copyright"> <br /> <span>Copyright ©2025 TRADING ECONOMICS<br /> All Rights Reserved</span><br /> </div> <br /><br /> </div> </div> </div> </footer> </div> </form> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.1/js/bootstrap.bundle.min.js"></script> <script> console.log('/controls/io.ascx') TEdecryptk = 'j9ONifjoKzxt7kmfYTdKK/5vve0b9Y1UCj/n50jr8d8=' TEdecryptn = 'Ipp9HNSfVBUntqFK7PrtofYaOPV312xy' var socket_url = 'https://live.tradingeconomics.com?key=rain'; console.log("IO Connecting to " + socket_url) var TE_URL = window.location.pathname; socket_url += "&url=" + TE_URL; $.ajaxSetup({ cache: !0 }); $.getScript('//d3fy651gv2fhd3.cloudfront.net/js/io.js?v=20240223', function () { OnSocketIOLoad(); }); var socket = null; var MKTChannels = [] var Subscribed = [] function base64ToUint8Array(base64) { const binaryString = atob(base64); const length = binaryString.length; const bytes = new Uint8Array(length); for (let i = 0; i < length; i++) { bytes[i] = binaryString.charCodeAt(i); } return bytes; } function decryptMessage(ciphertext) { const key = base64ToUint8Array(TEdecryptk); const nonce = base64ToUint8Array(TEdecryptn); const ciphertextUint8Array = new Uint8Array(ciphertext); let decryptedPlaintext = sodium.crypto_secretbox_open_easy(ciphertextUint8Array, nonce, key); decryptedPlaintext = pako.inflate(decryptedPlaintext, { to: 'string' }); if (decryptedPlaintext !== undefined) { return (JSON.parse(decryptedPlaintext)) } } function OnSocketIOLoad() { var MKT_TBL_SELEC = "#table-logic-handler-for-sockets"; var TEChannels = ['calendar']; if (TE_URL == '/') TEChannels = ['calendar', 'market']; else if (TE_URL == "/calendar") TEChannels = ['calendar']; else if (TE_URL.indexOf("/shares") > -1) TEChannels = ['market', 'calendar']; else if (TE_URL.indexOf("/crypto/treemap") > -1) TEChannels = ['crypto', 'calendar']; else if (TE_URL.indexOf("/treemap") > -1 || TE_URL.indexOf("/trademap") > -1 || TE_URL.indexOf("/geomap") > -1 || TE_URL.indexOf("/correlations") > -1) TEChannels = ['calendar']; else if (TE_URL.indexOf("calendar") > -1) TEChannels = ['calendar', 'market']; else if (TE_URL.indexOf("/dividends") > -1 || TE_URL.indexOf("/ipo") > -1 || TE_URL.indexOf("/stock-splits") > -1 || TE_URL.indexOf("/earnings") > -1) TEChannels = ['calendar', 'market']; else if (TE_URL.indexOf("stream") > -1) TEChannels = ['calendar', 'market', 'stream']; else if (TE_URL.indexOf("/currencies") > -1) TEChannels = ['currencies', 'calendar']; else if (TE_URL.indexOf("/stocks") > -1) TEChannels = ['indexes', 'calendar']; else if (TE_URL.indexOf("/bonds") > -1) TEChannels = ['bonds', 'calendar']; else if (TE_URL.indexOf("/commodities") > -1) TEChannels = ['commodities', 'calendar']; else if (TE_URL.indexOf("/crypto") > -1) TEChannels = ['crypto', 'calendar']; else if (TE_URL.indexOf("/forecast/government-bond-10y") > -1) TEChannels = ['bonds', 'calendar']; else if (TE_URL.indexOf("/forecast/commodity") > -1) TEChannels = ['commodities', 'calendar']; else if (TE_URL.indexOf("/currency") > -1 || TE_URL.indexOf("/stock-market") > -1 || TE_URL.indexOf("/commodity/") > -1 || TE_URL.indexOf("/government-bond-yield") > -1) TEChannels = ['market', 'calendar']; else if (TE_URL.split(':').length == 2) TEChannels = ['calendar', 'market']; console.log('IO EPOCH: 1744239612'); console.log('IO IP: 8.222.208.146'); console.log('IO URL: /');console.log('IO TOKEN: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlcG9jaCI6MTc0NDIzOTYxMiwiaXAiOiI4LjIyMi4yMDguMTQ2IiwidXJsIjoiLyJ9.fysAiVFN0rPrUlc_tcJqZ6XCkJ_9slOedKtD8Kp70fc'); socket = io.connect(socket_url, { withCredentials: true, // Needed for ELB Cookies Stickyness auth: { token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlcG9jaCI6MTc0NDIzOTYxMiwiaXAiOiI4LjIyMi4yMDguMTQ2IiwidXJsIjoiLyJ9.fysAiVFN0rPrUlc_tcJqZ6XCkJ_9slOedKtD8Kp70fc', url: TE_URL } }); socket.on('connect', function () { ioErrorCount = 0; IS_CONNECTED = !0; // Subscribe to the page symbol if (TE_URL.split(':').length == 2 && TESymbol != '') { var socketSymbol = TESymbol.toUpperCase() console.log('IO Subscribe', socketSymbol, 'No lag'); socket.emit('subscribe', { s: [socketSymbol] }) Subscribed.push(socketSymbol) } // Subscribe to channels if (TEChannels && TEChannels.length) { console.log('IO Subscribing to TEChannels', TEChannels); socket.emit('subscribe', { s: TEChannels }) } else { console.log('IO No TEChannels to Subscribe'); } // Subscribe to symbols if (TE_URL != '/' && TE_URL.indexOf("calendar") <= -1 && (TE_URL.split('/').length > 2 || TE_URL.indexOf(":ind") > -1)) { gatherMKTChannels(); if (MKTChannels && MKTChannels.length) { console.log('IO Subscribing to', MKTChannels.length, 'symbols:', MKTChannels); if (MKTChannels.length <= 36) { socket.emit('subscribe', { s: MKTChannels }) } else { console.log('IO Subscribing using Chunks'); var i, j, temparray, chunk = 36; for (i = 0, j = MKTChannels.length; i < j; i += chunk) { temparray = MKTChannels.slice(i, i + chunk); console.log('IO Subscribing to', temparray.length, 'channels:', temparray); socket.emit('subscribe', { s: temparray }) } } } else { console.log('IO No MKTChannels to Subscribe'); } } socket.on('disconnect', function () { IS_CONNECTED = !1; console.log('Got disconnect!') }); socket.on("smooth-disconnect", function () { socket.disconnect() }) }); var isSnap = !0; for (var i = 0; i < TEChannels.length; i++) { channel = TEChannels[i]; if (channel == 'calendar' || channel == 'stream') continue; console.log('IO Snap ' + channel); socket.on(channel, function (a) { a = decryptMessage(a) if (a.length > 0) { for (i = 0; i < a.length; i++) { TE_UpdateTable(a[i], isSnap) TE_UpdateMiniWidget(a[i]) TE_UpdateTreeMap(a[i]) } isSnap = !1 } else { console.log('IO Sent Empty Market Update') } }) } var ioErrorCount = 0; socket.on("connect_error", (err) => { ioErrorCount++; console.log('IO Connect Error', ioErrorCount); console.log(err.message); if (TE_URL.indexOf("calendar") <= -1 && ioErrorCount % 10 == 0) { console.log('Disconnecting IO'); socket.disconnect(); if (ioErrorCount < 100) { var sleepSecs = ioErrorCount * 5; console.log('Connecting again in', sleepSecs, 'seconds'); setInterval(function () { socket.connect() }, sleepSecs * 1000) } else console.log('Stay disconnected'); } }); socket.on('tick', function (t) { t = decryptMessage(t) TE_UpdateTable(t); if (TE_URL.split(':').length == 2) UpdateMarketTick(t); }); function gatherMKTChannels() { // Temporary block to avoid too many symbols return var nMarkets = $("[data-subscribe]").length; console.log("IO data-subscribe tag present in ", nMarkets, "markets") if (nMarkets == null || typeof input !== "undefined") return else if (nMarkets > 600) console.log("IO Skipping [data-subscribe] because of too many symbols") else { console.log("IO Searching [data-subscribe]") var sCount = 0; $("[data-subscribe]").each(function (i, item) { var socketSymbol = $(item).attr('data-subscribe') if (!MKTChannels.includes(socketSymbol) && !Subscribed.includes(socketSymbol)) { sCount++; console.log('IO [data-subscribe]', sCount, socketSymbol) MKTChannels.push(socketSymbol) } else console.log('Already Subscribed. Skip', socketSymbol) }) } } function TE_UpdateTable(d, isSnap) { var s = d.s; let element_price; $('tr[data-symbol="' + s + '"]').each((i, el) => { element_price = $(el).find("td#p"); }) if (element_price == undefined) { return } const p0 = parseFloat(element_price.text()) var r = $('tr[data-symbol="' + s + '"]'); var p = r.find('td#p'); var dec = 4; if (typeof r.data('decimals') !== 'undefined' && r.data('decimals') !== "") dec = r.data("decimals"); if (p0 != d.p.toFixed(dec)) { p.text(d.p.toFixed(dec)); fg = d.nch > 0 ? 'darkgreen' : d.nch < 0 ? 'darkred' : 'black'; if (IsDarkMode) fg = '#fff' triangle = d.nch > 0 ? '<span class="market-positive-image"></span>' : d.nch < 0 ? '<span class="market-negative-image"></span>' : '<span class="market-neutral-image"></span>'; var previous_triangle = r.find('td#triangle'); if (previous_triangle && previous_triangle.length) { previous_triangle.html(triangle) } var nch = r.find('td#nch'); if (nch) { nch.each(function (i, item) { 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))) } }) } var pch = r.find('td#pch'); pch.text(d.pch.toFixed(2) + '%'); if (TEChannels != "market") { nch.attr('data-value', d.nch); pch.attr('data-value', d.pch) } r.find('td#pch') pch.css("color", fg); bg = IsDarkMode == true ? '#254f73' : '#cdebf9'; p.css("backgroundColor", bg); setTimeout(function () { p.css("backgroundColor", 'transparent') }, 1000) if (!isSnap) { var dt = new Date(); var h = dt.getHours(); if (h < 10) { h = "0" + h } var m = dt.getMinutes(); if (m < 10) { m = "0" + m } var ds = [h, m].join(':'); r.find('td#date').html(ds) } if (d.type && d.type == 'index') { var stateColor = '', stateSpan = ''; var state = d.state; if (d.dstate) state = d.dstate; if (state == 'open') stateColor = 'green'; else if (state == 'closed') stateColor = 'red'; else if (state == 'pre') stateColor = '#CFB53B'; else if (state == 'after') stateColor = '#CFB53B'; else { console.log('IO - Unknown Session State', s); return; } if (stateColor != '') { stateSpan = '<span class="bi bi-clock" style="font-size:10px; color: ' + stateColor + '" title="' + state + ' trading session"></span>'; r.find('td#session').html(stateSpan) } } } }; function TE_UpdateMiniWidget(t) { try { function isSameDay(date1, date2) { return ( date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate() ); } if (chart && TE_URL == '/') { if (chart.userOptions.series[0]['symbol'].toLowerCase() == t.s.toLowerCase()) { let seriesData = chart.series[0].data; let lastDataPoint = seriesData[seriesData.length - 1]; let lastDate = new Date(lastDataPoint.x); let currentDate = new Date(); currentDate.setHours(0, 0, 0, 0); let sameDay = isSameDay(lastDate, currentDate) if (sameDay) { const newValue = t.p; const newChang = t.nch; const newP = t.pch; lastDataPoint.update({ y: newValue, change: newChang, percentChange: newP, }); //addCloseLine(); addCustomLabel(newValue); } else { chart.series[0].addPoint( { x: currentDate.getTime(), y: t.p, change: t.nch, percentChange: t.pch, }, true, true ); //addCloseLine() addCustomLabel(t.p) } } } } catch (e) { //console.error("Issues updating mini widget") } } function TE_UpdateTreeMap(t) { try { function lightenColor(rgbStr, percent) { const match = rgbStr.match(/\d+/g); if (!match || match.length < 3) return rgbStr; let [r, g, b] = match.map(Number); r = Math.min(255, Math.floor(r + (255 - r) * percent)); g = Math.min(255, Math.floor(g + (255 - g) * percent)); b = Math.min(255, Math.floor(b + (255 - b) * percent)); return `rgb(${r}, ${g}, ${b})`; } if (TE_URL.includes("shares") || TE_URL.includes("/crypto/treemap")) { const arrayToUpdate = [t]; const rects = d3.selectAll("#container rect"); const rectsWithId = rects.filter(function () { return d3.select(this).attr("id"); }); const color = d3.scaleLinear() .domain([-3, 0, 3]) .range(["#f93639", "#464646", "#34d65f"]) .clamp(true); const indexToUpdate = []; arrayToUpdate.forEach(function (d) { const i = rectsWithId._groups[0].findIndex(rect => rect.__data__ && rect.__data__.data.url && rect.__data__.data.url.includes(d.s.toLowerCase()) ); if (i !== -1) { indexToUpdate.push({ id: i, io: d }); } }); rectsWithId.each(function (d, index) { const match = indexToUpdate.find(item => item.id === index); if (match) { const el = d3.select(this); //const originalColor = el.attr("data-original-color"); el.transition() .duration(200) .attr("fill", lightenColor(color(match.io.pch), 0.2)); const parentG = d3.select(this.parentNode); const newPercent = match.io.pch.toFixed(2) + "%"; const titleEl = parentG.select("title"); const currentTitle = titleEl.text(); const titleLines = currentTitle.split("\n"); if (titleLines.length >= 1) { titleLines[1] = match.io.p; titleLines[2] = newPercent; titleEl.text(titleLines.join("\n")); } parentG.selectAll("text") .filter((b, i) => i === 1) .select("tspan") .text(newPercent); setTimeout(() => { el.transition() .duration(200) .attr("fill", color(match.io.pch)); }, 200); } }); } } catch (e) { console.error("TE_UpdateTreeMap =>", e); } } var TENotifications = 0; function TENotification(_title, _text, _url, _importance) { TENotifications++; console.log("IO => Notification => ", _title, _text, _url, _importance, TENotifications); if (TENotifications > 2 & _importance <= 1) return; if (TENotifications > 4 & _importance <= 2) return; var IsDesktop = !1; var _titleHTML = 'ALERT'; var _alertType = 'NEWS'; var _color = "#5bc0de"; if (_importance > 0) { _alertType = 'CALENDAR'; if (_importance > 1) { IsDesktop = !0; _color = '#5cb85c'; if (_importance > 2) _color = '#d9534f' } } if (TELanguage == '') { upsertNotification({ title: _title, text: _text, url: _url, importance: _importance }, false, true); } _titleHTML = '<div style="padding-bottom:10px; font-size: 11px;color: #fff; font-weight: bold;"><span style="background-color: #000; padding: 3px;">' + _alertType + '</span><span style="background-color: ' + _color + '; padding: 3px;">ALERT</span></div>'; var _textHTML = _text; if (_text && _text.length > 200) { console.log("Trim text"); _textHTML = _text.substring(0, 200) + '...'; _textHTML += ' <a style="text-decoration: underline;" target="_new" href="' + _url + '">More</a>' } else if (_text) { _textHTML += ' <a style="text-decoration: underline;" target="_new" href="' + _url + '">More</a>' } PNotify.desktop.permission(); (new PNotify({ title: _titleHTML, text: _textHTML, hide: !0, animation: 'fade', shadow: !0, icon: !1, mouse_reset: !1, delay: 20000, buttons: { sticker: !1, closer_hover: !1 }, addclass: 'custom', })).get().click(function (e) { if ($('.ui-pnotify-closer, .ui-pnotify-closer *').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: !1, animation: 'fade', shadow: !0, icon: !1, mouse_reset: !1, hide: !0, delay: 20000, buttons: { sticker: !1, closer_hover: !1 }, addclass: 'custom', type: 'info', desktop: { desktop: IsDesktop, title: 'TRADING ECONOMICS', text: _text, tag: _tag, fallback: !1 } })).get().click(function (e) { if ($('.ui-pnotify-closer, .ui-pnotify-closer *').is(e.target)) { console.log("Closed Notification"); return } window.location = _url }) } } function TECalendarRowUpdate(c) { console.log("UPDATE CALENDAR ROW"); console.log(c); var $row = $('tr[data-id="' + c.CalendarId + '"]'); console.log($row); var $td = $row.find('span#actual'); console.log($td); $td.text(c.Actual); console.log(c.Actual); console.log($td.text); bg = '#5bc0de'; $td.css("backgroundColor", bg); color = c.Actual.toString().indexOf("-") ? 'darkgreen' : 'darkred'; $td.css("color", color); $row.find('span#previous').text(c.Previous); $row.find('img#incoming').css("display", 'none'); setInterval(function () { $td.css("backgroundColor", '#ffffff') }, 2000) } socket.on('calendar', function (c) { console.log("IO CALENDAR") c = decryptMessage(c) console.log(c); if (c.Importance >= 1) { var _title = c.Country.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 = 'https://tradingeconomics.com' + c.URL; if (TE_URL.indexOf("calendar") > -1 || (TELanguage != null && TELanguage.length > 0 && TE_URL == '/')) TECalendarRowUpdate(c); TENotification(_title, _text, _url, c.Importance) } }); socket.on('stream', function (j) { console.log("IO STREAM") j = decryptMessage(j) 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 KILL_SOCKET_AFTER_IDLE = 1000 * 60 * 30; var IS_RELOAD_REQUIRED = !1; var IS_QUESTION_OPEN = !1; var IS_CONNECTED = !1; var LAST_VISIBLE = new Date().getTime(); if (TE_URL.indexOf("calendar") > -1 || TE_URL.indexOf("/currency") > -1 || TE_URL.indexOf("/stock-market") > -1 || TE_URL.indexOf("/commodity/") > -1 || TE_URL.indexOf("/government-bond-yield") > -1 || TE_URL.indexOf("stream") > -1 || TE_URL.indexOf("/currencies") > -1 || TE_URL.indexOf("/stocks") > -1 || TE_URL.indexOf("/bonds") > -1 || TE_URL.indexOf("/commodities") > -1) { KILL_SOCKET_AFTER_IDLE = 1000 * 60 * 60; IS_RELOAD_REQUIRED = !0 } // To be users in market pages ex aapl:us function UpdateMarketTick(t) { if (t.state && t.state == 'closed') { console.log('market is closed'); } var s = t.s; if (!s || s.toLowerCase() != symbol.toLowerCase()) { return; } $('#market_last').html(t.p); $('#market_daily_chg').html(t.nch + ' '); $('#market_daily_Pchg').html(t.pch + '%'); if (t.nch > 0) { $('#market_chg_arrow').attr('class', 'market-positive-image'); $('#market_daily_chg').css({ color: '#8ecf61' }); $('#market_daily_Pchg').css({ color: '#8ecf61' }); } else { $('#market_chg_arrow').attr('class', 'market-negative-image'); $('#market_daily_chg').css({ color: '#ed3b3b' }); $('#market_daily_Pchg').css({ color: '#ed3b3b' }); } } function saveSocketNetworkBW() { console.log("Socket check if alive"); setInterval(function () { if (typeof document == 'undefined' || !document) { console.log("ws: undefined"); return LAST_VISIBLE = new Date().getTime() } if (typeof document.hidden != 'boolean') { console.log("ws: hidden"); return LAST_VISIBLE = new Date().getTime() } if (!document.hidden) { console.log("ws: live"); if (!IS_CONNECTED) { console.log('ws: connecting'); 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('ws: disconnecting'); socket.disconnect(); if (IS_RELOAD_REQUIRED && IS_QUESTION_OPEN == !1) { var result = confirm("Please Press Ok to Refresh the Data in this Page"); IS_QUESTION_OPEN = !0; if (result) { IS_QUESTION_OPEN = !1; document.location = document.location.href } } } } }, 1000 * 60) } saveSocketNetworkBW() // pnotify !function (t, i) { "function" == typeof define && define.amd ? define("pnotify", ["jquery"], function (s) { return i(s, t) }) : "object" == typeof exports && "undefined" != typeof module ? module.exports = i(require("jquery"), global || t) : t.PNotify = i(t.jQuery, t) }("undefined" != typeof window ? window : this, function (t, i) { var s = function (i) { var e, o, n = { dir1: "down", dir2: "left", push: "bottom", spacing1: 36, spacing2: 36, context: t("body"), modal: !1 }, a = t(i), r = function () { o = t("body"), c.prototype.options.stack.context = o, a = t(i), a.bind("resize", function () { e && clearTimeout(e), e = setTimeout(function () { c.positionAll(!0) }, 10) }) }, h = function (i) { var s = t("<div />", { class: "ui-pnotify-modal-overlay" }); return s.prependTo(i.context), i.overlay_close && s.click(function () { c.removeStack(i) }), s }, c = function (t) { this.state = "initializing", this.timer = null, this.animTimer = null, this.styles = null, this.elem = null, this.container = null, this.title_container = null, this.text_container = null, this.animating = !1, this.timerHide = !1, this.parseOptions(t), this.init() }; return t.extend(c.prototype, { version: "3.2.0", options: { title: !1, title_escape: !1, text: !1, text_escape: !1, styling: "brighttheme", addclass: "", cornerclass: "", auto_display: !0, width: "300px", min_height: "16px", type: "notice", icon: !0, animation: "fade", animate_speed: "normal", shadow: !0, hide: !0, delay: 8e3, mouse_reset: !0, remove: !0, insert_brs: !0, destroy: !0, stack: n }, modules: {}, runModules: function (t, i) { var s; for (var e in this.modules) s = "object" == typeof i && e in i ? i[e] : i, "function" == typeof this.modules[e][t] && (this.modules[e].notice = this, this.modules[e].options = "object" == typeof this.options[e] ? this.options[e] : {}, this.modules[e][t](this, "object" == typeof this.options[e] ? this.options[e] : {}, s)) }, init: function () { var i = this; return this.modules = {}, t.extend(!0, this.modules, c.prototype.modules), "object" == typeof this.options.styling ? this.styles = this.options.styling : this.styles = c.styling[this.options.styling], this.elem = t("<div />", { class: "ui-pnotify " + this.options.addclass, css: { display: "none" }, "aria-live": "assertive", "aria-role": "alertdialog", mouseenter: function (t) { if (i.options.mouse_reset && "out" === i.animating) { if (!i.timerHide) return; i.cancelRemove() } i.options.hide && i.options.mouse_reset && i.cancelRemove() }, mouseleave: function (t) { i.options.hide && i.options.mouse_reset && "out" !== i.animating && i.queueRemove(), c.positionAll() } }), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-" + this.options.animate_speed), this.container = t("<div />", { class: this.styles.container + " ui-pnotify-container " + ("error" === this.options.type ? this.styles.error : "info" === this.options.type ? this.styles.info : "success" === this.options.type ? this.styles.success : this.styles.notice), role: "alert" }).appendTo(this.elem), "" !== this.options.cornerclass && this.container.removeClass("ui-corner-all").addClass(this.options.cornerclass), this.options.shadow && this.container.addClass("ui-pnotify-shadow"), !1 !== this.options.icon && t("<div />", { class: "ui-pnotify-icon" }).append(t("<span />", { class: !0 === this.options.icon ? "error" === this.options.type ? this.styles.error_icon : "info" === this.options.type ? this.styles.info_icon : "success" === this.options.type ? this.styles.success_icon : this.styles.notice_icon : this.options.icon })).prependTo(this.container), this.title_container = t("<h4 />", { class: "ui-pnotify-title" }).appendTo(this.container), !1 === this.options.title ? this.title_container.hide() : this.options.title_escape ? this.title_container.text(this.options.title) : this.title_container.html(this.options.title), this.text_container = t("<div />", { class: "ui-pnotify-text", "aria-role": "alert" }).appendTo(this.container), !1 === this.options.text ? this.text_container.hide() : this.options.text_escape ? this.text_container.text(this.options.text) : this.text_container.html(this.options.insert_brs ? String(this.options.text).replace(/\n/g, "<br />") : this.options.text), "string" == typeof this.options.width && this.elem.css("width", this.options.width), "string" == typeof this.options.min_height && this.container.css("min-height", this.options.min_height), "top" === this.options.stack.push ? c.notices = t.merge([this], c.notices) : c.notices = t.merge(c.notices, [this]), "top" === this.options.stack.push && this.queuePosition(!1, 1), this.options.stack.animation = !1, this.runModules("init"), this.state = "closed", this.options.auto_display && this.open(), this }, update: function (i) { var s = this.options; return this.parseOptions(s, i), this.elem.removeClass("ui-pnotify-fade-slow ui-pnotify-fade-normal ui-pnotify-fade-fast"), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-" + this.options.animate_speed), this.options.cornerclass !== s.cornerclass && this.container.removeClass("ui-corner-all " + s.cornerclass).addClass(this.options.cornerclass), this.options.shadow !== s.shadow && (this.options.shadow ? this.container.addClass("ui-pnotify-shadow") : this.container.removeClass("ui-pnotify-shadow")), !1 === this.options.addclass ? this.elem.removeClass(s.addclass) : this.options.addclass !== s.addclass && this.elem.removeClass(s.addclass).addClass(this.options.addclass), !1 === this.options.title ? this.title_container.slideUp("fast") : this.options.title !== s.title && (this.options.title_escape ? this.title_container.text(this.options.title) : this.title_container.html(this.options.title), !1 === s.title && this.title_container.slideDown(200)), !1 === this.options.text ? this.text_container.slideUp("fast") : this.options.text !== s.text && (this.options.text_escape ? this.text_container.text(this.options.text) : this.text_container.html(this.options.insert_brs ? String(this.options.text).replace(/\n/g, "<br />") : this.options.text), !1 === s.text && this.text_container.slideDown(200)), this.options.type !== s.type && this.container.removeClass(this.styles.error + " " + this.styles.notice + " " + this.styles.success + " " + this.styles.info).addClass("error" === this.options.type ? this.styles.error : "info" === this.options.type ? this.styles.info : "success" === this.options.type ? this.styles.success : this.styles.notice), (this.options.icon !== s.icon || !0 === this.options.icon && this.options.type !== s.type) && (this.container.find("div.ui-pnotify-icon").remove(), !1 !== this.options.icon && t("<div />", { class: "ui-pnotify-icon" }).append(t("<span />", { class: !0 === this.options.icon ? "error" === this.options.type ? this.styles.error_icon : "info" === this.options.type ? this.styles.info_icon : "success" === this.options.type ? this.styles.success_icon : this.styles.notice_icon : this.options.icon })).prependTo(this.container)), this.options.width !== s.width && this.elem.animate({ width: this.options.width }), this.options.min_height !== s.min_height && this.container.animate({ minHeight: this.options.min_height }), this.options.hide ? s.hide || this.queueRemove() : this.cancelRemove(), this.queuePosition(!0), this.runModules("update", s), this }, open: function () { this.state = "opening", this.runModules("beforeOpen"); var t = this; return this.elem.parent().length || this.elem.appendTo(this.options.stack.context ? this.options.stack.context : o), "top" !== this.options.stack.push && this.position(!0), this.animateIn(function () { t.queuePosition(!0), t.options.hide && t.queueRemove(), t.state = "open", t.runModules("afterOpen") }), this }, remove: function (s) { this.state = "closing", this.timerHide = !!s, this.runModules("beforeClose"); var e = this; return this.timer && (i.clearTimeout(this.timer), this.timer = null), this.animateOut(function () { if (e.state = "closed", e.runModules("afterClose"), e.queuePosition(!0), e.options.remove && e.elem.detach(), e.runModules("beforeDestroy"), e.options.destroy && null !== c.notices) { var i = t.inArray(e, c.notices); -1 !== i && c.notices.splice(i, 1) } e.runModules("afterDestroy") }), this }, get: function () { return this.elem }, parseOptions: function (i, s) { this.options = t.extend(!0, {}, c.prototype.options), this.options.stack = c.prototype.options.stack; for (var e, o = [i, s], n = 0; n < o.length && void 0 !== (e = o[n]); n++)if ("object" != typeof e) this.options.text = e; else for (var a in e) this.modules[a] ? t.extend(!0, this.options[a], e[a]) : this.options[a] = e[a] }, animateIn: function (t) { this.animating = "in"; var i = this, s = function () { i.animTimer && clearTimeout(i.animTimer), "in" === i.animating && (i.elem.is(":visible") ? (t && t.call(), i.animating = !1) : i.animTimer = setTimeout(s, 40)) }; "fade" === this.options.animation ? (this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend", s).addClass("ui-pnotify-in"), this.elem.css("opacity"), this.elem.addClass("ui-pnotify-fade-in"), this.animTimer = setTimeout(s, 650)) : (this.elem.addClass("ui-pnotify-in"), s()) }, animateOut: function (i) { this.animating = "out"; var s = this, e = function () { if (s.animTimer && clearTimeout(s.animTimer), "out" === s.animating) if ("0" != s.elem.css("opacity") && s.elem.is(":visible")) s.animTimer = setTimeout(e, 40); else { if (s.elem.removeClass("ui-pnotify-in"), s.options.stack.overlay) { var o = !1; t.each(c.notices, function (t, i) { i != s && i.options.stack === s.options.stack && "closed" != i.state && (o = !0) }), o || s.options.stack.overlay.hide() } i && i.call(), s.animating = !1 } }; "fade" === this.options.animation ? (this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend", e).removeClass("ui-pnotify-fade-in"), this.animTimer = setTimeout(e, 650)) : (this.elem.removeClass("ui-pnotify-in"), e()) }, position: function (t) { var i = this.options.stack, s = this.elem; if (void 0 === i.context && (i.context = o), i) { "number" != typeof i.nextpos1 && (i.nextpos1 = i.firstpos1), "number" != typeof i.nextpos2 && (i.nextpos2 = i.firstpos2), "number" != typeof i.addpos2 && (i.addpos2 = 0); var e = !s.hasClass("ui-pnotify-in"); if (!e || t) { i.modal && (i.overlay ? i.overlay.show() : i.overlay = h(i)), s.addClass("ui-pnotify-move"); var n, r, c; switch (i.dir1) { case "down": c = "top"; break; case "up": c = "bottom"; break; case "left": c = "right"; break; case "right": c = "left" }n = parseInt(s.css(c).replace(/(?:\..*|[^0-9.])/g, "")), isNaN(n) && (n = 0), void 0 !== i.firstpos1 || e || (i.firstpos1 = n, i.nextpos1 = i.firstpos1); var p; switch (i.dir2) { case "down": p = "top"; break; case "up": p = "bottom"; break; case "left": p = "right"; break; case "right": p = "left" }switch (r = parseInt(s.css(p).replace(/(?:\..*|[^0-9.])/g, "")), isNaN(r) && (r = 0), void 0 !== i.firstpos2 || e || (i.firstpos2 = r, i.nextpos2 = i.firstpos2), ("down" === i.dir1 && i.nextpos1 + s.height() > (i.context.is(o) ? a.height() : i.context.prop("scrollHeight")) || "up" === i.dir1 && i.nextpos1 + s.height() > (i.context.is(o) ? a.height() : i.context.prop("scrollHeight")) || "left" === i.dir1 && i.nextpos1 + s.width() > (i.context.is(o) ? a.width() : i.context.prop("scrollWidth")) || "right" === i.dir1 && i.nextpos1 + s.width() > (i.context.is(o) ? a.width() : i.context.prop("scrollWidth"))) && (i.nextpos1 = i.firstpos1, i.nextpos2 += i.addpos2 + (void 0 === i.spacing2 ? 25 : i.spacing2), i.addpos2 = 0), "number" == typeof i.nextpos2 && (i.animation ? s.css(p, i.nextpos2 + "px") : (s.removeClass("ui-pnotify-move"), s.css(p, i.nextpos2 + "px"), s.css(p), s.addClass("ui-pnotify-move"))), i.dir2) { case "down": case "up": s.outerHeight(!0) > i.addpos2 && (i.addpos2 = s.height()); break; case "left": case "right": s.outerWidth(!0) > i.addpos2 && (i.addpos2 = s.width()) }switch ("number" == typeof i.nextpos1 && (i.animation ? s.css(c, i.nextpos1 + "px") : (s.removeClass("ui-pnotify-move"), s.css(c, i.nextpos1 + "px"), s.css(c), s.addClass("ui-pnotify-move"))), i.dir1) { case "down": case "up": i.nextpos1 += s.height() + (void 0 === i.spacing1 ? 25 : i.spacing1); break; case "left": case "right": i.nextpos1 += s.width() + (void 0 === i.spacing1 ? 25 : i.spacing1) } } return this } }, queuePosition: function (t, i) { return e && clearTimeout(e), i || (i = 10), e = setTimeout(function () { c.positionAll(t) }, i), this }, cancelRemove: function () { return this.timer && i.clearTimeout(this.timer), this.animTimer && i.clearTimeout(this.animTimer), "closing" === this.state && (this.state = "open", this.animating = !1, this.elem.addClass("ui-pnotify-in"), "fade" === this.options.animation && this.elem.addClass("ui-pnotify-fade-in")), this }, queueRemove: function () { var t = this; return this.cancelRemove(), this.timer = i.setTimeout(function () { t.remove(!0) }, isNaN(this.options.delay) ? 0 : this.options.delay), this } }), t.extend(c, { notices: [], reload: s, removeAll: function () { t.each(c.notices, function (t, i) { i.remove && i.remove(!1) }) }, removeStack: function (i) { t.each(c.notices, function (t, s) { s.remove && s.options.stack === i && s.remove(!1) }) }, positionAll: function (i) { if (e && clearTimeout(e), e = null, c.notices && c.notices.length) t.each(c.notices, function (t, s) { var e = s.options.stack; e && (e.overlay && e.overlay.hide(), e.nextpos1 = e.firstpos1, e.nextpos2 = e.firstpos2, e.addpos2 = 0, e.animation = i) }), t.each(c.notices, function (t, i) { i.position() }); else { var s = c.prototype.options.stack; s && (delete s.nextpos1, delete s.nextpos2) } }, styling: { brighttheme: { container: "brighttheme", notice: "brighttheme-notice", notice_icon: "brighttheme-icon-notice", info: "brighttheme-info", info_icon: "brighttheme-icon-info", success: "brighttheme-success", success_icon: "brighttheme-icon-success", error: "brighttheme-error", error_icon: "brighttheme-icon-error" }, bootstrap3: { container: "alert", notice: "alert-warning", notice_icon: "glyphicon glyphicon-exclamation-sign", info: "alert-info", info_icon: "glyphicon glyphicon-info-sign", success: "alert-success", success_icon: "bi bi-check-lg-sign", error: "alert-danger", error_icon: "glyphicon glyphicon-warning-sign" } } }), c.styling.fontawesome = t.extend({}, c.styling.bootstrap3), t.extend(c.styling.fontawesome, { notice_icon: "fa fa-exclamation-circle", info_icon: "fa fa-info", success_icon: "fa fa-check", error_icon: "fa fa-warning" }), i.document.body ? r() : t(r), c }; return s(i) }); !function (o, s) { "function" == typeof define && define.amd ? define("pnotify.buttons", ["jquery", "pnotify"], s) : "object" == typeof exports && "undefined" != typeof module ? module.exports = s(require("jquery"), require("./pnotify")) : s(o.jQuery, o.PNotify) }("undefined" != typeof window ? window : this, function (o, s) { return s.prototype.options.buttons = { closer: !0, closer_hover: !0, sticker: !0, sticker_hover: !0, show_on_nonblock: !1, labels: { close: "Close", stick: "Stick", unstick: "Unstick" }, classes: { closer: null, pin_up: null, pin_down: null } }, s.prototype.modules.buttons = { init: function (s, i) { var n = this; s.elem.on({ mouseenter: function (o) { !n.options.sticker || s.options.nonblock && s.options.nonblock.nonblock && !n.options.show_on_nonblock || n.sticker.trigger("pnotify:buttons:toggleStick").css("visibility", "visible"), !n.options.closer || s.options.nonblock && s.options.nonblock.nonblock && !n.options.show_on_nonblock || n.closer.css("visibility", "visible") }, mouseleave: function (o) { n.options.sticker_hover && n.sticker.css("visibility", "d-none"), n.options.closer_hover && n.closer.css("visibility", "d-none") } }), this.sticker = o("<div />", { class: "ui-pnotify-sticker", "aria-role": "button", "aria-pressed": s.options.hide ? "false" : "true", tabindex: "0", title: s.options.hide ? i.labels.stick : i.labels.unstick, css: { cursor: "pointer", visibility: i.sticker_hover ? "d-none" : "visible" }, click: function () { s.options.hide = !s.options.hide, s.options.hide ? s.queueRemove() : s.cancelRemove(), o(this).trigger("pnotify:buttons:toggleStick") } }).bind("pnotify:buttons:toggleStick", function () { var i = null === n.options.classes.pin_up ? s.styles.pin_up : n.options.classes.pin_up, e = null === n.options.classes.pin_down ? s.styles.pin_down : n.options.classes.pin_down; o(this).attr("title", s.options.hide ? n.options.labels.stick : n.options.labels.unstick).children().attr("class", "").addClass(s.options.hide ? i : e).attr("aria-pressed", s.options.hide ? "false" : "true") }).append("<span />").trigger("pnotify:buttons:toggleStick").prependTo(s.container), (!i.sticker || s.options.nonblock && s.options.nonblock.nonblock && !i.show_on_nonblock) && this.sticker.css("display", "none"), this.closer = o("<div />", { class: "ui-pnotify-closer", "aria-role": "button", tabindex: "0", title: i.labels.close, css: { cursor: "pointer", visibility: i.closer_hover ? "d-none" : "visible" }, click: function () { s.remove(!1), n.sticker.css("visibility", "d-none"), n.closer.css("visibility", "d-none") } }).append(o("<span />", { class: null === i.classes.closer ? s.styles.closer : i.classes.closer })).prependTo(s.container), (!i.closer || s.options.nonblock && s.options.nonblock.nonblock && !i.show_on_nonblock) && this.closer.css("display", "none") }, update: function (o, s) { !s.closer || o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock ? this.closer.css("display", "none") : s.closer && this.closer.css("display", "block"), !s.sticker || o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock ? this.sticker.css("display", "none") : s.sticker && this.sticker.css("display", "block"), this.sticker.trigger("pnotify:buttons:toggleStick"), this.closer.find("span").attr("class", "").addClass(null === s.classes.closer ? o.styles.closer : s.classes.closer), s.sticker_hover ? this.sticker.css("visibility", "d-none") : o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock || this.sticker.css("visibility", "visible"), s.closer_hover ? this.closer.css("visibility", "d-none") : o.options.nonblock && o.options.nonblock.nonblock && !s.show_on_nonblock || this.closer.css("visibility", "visible") } }, o.extend(s.styling.brighttheme, { closer: "brighttheme-icon-closer", pin_up: "brighttheme-icon-sticker", pin_down: "brighttheme-icon-sticker brighttheme-icon-stuck" }), o.extend(s.styling.bootstrap3, { closer: "bi bi-x-lg", pin_up: "glyphicon glyphicon-pause", pin_down: "glyphicon glyphicon-play" }), o.extend(s.styling.fontawesome, { closer: "fa fa-times", pin_up: "fa fa-pause", pin_down: "fa fa-play" }), s }); !function (i, t) { "function" == typeof define && define.amd ? define("pnotify.desktop", ["jquery", "pnotify"], t) : "object" == typeof exports && "undefined" != typeof module ? module.exports = t(require("jquery"), require("./pnotify")) : t(i.jQuery, i.PNotify) }("undefined" != typeof window ? window : this, function (i, t) { var o, n = function (i, t) { return (n = "Notification" in window ? function (i, t) { return new Notification(i, t) } : "mozNotification" in navigator ? function (i, t) { return navigator.mozNotification.createNotification(i, t.body, t.icon).show() } : "webkitNotifications" in window ? function (i, t) { return window.webkitNotifications.createNotification(t.icon, i, t.body) } : function (i, t) { return null })(i, t) }; return t.prototype.options.desktop = { desktop: !1, fallback: !0, icon: null, tag: null, title: null, text: null }, t.prototype.modules.desktop = { genNotice: function (i, t) { null === t.icon ? this.icon = "https://sciactive.com/pnotify/includes/desktop/" + i.options.type + ".png" : !1 === t.icon ? this.icon = null : this.icon = t.icon, null !== this.tag && null === t.tag || (this.tag = null === t.tag ? "PNotify-" + Math.round(1e6 * Math.random()) : t.tag), i.desktop = n(t.title || i.options.title, { icon: this.icon, body: t.text || i.options.text, tag: this.tag }), !("close" in i.desktop) && "cancel" in i.desktop && (i.desktop.close = function () { i.desktop.cancel() }), i.desktop.onclick = function () { i.elem.trigger("click") }, i.desktop.onclose = function () { "closing" !== i.state && "closed" !== i.state && i.remove() } }, init: function (i, n) { if (n.desktop) { if (0 !== (o = t.desktop.checkPermission())) return void (n.fallback || (i.options.auto_display = !1)); this.genNotice(i, n) } }, update: function (i, t, n) { 0 !== o && t.fallback || !t.desktop || this.genNotice(i, t) }, beforeOpen: function (i, t) { 0 !== o && t.fallback || !t.desktop || i.elem.css({ left: "-10000px" }).removeClass("ui-pnotify-in") }, afterOpen: function (i, t) { 0 !== o && t.fallback || !t.desktop || (i.elem.css({ left: "-10000px" }).removeClass("ui-pnotify-in"), "show" in i.desktop && i.desktop.show()) }, beforeClose: function (i, t) { 0 !== o && t.fallback || !t.desktop || i.elem.css({ left: "-10000px" }).removeClass("ui-pnotify-in") }, afterClose: function (i, t) { 0 !== o && t.fallback || !t.desktop || (i.elem.css({ left: "-10000px" }).removeClass("ui-pnotify-in"), "close" in i.desktop && i.desktop.close()) } }, t.desktop = { permission: function () { "undefined" != typeof Notification && "requestPermission" in Notification ? Notification.requestPermission() : "webkitNotifications" in window && window.webkitNotifications.requestPermission() }, checkPermission: function () { return "undefined" != typeof Notification && "permission" in Notification ? "granted" === Notification.permission ? 0 : 1 : "webkitNotifications" in window && 0 == window.webkitNotifications.checkPermission() ? 0 : 1 } }, o = t.desktop.checkPermission(), t }); !function (i, o) { "function" == typeof define && define.amd ? define("pnotify.mobile", ["jquery", "pnotify"], o) : "object" == typeof exports && "undefined" != typeof module ? module.exports = o(require("jquery"), require("./pnotify")) : o(i.jQuery, i.PNotify) }("undefined" != typeof window ? window : this, function (i, o) { return o.prototype.options.mobile = { swipe_dismiss: !0, styling: !0 }, o.prototype.modules.mobile = { init: function (i, o) { var t = this, e = null, n = null, s = null; this.swipe_dismiss = o.swipe_dismiss, this.doMobileStyling(i, o), i.elem.on({ touchstart: function (o) { t.swipe_dismiss && (e = o.originalEvent.touches[0].screenX, s = i.elem.width(), i.container.css("left", "0")) }, touchmove: function (o) { if (e && t.swipe_dismiss) { var a = o.originalEvent.touches[0].screenX; n = a - e; var c = (1 - Math.abs(n) / s) * i.options.opacity; i.elem.css("opacity", c), i.container.css("left", n) } }, touchend: function () { if (e && t.swipe_dismiss) { if (Math.abs(n) > 40) { var o = n < 0 ? -2 * s : 2 * s; i.elem.animate({ opacity: 0 }, 100), i.container.animate({ left: o }, 100), i.remove() } else i.elem.animate({ opacity: i.options.opacity }, 100), i.container.animate({ left: 0 }, 100); e = null, n = null, s = null } }, touchcancel: function () { e && t.swipe_dismiss && (i.elem.animate({ opacity: i.options.opacity }, 100), i.container.animate({ left: 0 }, 100), e = null, n = null, s = null) } }) }, update: function (i, o) { this.swipe_dismiss = o.swipe_dismiss, this.doMobileStyling(i, o) }, doMobileStyling: function (o, t) { t.styling ? (o.elem.addClass("ui-pnotify-mobile-able"), i(window).width() <= 480 ? (o.options.stack.mobileOrigSpacing1 || (o.options.stack.mobileOrigSpacing1 = o.options.stack.spacing1, o.options.stack.mobileOrigSpacing2 = o.options.stack.spacing2), o.options.stack.spacing1 = 0, o.options.stack.spacing2 = 0) : (o.options.stack.mobileOrigSpacing1 || o.options.stack.mobileOrigSpacing2) && (o.options.stack.spacing1 = o.options.stack.mobileOrigSpacing1, delete o.options.stack.mobileOrigSpacing1, o.options.stack.spacing2 = o.options.stack.mobileOrigSpacing2, delete o.options.stack.mobileOrigSpacing2)) : (o.elem.removeClass("ui-pnotify-mobile-able"), o.options.stack.mobileOrigSpacing1 && (o.options.stack.spacing1 = o.options.stack.mobileOrigSpacing1, delete o.options.stack.mobileOrigSpacing1), o.options.stack.mobileOrigSpacing2 && (o.options.stack.spacing2 = o.options.stack.mobileOrigSpacing2, delete o.options.stack.mobileOrigSpacing2)) } }, o }); // Test //TE_UpdateTable({ "s": "NDX:IND", "p": 15274.39, "nch": -199.53, "pch": -1.29, "type": "index", "state": "open", "dstate": "open" }, false) //TEST notificationList /*setTimeout(() => { TENotification("United States Core Inflation Rate YoY", "United States Core Inflation Rate YoY reported at 3.3%. Consensus was 3.4%. Previously at 3.4%", "/", "3") }, 25000) setTimeout(() => { TENotification("United States CPI", "United States CPI reported at 314.18. Consensus was 314.63. Previously at 314.07.", "/", "3") }, 30001) setTimeout(() => { TENotification("United States Inflation Rate YoY", "United States Inflation Rate YoY reported at 3.0%. Consensus was 3.1%. Previously at 3.3%.", "/", "3") }, 35002) setTimeout(() => { TENotification("United States Inflation Rate MoM", "United States Inflation Rate MoM reported at -0.1%. Consensus was 0.1%. Previously at 0.0%.", "/", "3") }, 40003) setTimeout(() => { TENotification("United States Core Inflation Rate MoM", "United States Core Inflation Rate MoM reported at 0.1%. Consensus was 0.2%. Previously at 0.2%.", "/", "3") }, 45004)*/ }</script> <script> $(function(){ console.log("Heatmap2"); //if (!IsDarkMode && window.location.pathname.length <= 1 ) return var IsDarkModeByForce = false; if (window.location.pathname.length <= 1 || window.location.pathname.indexOf("matrix") > -1) IsDarkModeByForce = true; function shadeColor2(color, percent) { var f = parseInt(color.slice(1), 16), t = percent < 0 ? 0 : 255, p = percent < 0 ? percent * -1 : percent, R = f >> 16, G = f >> 8 & 0x00FF, B = f & 0x0000FF; return "#" + (0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B)).toString(16).slice(1); } function colorMyTable() { console.log("Heatmap2 - ColorMyTable") var table = $(".table-heatmap"); var tbody = table.find('tbody'); var _columns = {}; table.find('thead').find('tr').find('th').each(function (i, th) { if ($(th).attr('data-heatmap')) { _columns[i] = { 'index': i, 'limit': $(th).attr('data-heatmap-limit'), 'upColor': $(th).attr('data-heatmap-upcolor') || '#f93639', 'dnColor': $(th).attr('data-heatmap-dncolor') || '#34d65f' }; } }); $(tbody).find('tr').each(function (i, row) { var tdArr = $(row).find('td'); for (var key in _columns) { var thisColumn = _columns[key], td; if (!(td = tdArr[key])) { continue; } var value = $(td).attr('data-heatmap-value') || Number($(td).html().replace('%', '')); if (!value) { //console.log("no value ...", key); continue; } var range = Math.floor(Math.abs(value) / (thisColumn.limit / 10)); if (range > 10) range = 10; var percentToShade = (10 - range) / 10; if (TEComparable == -1 || TEComparable == 2) { thisColumn.upColor = '#34d65f'; thisColumn.dnColor = '#f93639'; } var color = shadeColor2(value < 0 ? thisColumn.upColor : thisColumn.dnColor, percentToShade); //console.log(value, percentToShade) if (IsDarkMode || IsDarkModeByForce) { if ($(td).children().length > 0) $(td).children().css({ 'color': color }); else $(td).css({ 'color': color }); } else $(td).css({ 'background-color': color}); } }); } colorMyTable(); setInterval(colorMyTable, 60 * 1000); }); </script> <script>/*! sortable.js 0.8.0 */(function () { var a, b, c, d, e, g; a = "table[data-sortable]", d = /^-?[£$¤]?[\d,.]+%?$/, g = /^\s+|\s+$/g, c = ["click"], b = function (a, b, c) { return null != a.addEventListener ? a.addEventListener(b, c, !1) : a.attachEvent("on" + b, c) }, e = { init: function (b) { var c, d, f, g, h; for (null == b && (b = {}), null == b.selector && (b.selector = a), d = document.querySelectorAll(b.selector), h = [], f = 0, g = d.length; g > f; f++)c = d[f], h.push(e.initTable(c)); return h }, initTable: function (a) { var b, c, d, f, g, h; if (1 === (null != (h = a.tHead) ? h.rows.length : void 0) && "true" !== a.getAttribute("data-sortable-initialized")) { for (a.setAttribute("data-sortable-initialized", "true"), d = a.querySelectorAll("th"), b = f = 0, g = d.length; g > f; b = ++f)c = d[b], "false" !== c.getAttribute("data-sortable") && e.setupClickableTH(a, c, b); return a } }, setupClickableTH: function (a, d, f) { var g, h, i, j, k, l; for (i = e.getColumnType(a, f), h = function (b) { var c, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D; if (b.handled === !0) return !1; for (b.handled = !0, m = "true" === this.getAttribute("data-sorted"), n = this.getAttribute("data-sorted-direction"), h = m ? "ascending" === n ? "descending" : "ascending" : i.defaultSortDirection, p = this.parentNode.querySelectorAll("th"), s = 0, w = p.length; w > s; s++)d = p[s], d.setAttribute("data-sorted", "false"), d.removeAttribute("data-sorted-direction"); if (this.setAttribute("data-sorted", "true"), this.setAttribute("data-sorted-direction", h), o = a.tBodies[0], l = [], m) { for (D = o.rows, v = 0, z = D.length; z > v; v++)g = D[v], l.push(g); for (l.reverse(), B = 0, A = l.length; A > B; B++)k = l[B], o.appendChild(k) } else { for (r = null != i.compare ? i.compare : function (a, b) { return b - a }, c = function (a, b) { return a[0] === b[0] ? a[2] - b[2] : i.reverse ? r(b[0], a[0]) : r(a[0], b[0]) }, C = o.rows, j = t = 0, x = C.length; x > t; j = ++t)k = C[j], q = e.getNodeValue(k.cells[f]), null != i.comparator && (q = i.comparator(q)), l.push([q, k, j]); for (l.sort(c), u = 0, y = l.length; y > u; u++)k = l[u], o.appendChild(k[1]) } return "function" == typeof window.CustomEvent && "function" == typeof a.dispatchEvent ? a.dispatchEvent(new CustomEvent("Sortable.sorted", { bubbles: !0 })) : void 0 }, l = [], j = 0, k = c.length; k > j; j++)g = c[j], l.push(b(d, g, h)); return l }, getColumnType: function (a, b) { var c, d, f, g, h, i, j, k, l, m, n; if (d = null != (l = a.querySelectorAll("th")[b]) ? l.getAttribute("data-sortable-type") : void 0, null != d) return e.typesObject[d]; for (m = a.tBodies[0].rows, h = 0, j = m.length; j > h; h++)for (c = m[h], f = e.getNodeValue(c.cells[b]), n = e.types, i = 0, k = n.length; k > i; i++)if (g = n[i], g.match(f)) return g; return e.typesObject.alpha }, getNodeValue: function (a) { var b; return a ? (b = a.getAttribute("data-value"), null !== b ? b : "undefined" != typeof a.innerText ? a.innerText.replace(g, "") : a.textContent.replace(g, "")) : "" }, setupTypes: function (a) { var b, c, d, f; for (e.types = a, e.typesObject = {}, f = [], c = 0, d = a.length; d > c; c++)b = a[c], f.push(e.typesObject[b.name] = b); return f } }, e.setupTypes([{ name: "numeric", defaultSortDirection: "descending", match: function (a) { return a.match(d) }, comparator: function (a) { return parseFloat(a.replace(/[^0-9.-]/g, ""), 10) || 0 } }, { name: "date", defaultSortDirection: "ascending", reverse: !0, match: function (a) { return !isNaN(Date.parse(a)) }, comparator: function (a) { return Date.parse(a) || 0 } }, { name: "alpha", defaultSortDirection: "ascending", match: function () { return !0 }, compare: function (a, b) { return a.localeCompare(b) } }]), setTimeout(e.init, 0), "function" == typeof define && define.amd ? define(function () { return e }) : "undefined" != typeof exports ? module.exports = e : window.Sortable = e }).call(this);</script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-SZ14JCTXWQ"></script> <script> window.dataLayer = window.dataLayer || []; function ga() { dataLayer.push(arguments); } ga('js', new Date()); ga('consent', 'default', { 'ad_personalization': 'granted', 'ad_storage': 'granted', 'ad_user_data': 'granted', 'analytics_storage': 'granted', 'functionality_storage': 'granted', 'personalization_storage': 'granted', 'security_storage': 'granted' }); ga('config', 'G-SZ14JCTXWQ'); </script> </body> </html>