Recommendations
0 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 |
|---|---|---|---|---|---|---|---|---|---|
| O39 | OCBC Bank | 31.85 | SELL 27.27% | 31.85 | 30.80 | 32.05 (+0.6%) | 32.53 (+2.1%) | 41.04 (+28.9%) | We are taking a quarter of the OCBC position off the table after an 11.3% run, and letting the rest ride on a raised stop. The position is up Son and has been flagged profit-ready for five straight sessions; today, for the first time in that run, a second warning appeared alongside it - momentum diverging from a price still making highs. Our rule is that a large, matured gain plus any fresh sign of deterioration means banking part of it, so we sell and keep 800. The bank itself is doing very well - record second-quarter profit up 22%, first-half profit up 13% to S19bn, wealth income at a record and now 41% of the group - and our 12-week view is still 28.9% above today's price, which is exactly why this is a small trim and not an exit. Valuation is neutral on the decision (mildly rich on a residual-income basis, no tier change) and a bounded news search found nothing in the last two sessions that changes the case. Operational nuance: ADR-0012 profit-take, ARMED (Gain_ATR 6.12, hand-verified against the real 28.63 basis, non-inverted T12 span) + exactly ONE Tier-1 tick fired - (a) fresh RSI_DIV, first second-code print after four PROFIT_ARMED-only sessions. Ticks (b)/(c)/(d) all NEGATIVE: conviction (+37, no collapse), Target_12Week 41.04 >> 1.02 x close 32.49, not NO TRADE. Minimum tier profit_take_1 = 30% -> -> 300 on the SG 100-lot. NO escalation: horizon shows FTSE STI review 09-03 (hold-through, low confidence, base case no constituent change) and US NFP 09-04 (hold-through, two-sided +/-2.0%) - neither is an enumerated inclusion/earnings catalyst, both argue against a bigger cut. DOCTRINAL COLLISION FLAGGED: the same row prints STRONG BUY - ADD cv90 at Buy_Rank #1; G1's softening is family-scoped (BreakoutUp_*/MomentumContinuation_*) and does not cover a top-ranked PullbackBuy_VWAP, and G2/G3 explicitly do not block a fired take - so the trim fires as written. The inert PROPOSED lessons P2/Q3/R4 would each have made this a trail-raise instead; they are not applied. SGO-3: Quality_Pass=False is the generic F-Score screen, structurally inapplicable to an IsFinancial bank (FV=ResInc) - non-binding, and the DCF 32.21 anchor annotation is suppressed. val_adj 0 - MoS -0.750 is neither <=-3 (no bump) nor UNDERVALUED (no argue-down). Distinct instance from the 08-26 trim, which fired on tick (b) conviction collapse at 31.44. Retained : trail RAISED 30.52 -> 30.80 (2.0x ATR chandelier off the 31.85 close; the row's own Stop_Price 29.74 is lower and a trail never falls). L8: executes at the 09-03 open - reprice if the open gaps more than ~1.5%. Estimates are Step 7 fallbacks at f=0.30 (L5, calib_1w 0.138 degenerate); this book has no ADR-0013 Est_*_Point columns. · news |
| D05 | DBS Group Holdings | 77.60 | HOLD | 75.88 | 76.59 | 76.86 (+1.3%) | 79.16 (+4.3%) | 91.70 (+20.8%) | We are holding DBS and adding nothing, even though it is the strongest buy case in the book - the position is simply already as large as our rules allow. DBS prints a high-conviction pullback-buy signal with a 12-week view 18.2% above today's price, but the holding is already 60.0% of the portfolio against a 60% single-name ceiling, so there is no room for even one more lot. The stock also closed well above the level our model would want to buy at, so we would have been queueing a patient limit order rather than buying at market in any case. We keep the protective stop where it is and wait. Operational nuance: conviction 84, val_adj -3 (MoS_FV -0.630 x 5), scorecard_bias 0 -> adj 81, comfortably clear of the 65 floor; BLOCKED purely on max_position_pct = 60.0 (sg.ini) - S / NAV S = 60.03%, headroom -Sand tonight's O39 sale raises cash without changing NAV so it opens none. Entry_Distance_ATR -1.73 would independently have forced a QUEUED limit @75.88 under the no-chase rule. Exit_Warning RSI_DIV is present but INERT: D05 is NOT armed (Gain_ATR 1.45 < 3.0, +1.89% on the 76.16 blended basis), so no ADR-0012 path opens. Stop HELD at 76.59 - the row's Stop_Price fell to 73.89 and the 2.0x ATR chandelier computes to 75.61, both below the carried level, and a trail never falls. SGO-3: Quality_Pass=False non-binding (IsFinancial, FV=ResInc); DCF anchor annotation suppressed. Horizon: bank leg, FTSE STI review 09-03 and US NFP 09-04 both stance hold-through. · news |
Outcome & track record
Accuracy at the time of this record.
36 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.