Recommendations
1 to acquire · 1 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 |
|---|---|---|---|---|---|---|---|---|---|
| S68 | Singapore Exchange | 25.57 | BUY — QUEUED @24.80 | 24.80 | 24.35 | 24.97 (+0.7%) | 26.03 (+5.0%) | 28.57 (+15.2%) | Singapore Exchange printed a perfect conviction score today - STRONG BUY at 100, the strongest signal this book has recorded since inception - ranked #1, with the trend reading at 95, momentum finally joining at 67, and the shares closing at a fresh 52-week high. The business is compounding as fast as the chart: SGX just delivered its strongest-ever half-year with net revenue up 7.6% to S, operating profit up 10.8%, securities daily traded value up 19.5%, 15 IPOs raising S$3bn, and a committed quarterly dividend ladder running through FY2028. The stock is up ~36% year to date. We are still not chasing it - the order goes in as a good-till-cancelled limit about 3% below today's close, so we get paid to wait for the pullback rather than buying the high. Operational nuance: this REPRICES yesterday's 24.72 limit, which did NOT fill (session low 25.30; the scorer independently carries it as unfilled, taking the book to 18). Per the action-price provenance rule and SGO-5, the order moves to the LIVE printed model entry 24.80 - never carried forward at a stale level, never a deeper self-invented one. Fusion: 100 raw - 9 val_adj + 0 bias = 91 vs the 65 floor. The -9 is the known ResInc artifact (SGO-3 / systemic finding #3) routing an asset-light exchange through a bank residual-income model that implies SGX is worth S; applied as written and immaterial at this conviction. Quality_Pass True. Size modulator 0.75x on MoS -1.84. Entry_Distance_ATR -2.08 forces the no-chase queue per L1/SGO-5; RSI 65.6 < 75 and entry < close so the suppression does not fire. DCF anchor annotation suppressed per SGO-3 (IsFinancial). Sizing: 0.9651 x Sbook x 20% buy_pct = Sx0.75 = S, /24.80 = 11,633 -> rounded DOWN to the 100-lot = S (14.4% of book). Stop 24.35 (-1.81%), R:R 2.7:1. Executes at the 08-27 open per L8; reprice if the open gaps >1.5%. Expires 2026-08-31 (3 sessions: 08-27, 08-28, 08-31). Live variable: NVDA Q2 FY2027 prints tonight, flagged by the Event Horizon as a +-1.8% read-through to S68 via regional risk appetite -> turnover, tagged hold-through; a limit 3% below the close is the instrument that benefits from a risk-off gap. Also in the window: 08-28 MSCI SG futures expiry, 08-31 MSCI QIR closing auction - both hold-through. Caution for the file: this book has now failed to fill FOUR S68 queues (07-09 @24.79, 08-06 @24.00, 08-14 @24.27, 08-25 @24.72) while the name ran 24.89 -> 25.57; the no_chase_queue counterfactual reads [cost], median withheld 1wk +5.17% (n=25). · news |
| O39 | OCBC Bank | 31.44 | SELL 26.67% | 31.44 | 30.42 | n/a | n/a | 41.70 (+32.6%) | We are banking part of a good win in OCBC. The position is up 9.8% and has been flagged as profit-ready for five straight sessions; today the signal underneath it broke - our conviction score collapsed from 53 to zero and the model's internal readings turned outright conflicted, with the trend still strong but momentum falling away beneath a stock that is still making new highs. That combination - a large gain plus a signal that has stopped working - is our rule for taking money off the table, so we sell about a quarter of the holding and keep the rest running on a raised protective stop. The bank itself is doing well (record first-half profit up 13% to S19bn, wealth assets up 13% to S$350bn, interim dividend up 15%) and the 12-week view is still a third higher, which is exactly why this is a trim and not an exit. Operational nuance: ADR-0012 profit-take, ARMED (PROFIT_ARMED prints, Gain_ATR 5.26 >= 3.0, +9.81% on 28.63 cost, T12_Progress 75.4) and FIRED on tick (b) - conviction, a 53-point collapse vs the -20 threshold; signal BreakoutUp_52W -> NoTrade; Pillar_Consensus Trending -> Conflicted; Trend 90 vs Momentum 24. Ticks (a) no second warning code, (c) T12 41.70 vs the 32.07 dead line = alive +32.6%, (d) first NO TRADE not the second - all negative. SGO-4 checked and does NOT apply: NoTrade_Reason is 'Consensus conflict + low conviction' (the engine's genuine read), NOT a liquidity gate or post-fill write-lag, and every position column is populated. G1 not engaged (current signal is NoTrade cv0, not a fresh BreakoutUp/MomentumContinuation at cv>=80) and in any case G1's softening applies only to tick (a) - ticks (b)/(c)/(d) fire regardless. G2/G3 govern the valuation-elevate path only and explicitly do not block a fired profit-take; moot here since valuation originates nothing (MoS -0.74, non-binding SGO-3 ResInc, no tier bump). Catalyst-aware clause addressed not dodged: 08-28 Warsh, 08-28 MSCI SG futures expiry and 08-31 MSCI QIR are inside 5 sessions, but O39 faces no index INCLUSION and no earnings, and the Event Horizon tags every one hold-through for the bank leg (reserving tighten-trail for the S-REIT leg this book does not hold) - we take 27% off into the ladder and hold 73% through it. Portion: profit_take_1 = 30% (one tick; not 50% - no second tick, no Tier-2/3 AVWAP_BREAK/EMA10_BREAK). 30% x 1,500 = 450 -> rounded DOWN to the 100-lot = 26.7%, numerically identical to the 08-18 O39 profit-take on this same pattern. Proceeds Srealised gain SResidual; trail HOLDS 30.42 (row prints no Stop_Price - NO TRADE blanks it, engineering-backlog item (c) - so the manual stop carries per SGO-4; 2xATR chandelier 30.37 is below the incumbent so nothing to ratchet to and a trail never steps down); headroom 3.24% / 1.91xATR; ADR-0020 clean (peak 30.42 = live, 0% erosion). 1wk/4wk estimates are n/a because NO TRADE blanks Target_Price/Stop_Price - inventing one would be fabrication; the model's own near-term band is Est_Low 30.81 - Est_High 32.41. NOT optional - ADR-0012 bans optional-trim language on a fired profit-take. COUNTER-EVIDENCE recorded for the learnings review (advisory, report-only, correctly NOT applied): this book's NoTrade (PROFIT_ARMED)|sell cell is n=4 hit_1w 0.333, and the optional_trim counterfactual reads [saved], median +1.12% 1wk / +7.71% 4wk forgone by trimming (n=7). See systemic finding #2 - tick (b) fires automatically on any first NO TRADE, which makes tick (d)'s two-print requirement unreachable; that tension needs resolving. Executes at the 08-27 open per L8; qty_after 1,100 is a post-execution target and qty_at_decision stays 1,500 so the monitor only flags a fill once the portfolio JSON moves. · news |
| D05 | DBS Group Holdings | 76.24 | HOLD | — | 75.43 | n/a | 78.69 | 91.13 | DBS remains the anchor of the book and there is nothing to do. The shares were essentially flat today, the position is 2.1% ahead of cost, and the 12-week view of Sis still nearly 20% above the current price. The bank just crossed S$6bn of income in a single quarter for the first time, confirmed a total dividend of Sper share, and there is no warning signal of any kind on the position - so we keep holding on the existing protective stop rather than touching it into next week's event calendar. Operational nuance: conviction eased, a -10 drift and NOT the -20 collapse, and immaterial on an unarmed name. NOT PROFIT_ARMED (Gain_ATR 1.44 < 3.0; T12_Progress 83.66 < 90), no Exit_Warning, so no ADR-0012 path is open and no CLAUDE.md 9 sell origination exists. 12wk eased 91.75 -> 91.13 (+19.5%), no tick (c) risk. Trail HOLDS at 75.43 - today's printed model stop 73.85 and the 2xATR chandelier 74.11 are both lower, and a trail never steps down. HEADROOM SLIPS to S / 1.06% (0.76xATR) on a position that is 29.5% of the book and 92.6% of its exposure, one session from a +-2.5% event band: systemic finding #1 (no minimum-headroom floor on the ratchet, and a signal-local 08-21 stop serving as a permanent watermark) stands for a third consecutive session. ADR-0020 clean (peak 75.43 = live 75.43, 0% erosion). Valuation non-binding on a held SG bank per SGO-3 (IsFinancial/ResInc; Quality_Pass False is the generic F-Score screen and is structurally inapplicable). Also noted: DBS announced the 2027 retirement of North Asia head Sebastian Paredes with continuity emphasised - no signal impact. Catalyst-aware hold through the 08-27 US PCE bank leg and Q2 GDP, the 08-28 Warsh Jackson Hole keynote (widest band in the window) and the 08-31 MSCI QIR auction - all tagged hold-through; do not pre-trim into any of them. If the S68 buy fills, D05 falls from 92.6% to 64.6% of exposure, which materially improves this risk picture without selling a share of it. · news |
Outcome & track record
Accuracy at the time of this record.
34 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.