ADVERTISEMENT

Profit-taking looms for local equities as positive narratives fizzle

Published Nov 24, 2025 12:00 am  |  Updated Nov 22, 2025 03:52 pm
While some optimism injected life into the local stock market last week, stocks remain undervalued, with no major economic news expected this week to serve as a catalyst to sustain the recovery.
“The local market has shown signs of life last week, bouncing strongly on the back of positive narratives. However, technically, the market is still considered to be on a downtrend,” said Philstocks Financial Inc. Research Manager Japhet Tantiangco.
Tantiangco noted that to negate the current trend, the index must establish a high exceeding its previous one at 6,141.87 touched on Oct. 20, and a low shallower than its last one at 5,584.35 touched on Nov. 14.
The local bourse remains undervalued, trading at a price-to-earnings (P/E) ratio of 10 times, below its five-year average of 17.3 times and the regional average of 17.9 times.
“To sustain the bargain hunting, we must see more positive catalysts at play. Without such, we may see the market succumb to profit taking again, especially since concerns over corruption issues and the local economy’s outlook are still weighing on sentiment,” Tantiangco warned.
He added that the market may also take cues from the movement of the local currency. An appreciation of the peso against the U.S. dollar is expected to help, but a depreciation is expected to drag the market.
Meanwhile, 2TradeAsia.com said market-implied odds for a December United States (US) Federal Reserve (Fed) rate cut—when the central bank meets on Dec. 9-10—have collapsed to around 20 percent to 40 percent. This reflects hawkish October Fed minutes and resilient U.S. labor data.
“Persistent above-target inflation, potential tariff pass-through, and elevated geopolitical risks point to a higher-for-longer rate environment extending into 2026,” the brokerage said. Consensus now sees global growth moderating toward 2.9 percent to 3.2 percent next year.
The firm advised that holiday liquidity, the end of the Fed’s quantitative tightening in December, and year-end window dressing should cap near-term downside. However, global caution warrants “disciplined positioning in quality compounders with strong balance sheets.”
For 2026 positioning, 2TradeAsia.com said the “playbook remains in favor of defensive yield plays and extremely selective cyclicals and consumer names, with some bias for those sensitive to interest rate differentials and exposed to foreign exchange (forex) weakness.”
Maynilad Water Services Inc. is recommended by COL Financial Group Inc. as a defensive play. Water demand is stable across cycles, and the company earns a regulated 12 percent return on approved investments under a concession running until 2047.
“At ₱15.46, the stock offers a 7.4 percent projected dividend yield and 24.8 percent upside to our fair value estimate of ₱19.3,” COL Financial noted.
Wilcon Depot Inc. also carries a BUY rating from COL. The brokerage upgraded the firm’s 2025 and 2026 earnings estimates following stronger-than-expected third-quarter results.
“We believe the outlook for the stock is improving, supported by stable topline trends,” COL said.

Related Tags

Philippine Stock Exchange (PSE)
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.