Singapore — End-of-Day Verdict
27th cycle: OCBC's record 1H lifts O39 to STRONG BUY - ADD cv90 at BuyRank #1 and its real-cost profit-take is downgraded by G1 to a trail-raise; B61's armed exit FIRES on the 2nd close below the rebased stop, freeing the the book has lacked for a month; and the holdings file is now static for **17 consecutive cycles** with FOUR undecided cards
Recommendations
2 to acquire · 2 to dispose
| Ticker | Name | Close | Action | Action Price Where to act — a buy-limit on a pullback or a buy-stop above resistance, not the current price. Sanity-check vs Close: on a held name, an action price stranded above the close means the queued level was set when the stock was higher — stale, awaiting reprice. | Stop The risk-defined exit, set below the entry for a long (~1.2–1.8×ATR). A held long whose Stop sits at/above the Close is already below its stop — a stale box awaiting reprice. | 1wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | 4wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | 12wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | Rationale |
|---|---|---|---|---|---|---|---|---|---|
| O39 | OCBC Bank | 30.30 | ADD — QUEUED @29.82 | 29.82 | 28.51 | 30.26 (+1.5%) | 29.92 (+0.3%) | 31.03 (+4.1%) | OCBC just posted a record first half - net profit S19bn (+13% YoY), interim dividend lifted 15% to 47 cents, and non-interest income up 36% to a record S51bn - and the shares broke to a new high on triple-normal volume, giving the strongest buy signal this holding has printed (conviction 90, top-ranked in the book). We are adding, but only on a pullback: the stock closed 1.6% above the level our model wants to pay and RSI is hot at 73, so we queue a limit at Srather than chase the earnings pop. Valuation is mildly rich on a residual-income basis, which trims the case slightly but does not block an add to a position we already own. A fill before the mid-August ex-dividend also captures the 47-cent interim. OPS: GTC limit @29.82, entry band 29.66-29.98 (+/-0.25 ATR), expires 2026-08-13. Model portion 114.38% x 1,000 = at the 100-lot; size modulator 1.0x (MoS -0.61). Quality gate False does not block - held ADD, not a new entry. Risk SL6 + no-chase both bite (eD -0.73, RSI 72.6, same-day post-earnings gap). SG-6 exception explicitly checked and FAILS on all three limbs (cv90 < 95, extended, RSI-hot) -> strict queue. Stop raised 28.28 -> 28.51. Separately, the ADR-0012 profit-take armed (real Avg_Cost 25.93, Gain_ATR 6.69) and fired on tick (a) RSI_DIV, but G1-softened downgrades a Tier-1 code on a fresh BreakoutUp cv90 to a trail-raise - no trim. Cancel this card only if the S58 reconcile shows no free cash AND B61 does not execute. · news |
| D05 | DBS Group Holdings | 76.33 | ADD — QUEUED @75.87 | 75.87 | 73.28 | 75.92 (+0.1%) | 75.65 (-0.3%) | 78.90 (+4.0%) | DBS is following through on yesterday's record quarter - net profit up 9% to S08bn on all-time-high total income of S09bn, with full-year guidance raised - and the shares closed at the day's high, up another 1.7%. The breakout signal is intact but has cooled from very strong to solid, and the stock is now sitting above where our model wants to buy, so we queue a limit at Sinstead of buying at market. Be clear-eyed about the payoff: the model sees the post-results move as fully priced for the next month and puts essentially all of the expected return in the 12-week leg, helped by the mid-August dividend a pre-ex fill would capture. OPS: reprices - does NOT republish - the unfilled 08-06 card (stale limit 75.07 -> live entry 75.87) per the provenance rule. GTC limit, entry band 75.55-76.19, expires 2026-08-13. Model portion is unfundable; is set by residual cash after O39 (ranked first at adj 87): S - S = S / 75.87 = at the lot. Risk SStop raised 72.50 -> 73.28. RSI_DIV + PROFIT_ARMED print but the arm is VOID under SG-7 (no Avg_Cost). CONTINGENT: cancel this card if the unreconciled 08-05 S58 buy-stop (4,900 x 4.85 = S) is confirmed filled - the book would then have ~Sfree cash. · news |
| B61 | BT Sembawang Estates | 4.54 | SELL 30% | 4.54 | 4.62⚠ | 4.53 (-0.2%) | 4.53 (-0.2%) | 4.58 (+0.9%) | Our largest holding has now closed below its stop-loss line for a second straight session and has failed to recover the 22-cent dividend it paid on 5 August, while the model's forward view has gone flat - one- and four-week estimates are slightly negative and the twelve-week view has faded to under 1%. That combination triggers the exit condition we armed yesterday. We are selling 30%, not the whole position: the shares still screen as undervalued on intrinsic worth and sit above their long-term trend line, so this is a first tranche that cuts the book's biggest concentration and frees the cash we have lacked for a month, not a verdict that the name is broken. OPS: market order at the open, ~S, (30% x 26,300 = -lot); residual = STicket is 6.3% of ADV - single-session workable. Basis is L2 + the SG book note: NoTrade cv0 label admitted on stop-break + flat 12wk, not on a sell label. SG-2's second leg is FLAT not decisive (Est_12W +0.9%), which is exactly why this is 30% and not an exit. Valuation UNDERVALUED (+0.216) argues the trim DOWN one tier - 30% is already the minimum, so no escalation to 50%. PROFIT_ARMED on this row is VOID under SG-7 (no Avg_Cost). Sdividend already ex on 08-05; Sreceivable unaffected. RE-ARM tranche 2 on a close below 4.50 or Est_12W turning negative; a reclaim of 4.62 disarms. · news |
| HMN | CapitaLand Ascott Trust | 0.86 | SELL ALL | 0.86 | 0.88⚠ | 0.86 (+0.0%) | 0.86 (+0.0%) | 0.88 (+2.3%) | This small trust has now closed below its stop for a fourth straight session and has broken below all three of its short-, medium- and long-term trend lines, with the model pointing to a further 8% downside. We recommended trimming it yesterday and the trade was not executed, so we are escalating to a clean exit of the whole holding at the open rather than leaving an unsellable stub behind. The dollars are trivial - the entire position is about S - so this is housekeeping and discipline rather than a decision. OPS: market order, full (sweeps the 300-sh residual the 08-06 80% card would have left - _state.json flagged it as a de-minimis stub to sweep with the next disposal, and this is it). SG-1 escalation at cycle 2: unconditional market order, no limit. Label DEGRADED this session (STRONG SELL - REDUCE cv78 -> AVOID cv47), which is why the card rests on the stop-break + EMA200 break, not the label (SG-2/SG-5: SG sell labels fade). Valuation MoS -0.81 = no tier change (amplify needs <= -3). PROFIT_ARMED VOID under SG-7. |
| S68 | Singapore Exchange | 24.51 | HOLD | — | 23.56 | 24.55 | 24.39 | 24.69 | SGX delivered a genuinely strong full year - revenue up 13.9% to S48bn, adjusted earnings per share up 24.6%, daily traded value up 35% to an 18-year high, and 21 new listings versus six a year earlier - but the market faded it: the shares ran to Sintraday and settled at S, 2.4% off the high. We had queued a conditional add pending these numbers; the signal collapsed rather than re-armed, so we hold what we own and add nothing. OPS: the 08-06 deferral required an 08-07 post-print close reprinting a non-extended PullbackBuy_VWAP. It did not - STRONG BUY - ADD cv81 -> NO TRADE cv0 on 'Liquidity gate failed'. ADD RE-ARM FAILS. Stop held at 23.56. RSI_DIV + PROFIT_ARMED print; arm VOID under SG-7. See systemic finding 3 - the liquidity gate appears to misfire on high-volume event days (3.59M shares) and cost this name a legitimate evaluation. · news |
| C07 | Jardine Cycle & Carriage | 28.29 | HOLD | 28.29 | 26.38 | n/a | n/a | n/a | The book's only genuinely cheap quality name - it screens undervalued on intrinsic worth and passes the quality screen, the only holding to do both - and it is showing the pullback-entry pattern that has historically been our most reliable buy setup. It falls one point short of our action threshold, so we hold rather than add, and watch for a slightly stronger print. OPS: NEAR-MISS. cv54 + val_adj +10 (UNDERVALUED, MoS +0.616, Quality_Pass True) = adj 64 vs the 65 floor. eD -0.44. Re-evaluate on a cv>=56 reprint, which would clear the floor unaided. Held (S), stop 26.38. |
| U11 | United Overseas Bank | 43.30 | HOLD | 43.30 | 42.15 | n/a | n/a | n/a | UOB reported second-quarter results today and the shares are sitting in the pullback zone we prefer to buy - not extended, unlike the other two banks - but the signal is only a hold, not a buy, and conviction is well short of what we require to commit cash. We hold the position and keep the trailing stop where it is. OPS: eD +0.25 - genuinely non-extended, the L1-favoured shape - but the label is HOLD (not in the buy pool) and cv53 is 12 points under the 65 floor. Trail 42.15 stands. Q2 results per the horizon file; no fresh headline surfaced in the bounded search. |
| J69U | Frasers Centrepoint Trust | 2.21 | HOLD | 2.21 | 2.17 | 2.21 (+0.0%) | 2.21 (+0.0%) | 2.26 (+2.3%) | The model is flagging this REIT as a sell again, but it is still trading above the stop level we set and its twelve-week outlook remains positive, so the case does not hold up. This particular sell pattern has been wrong roughly two-thirds of the time in this book, and we require a genuine stop break before acting on it. No action. OPS: SG-2 FAILS for the 7th time - close 2.21 is ABOVE the recorded 2.17 stop and Est_12W 2.26 is +2.3%, positive. RallySell_BearTrend|sell carries the ACTIONABLE -3 haircut (n=9, hit_1w.333) -> adj 46. Loud label, no basis. Same adjudication as N2IU (adj 38, close 1.28 vs stop 1.27). |
Outcome & track record