This website is for educational purposes only and does not constitute investment advice. Always do your own research and assess your own risk tolerance before making investment decisions.

SG End-of-Day Verdict 4 Sept 2026, 17:00:00 GMT+8

SG Off-the-Radar — End-of-Day Verdict

EOD 2026-09-04 (sgotr)

Recommendations

2 to acquire · 1 to dispose

TickerNameCloseActionAction 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
J36Jardine Matheson58.42BUY — QUEUED @58.0758.0756.7458.31 (+0.4%)59.81 (+3.0%)45.91 (-20.9%)We are putting in a patient limit order to buy Jardine Matheson at S, a touch below today's close. This is the trade the book has been waiting for: Jardine has screened as genuinely cheap for weeks - our fair-value work puts it materially below intrinsic worth with the quality screen passed - but our rule is that cheapness alone never buys anything, we need the chart to turn first. Tonight it did, with the signal flipping from avoid to buy after three sessions of caution. We size it at the standard weight rather than the larger weight the discount would allow, because our own 12-week projection for the stock is negative and the shares sit below their long-term trend line - so this is a value entry into a downtrend, taken with a defined stop 2.3% below the entry rather than a conviction bet. If the limit is not filled within three sessions it expires. Operational nuance: conviction 68 + val_adj +9 (MoS_FV +0.4259 x 20, Quality_Pass True) + scorecard_bias 0 (no MeanRevUp_LowerBand cell) = adj 77, top of the book. OTR-2 AUTHORIZES this trade - the lesson that held J36 out ('UNDERVALUED needs a BUY signal >=65 to ') is satisfied at cv68. Quality gate was LIVE (new entry) and PASSED. Entry_Distance_ATR -0.26 -> SGO-5 limit-on-pullback, not market. Size held to 1.0x not the permitted 1.25x because Target_12Week 45.91 is -20.9% vs the action price and close 58.42 < EMA200 63.77. R:R 1.31:1 vs the 56.74 stop, thin. Risk to stop S = 0.32% of NAV SNotional 0.6918 x NAV x 0.20 (buy_pct_of_portfolio, sg.ini) = S -> 4,813.9 -> on the SG 100-lot = S (13.8% of NAV); max_position_pct headroom Sand Sboth non-binding. Estimates use f = 0.138, the measured calib_1w (16 graded buys >= 10); no ADR-0013 Est_*_Point columns on this book. Systemic finding #1: the framework has no buy-side dead-forward-view veto - G3 governs trims only - so nothing in the rules blocked this despite the negative 12wk. · news
Z74Singtel4.52BUY4.524.454.54 (+0.4%)4.68 (+3.5%)4.51 (-0.2%)We are buying Singtel at the open, around S. It is the strongest buy signal in the book tonight and the signal arrived alongside a real corporate catalyst - the KKR-Singtel consortium has just completed its takeover of the STT GDC data-centre business, which is the kind of structural news that turns a stock's chart. The shares are trading exactly at the level our model wants to pay, above their long-term trend, with the tightest protective stop of anything we own: we risk about 1.5% of the money committed to find out if we are right. The wider record backs it up - profits beat expectations last quarter, the company has bought back roughly half a billion dollars of its own stock this year, debt is falling, and the shares still trade well below the Asian telecom average. Two honest cautions: the signal family behind this entry has a poor record in this book, and our 12-week projection is flat, so treat this as a four-week trade with a floor rather than a long-term compounder. Operational nuance: conviction 78 (Buy_Rank #1) + val_adj -3 (MoS_FV -0.5917 x 5) + scorecard_bias 0 = adj 75. Quality_Pass True - the quality gate was LIVE (new entry) and PASSED. Entry_Distance_ATR 0.00 (exactly at model entry) and RSI 58.98 < 75, so the no-chase rule does not bite: market order, not a queue. Close 4.52 > EMA200 4.391 - a with-trend entry, unlike J36. CAUTION (printed, not applied): L1 discounts FailedBreakdown_Up_20D chases (~0.25 hit, stop-first ~60%) and this book's live cell is 0-for-2 at both 1wk and 4wk - n=2, report-only, so no bias adjustment was made; if it reaches n=5 at this rate the ~-8/-10 bias would retroactively have blocked this entry. Target_12Week 4.51 is one cent BELOW the action price (systemic finding #1/#2). 0.6918 x NAV 2,020,193 x 0.20 = S -> 61,839 -> on the 100-lot = S (13.8% of NAV); risk to stop (4.52-4.45) x 61,800 = S = 0.21% of NAV. R:R 2.29:1, best of the card set. Estimates use f = 0.138 (measured calib_1w). Event Horizon has ZERO Z74 entries - the telco leg is uncovered by sg_horizon.json; treat as a coverage gap, not an all-clear (systemic finding #5). · news
O39OCBC Bank32.27SELL 50%32.2731.1132.80 (+1.6%)36.12 (+11.9%)41.71 (+29.3%)We are selling half the remaining OCBC position and letting a small rump ride. The holding is up 12.7% on our cost and has more than matured as a gain, and tonight the signal behind it fell apart - conviction more than halved in a single session and the recommendation dropped from a strong buy to a simple hold, even as the price made another new high. A big profit plus a sharp deterioration in the case for holding is exactly when our rules say to take money off the table, so we take half. This is a step up from the quarter-sized trims of the last two sessions, and it is warranted: those were driven by the same momentum warning firing repeatedly, whereas this one is a genuine change in the underlying signal. The bank itself is still performing exceptionally - record quarterly profit up 22%, record wealth income, a capital-return programme completing this year - which is why we keep a residual stake and raise its protective stop rather than exiting entirely. Operational nuance: ADR-0012 profit-take, ARMED (Gain_ATR 6.28 = (32.27-28.63)/0.5798; Avg_Cost 28.63 hand-verified against input/sgotrportfolio.json, unchanged by the 09-04 fill; T12 span non-inverted at 77.37%) + TWO ticks -> profit_take_2 = 50%. Tick (b) FIRES and is the material change: conviction = -38, nearly double the -20 bar, Action STRONG BUY - ADD -> HOLD, signal rotated PullbackBuy_VWAP -> BreakoutUp_52W. This is a REAL deterioration tick, not the recycled state flag - the inert PROPOSED lesson R4 ('a fired tick is spent') would have voided the 09-02/09-03 trims but does NOT void this one. Tick (a) also fires (RSI_DIV still on the row) and is now the second tick, not the first. Ticks (c)/(d) NEGATIVE: Target_12Week 41.71 >> 1.02 x close 32.92; not NO TRADE. G1 NOT engaged - the softening needs a fresh BreakoutUp_*/MomentumContinuation_* at conviction >=80 and this row is BreakoutUp_52W at 46; and by the ACTIVE text tick (b) fires regardless of G1. G2/G3 govern the valuation-elevate path only. Catalyst-aware hold considered and REJECTED as inapplicable: it covers index-inclusion/earnings catalysts on the name within 5 sessions, whereas US NFP 09-04 is macro, two-sided and stance hold-through, and the STI September review already passed with no constituent change. No valuation amplification (MoS -0.750 is neither <=-3 nor UNDERVALUED); SGO-3 voids the Quality_Pass=False and suppresses the DCF anchor annotation on this IsFinancial row. VOLUME uses the LIVE from input/sgotrportfolio.json, NOT the scan row's stale Held=800 - the executor wrote the 09-04 fill ~2s after the scan read the portfolio (SGO-1/SGO-4 write-lag): 50% x 600 =, a clean SG 100-lot, effective 50.0%. Proceeds Srealized +S (+12.71%) on the 28.63 basis; retained = S = 0.48% of NAV, now a rump. Trail RAISED 30.81 -> 31.11 (2.0x ATR chandelier 32.27 - 1.1595); the row's own Stop_Price prints 31.30, above the chandelier, noted as the tighter alternative - trails never fall. CAUTION on the 4wk figure: Target_Price jumped 32.79 -> 36.12 in one session purely on the rotation to BreakoutUp_52W, and L1 records that BreakoutUp_52W 4wk targets overshoot +55-75% and mean-revert - treat 36.12 as an optimistic upper marker. Estimates use f = 0.138 (measured calib_1w). Prior fill reference: the 09-03 verdict executed 09-04 at 32.00 vs a 31.92 close-reference, a +0.25% favourable gap. · news
D05DBS Group Holdings78.65HOLD78.8276.7679.51 (+0.9%)85.00 (+7.8%)93.55 (+18.7%)We are holding DBS and adding nothing - the signal recovered tonight and now clears our bar to commit new money, but the position is already larger than our single-name ceiling allows, so there is no room for even one more lot. The buy case strengthened: conviction rose, the shares closed just below the level our model wants to pay so there would have been no chasing involved, and our 12-week view is 18.9% above today's price. The block is purely one of position size - DBS is 60.3% of the portfolio against a 60% cap, and it got further offside precisely because the stock keeps rising. We raise the protective stop to track the advance and wait. Operational nuance: Action BUY - ADD, conviction (recovering), signal MomentumContinuation_Up, Buy_Rank #2. val_adj -3 (MoS_FV -0.6302 x 5), scorecard_bias 0 (MomentumContinuation_Up|buy is n=4, report-only, hit_1w.25 / hit_4w.25) -> adj 70, CLEARS the 65 floor. The order has flipped back from 09-03: the signal is no longer the constraint, the cap is. max_position_pct 60.0 (sg.ini): S / NAV S = 60.34%, headroom -S - WORSE than last night's -Sbecause D05 rose 0.9% while the O39 fill was NAV-neutral; tonight's Z74/J36 purchases spend cash without changing NAV so they open no headroom either. Fourth consecutive session the cap has blocked a floor-clearing add. Entry_Distance_ATR +0.17 means the close sits just BELOW the model entry - no chase issue at all. Exit_Warning RSI_DIV is present but INERT: D05 is NOT armed (Gain_ATR 2.42 < 3.0, T12_Progress_Pct 84.07 < 90), so no ADR-0012 path opens. Position +3.27% (+S) on the 76.1606 blended basis. Stop RAISED 76.59 -> 76.76 (the row's own Stop_Price advanced above the carried level); close 78.65 sits 2.5% above it. RSI 70.16 is elevated but under the 75 suppression threshold. SGO-3: Quality_Pass=False non-binding (IsFinancial, FV=ResInc) and it never blocks an ADD in any case; DCF anchor annotation suppressed. Estimates use f = 0.138 (measured calib_1w). · news

Outcome & track record

Accuracy at the time of this record.

41 Graded decisions Past recommendations old enough to score against what actually happened (target hit / stopped out / closed). This is the evidence base — the bigger the number, the more history behind the calls. Click to inspect every one. See the decisions →
0.138 1-week calibration How much of the eventual 4-week move typically shows up in the first week (0 = almost none, 1 = most of it). Use it to read the 1-week estimates: a low number means prices drift toward the target slowly, so don't over-read a soft week-1.
50 Published records How many dated end-of-day verdicts exist for this book — the length of the public track record you can browse in the Archive below.

This website is for educational purposes only and does not constitute investment advice. Always do your own research and assess your own risk tolerance before making investment decisions.