AI · SG Blue Chips — Trades
Every virtual fill this book has made, with the model's reasoning — the fused signal, valuation and news case — behind each. Prices are model fills; quantities are never shown.
Fill history
33 recorded fills.
| Date | Ticker | Name | Side | Fill Px | Signal | Conv | Valuation | Why |
|---|---|---|---|---|---|---|---|---|
| 2026-09-07 | O39 | OCBC Bank | SELL | 32.14 | BreakoutUp_52W (PROFIT_ARMED+RSI_DIV) | 46 | OVERVALUED VS RI | rationaleWe 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 decided @ 32.27 · stop 31.11 · t1w 32.80 · t4w 36.12 · t12w 41.71 |
| 2026-09-07 | J36 | Jardine Matheson | BUY | 58.07 | MeanRevUp_LowerBand | 77 | UNDERVALUED | rationaleWe 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 decided @ 58.07 · stop 56.74 · t1w 58.31 · t4w 59.81 · t12w 45.91 |
| 2026-09-07 | Z74 | Singtel | BUY | 4.52 | FailedBreakdown_Up_20D | 75 | GROWTH PRICED IN | rationaleWe 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 decided @ 4.52 · stop 4.45 · t1w 4.54 · t4w 4.68 · t12w 4.51 |
| 2026-09-04 | O39 | OCBC Bank | SELL | 32.00 | BreakoutUp_52W (PROFIT_ARMED+RSI_DIV) | 46 | OVERVALUED VS RI | rationaleWe 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 decided @ 32.27 · stop 31.11 · t1w 32.80 · t4w 36.12 · t12w 41.71 |
| 2026-09-03 | O39 | OCBC Bank | SELL | 32.18 | PullbackBuy_VWAP (PROFIT_ARMED+RSI_DIV) | 84 | OVERVALUED VS RI | rationaleWe are banking another quarter of the OCBC position and letting the rest ride on a slightly higher stop. The holding is up 11.5% on a 28.63 cost, and the momentum warning that prompted yesterday's trim is still showing - price making new highs while momentum lags. Our rule says a matured gain plus a sign of deterioration means taking some off, so we sell 200 of the and keep 600. The bank is performing strongly - 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.8% above today's price, which is why this stays a minimum-size trim rather than an exit. Valuation is neutral to the decision and a full news check across the last two sessions found nothing that changes the case. Operational nuance: ADR-0012 profit-take, ARMED (Gain_ATR 5.93 = (31.92-28.63)/0.5547; Avg_Cost 28.63 hand-verified against input/sgotrportfolio.json and unchanged by the 09-03 partial fill; T12 span non-inverted) + ONE Tier-1 tick: (a) RSI_DIV present on the row. HONESTY FLAG - this is the SAME RSI_DIV that fired the 09-02 trim, not a new code; tick (a) is written as a state test ('any other Exit_Warning code on the same row'), not a freshness test, so it re-fires. The inert PROPOSED lessons R4 ('a fired tick is spent') and P2 (require arm persistence or a Tier-2/3 warning before trimming a name with a strong live 12wk view) would each have made this a trail-raise instead; both remain unpromoted after six weekly blocks. Ticks (b)/(c)/(d) NEGATIVE: conviction (-6, needs -20), Target_12Week 41.12 >> 1.02 x close 32.56, not NO TRADE. G1 does not rescue it - the softening is family-scoped to BreakoutUp_*/MomentumContinuation_* and this is PullbackBuy_VWAP; G2/G3 govern the valuation-elevate path only. Minimum tier profit_take_1 = 30% -> -> 200 on the SG 100-lot (effective 25.0%). No valuation bump (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. NOT escalated: the 09-03 FTSE STI review passed with no constituent change and US NFP 09-04 is stance hold-through. Trail RAISED 30.80 -> 30.81 (2.0x ATR chandelier 31.92 - 1.1094 = 30.8106); trails never fall. Estimates use f = 0.138, the MEASURED calib_1w - graded buys crossed 10 (now 16), so L5's f=0.30 fallback stands down for the first time since the ADR-0014 reset. Prior fill reference: the 09-02 verdict executed 09-03 at 32.18 vs a 31.85 close-reference, a +1.04% favourable gap. · news decided @ 31.92 · stop 30.81 · t1w 32.04 · t4w 32.79 · t12w 41.12 |
| 2026-09-01 | D05 | DBS Group Holdings | BUY | 77.60 | FailedBreakdown_Up_20D | — | OVERVALUED VS RI | rationaleReconcile line - the 2026-08-31 DBS add EXECUTED. The session high of 77.78 traded through the 77.20 buy-stop and input/sgotrportfolio.json now reads at an average cost of 76.1606, up from 7,700. This is the only executed acquisition anywhere in the HK/SG estate tonight. It is also the control case for the executor outage: the IDENTICAL card in the sg book - same name, same 77.20 trigger, same session - did NOT execute and is now flagged UNRECONCILED under ADR-0019. Same decision, different execution layer. This book's Auto-Executor last ran 2026-09-01 and is one of only three in the estate that is not stale. Stop raised 75.43 -> 76.59 (live model level, above the carried value). NOTE: the position is now S = 59.8% of book NAV, exactly on the 60% max_position_pct cap - no further D05 adds are possible. decided @ 77.20 · stop 76.59 · t12w 90.74 |
| 2026-08-28 | O39 | OCBC Bank | SELL | 30.85 | NoTrade (PROFIT_ARMED) | 0 | OVERVALUED VS RI | rationaleWe 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 decided @ 31.44 · stop 30.42 · t12w 41.70 |
| 2026-08-24 | G07 | Great Eastern | SELL | 21.18 | NoTrade (EMA10_BREAK+PROFIT_ARMED) | 0 | OVERVALUED VS RI | rationaleGreat Eastern has been the book's best trade and it is now unwinding a parabolic run, so we are banking the whole +14.5% rather than dribbling out another. The stock ran +34.9% in a month to an RSI of 82, then gave it back in four sessions - RSI, conviction - and on 20 Aug the engine itself printed SELL - WARNING as the book's top-ranked sell with an EMA10_BREAK exit warning. Today it closed 20.91, decisively through the 21.54 trail, near the session low on the heaviest volume of the move. The H1 results were genuinely good (net income S, dividend raised to 35c) and are not in dispute; the price simply went too far and is retracing. Escalated from the carried 200-sh trim: three things changed since 08-19 (trail broken -2.9%; the 08-20 evaluable SELL - WARNING at Sell_Rank 1 / 80.28 carrying Tier-2 EMA10_BREAK; RSI 81.9 -> 52.6 and four straight 12wk down-revisions). Full rather than the profit-take's 50% because the warning row's own portion was 80.28%, the trail is broken (CLAUDE.md §9 decisive-stop-break / EMA10_BREAK ladder, which G1-G3 do not cover), and the name is liquidity-gated so scaling out risks worse fills. Today's NO TRADE cv0 is a LIQUIDITY-GATE BLANK and is explicitly NOT part of the basis (SGO-4, fourth occurrence). Honest counter: 12wk 28.93 is +38.4%, the book's highest forward view, and this exit gives it up - overridden because G3 governs the valuation-elevate trim path only, not a stop-break exit. L3 drove the escalation: the trim was carried unexecuted from 08-17 while the name fell 22.74 -> 20.91 (-8.0%). 1wk/4wk n/a - liquidity-gated row prints no leg; the 23.24 objective from 08-19 is void. Realised +S (cost 18.27, +14.45%), +Swith the 35c dividend banked 08-19. Quality_Pass=False non-binding and DCF annotation suppressed per SGO-3 (insurer, FV=ResInc). Trail 21.54 retired; ADR-0020 clean (peak 21.89, -1.6%, an ex-div adjustment). · news |
| 2026-08-24 | J36 | Jardine Matheson | SELL | 61.40 | FailedBreakout_Down_20D | 63 | UNDERVALUED | rationaleJardine Matheson has sat at or below its stop for nine straight sessions with a 12-week view stuck 13.8% below the current price, and a cheap valuation is not enough to keep holding a broken trend. The close of 61.69 is under the 61.76 trail, the price trades below every moving average and 4.0% under its 200-day line, and the model's 12-week projection of 53.18 has stabilised only after thirteen consecutive downgrades - flat at a loss, not recovering. The name screens UNDERVALUED (MoS +0.40), which would normally argue for trimming the minimum, but valuation can only soften a discretionary trim, not veto an exit that has already fired on trend. The August results were solid and three weeks old; the market has had them and sold them. Basis: fired full-exit clause + stop breach + negative 12wk (L2), carried and re-verified for a third session per book-note B (AVOID-degraded-from-SELL-REDUCE + below-stop + negative-12wk is a valid exit). Valuation tier-down OVERRIDDEN - amplify-only rules scale discretionary trims, not signal-originated exits with a breached stop. PROFIT_ARMED is a FALSE POSITIVE for an eleventh session (degenerate T12_Progress 116.0 on a -2.93% position, Gain_ATR -1.68). 1wk/4wk n/a - FailedBreakout_Down_20D prints no Target_Price, no long leg to interpolate. USex-div CAPTURED on the 08-20 ex-date (~US) because the 08-19 exit never executed; realised -Son shares, ~-Snet of the dividend. Trail 61.76 retired; ADR-0020 clean (peak 61.76, 0% erosion). · news decided @ 61.69 · stop 61.76 · t12w 53.18 |
| 2026-08-24 | S58 | SATS | SELL | 4.07 | NoTrade (PROFIT_ARMED) | 0 | FAIR | rationaleSATS gapped straight through its own stop and the 12-week case died with it, so we are taking the whole position off rather than hoping for a retest. The stock opened 20 Aug exactly at the 4.71 trail, fell to 4.06 and closed 4.12 on 33.9m shares - 8.2x normal volume - then failed to bounce (21 Aug close 4.07), leaving the position 13.6% below its risk line. The 12-week projection collapsed 5.67 -> 4.48 -> 4.09 in two sessions, so the model now sees just +0.5% of upside from here, and conviction went -> 0 with volatility more than doubling. Valuation is neutral on the exit (FAIR_VALUE, MoS -2.41 - no tier bump, no argue-down) and a bounded news search found no company catalyst explaining the drop, so the technical case stands alone and is decisive. Basis: decisive stop break + dead 12wk (L2). PROFIT_ARMED on this row is a FALSE POSITIVE (degenerate T12_Progress 99.51 on a -16.08% position, Gain_ATR -3.62) and is explicitly NOT the basis - this is not an ADR-0012 profit-take. Two consecutive genuine NO TRADE prints (Consensus conflict + low conviction, full position columns, not SGO-4 mechanical blanks). 1wk/4wk n/a - NO TRADE row prints no Entry/Stop/Target; the 4.97 objective from 08-19 is void after a -14.7% repricing. Realised -S (cost 4.85, -16.08%). Trail 4.71 retired; ADR-0020 not applicable (peak 4.71 = live 4.71, zero erosion - the price gapped through a working stop). NOTE: the executor has not run since 08-18, so a live stop-market would likely have filled near the 4.71 open on 08-20 - a Sscheduler cost, not a signal failure. · news |
| 2026-08-18 | G07 | Great Eastern | SELL | 22.88 | NoTrade (PROFIT_ARMED) | 0 | OVERVALUED VS RI | rationaleBanking a slice of the book's best trade. Great Eastern is up 23.4% on cost - a +34.9% month - and RSI 77 puts it well into overbought territory, 30% above its 200-day trend. Yesterday's BUY signal collapsed to no signal at all overnight (conviction 71 to zero), and the insurer goes ex-dividend on 35c tomorrow, so the easy part of this run is behind it. We take off and keep 700, because the 12-week view (S, +39.8%) is the strongest forward number in the book - this is profit-taking on extension, not an exit. Exit reason: ADR-0012 profit-take, armed (Gain_ATR 7.95, most armed in book) + tick (b) conviction collapse. Genuine engine verdict, not an SGO-4 mechanical blank (position columns intact). EXECUTION NOTE: 08-19 IS the ex-dividend open (35c) - holding through today's cum-date close earns Son, and the open marks down ~35c so expect a fill near S (~S). That mark-down is NOT a gap and must NOT trigger an L8 reprice. 30% x 900 = 270 -> floor =; MoS -0.68 not <= -3, no tier bump. Ladder -> -> 700. Realised +Sat the expected ex-div fill (cost 18.27). 1wk/4wk n/a - NoTrade row. DCF blank -> annotation suppressed per SGO-3. Trail holds 21.89 today, steps to 21.54 on 08-19 (ex-div adjustment, NOT a lowering). · news decided @ 22.55 · stop 21.89 · t12w 31.53 |
| 2026-08-18 | J36 | Jardine Matheson | SELL | 61.61 | FailedBreakout_Down_20D | 35 | UNDERVALUED | rationaleFull exit. The 14 Aug full-exit clause fired: Jardine Matheson settled at S, below its Strailing stop, and the signal engine escalated from four sessions of AVOID to STRONG SELL - REDUCE (Sell_Rank 1, position status CLOSING). The 12-week model view has fallen every session for twelve sessions and now sits 13.8% BELOW the current price, with the shares 5.1% under their 200-day trend line - a deteriorating name where the risk line has already been broken. The shares screen cheap on asset value (MoS +0.38), but a cheap price is not a reason to hold a broken trend: valuation can amplify a sell, never veto one. Exit reason: fired full-exit clause + stop breach + negative 12wk (L2). The UNDERVALUED tier-down (§9 amplify-down) is OVERRIDDEN - amplify-only rules scale discretionary trims, not a signal-originated exit with a pre-armed clause and a breached stop. PROFIT_ARMED on this row is a false positive for an 8th session (Gain_ATR -1.25; degenerate T12_Progress 115.99 vs a target below cost). Ladder ends -> -> 0. Realised -Son (cost 63.55); proceeds S1wk/4wk n/a - FailedBreakout_Down_20D prints no long leg. Forfeits the USex-div of 08-20 (~S) against ~Sof projected 12-week downside. Trail 61.76 and its scheduled 08-20 step to 61.11 are retired. · news |
| 2026-08-18 | O39 | OCBC Bank | SELL | 31.25 | NoTrade (PROFIT_ARMED) | 0 | OVERVALUED VS RI | rationaleTaking a third off a big winner. OCBC is up 8.1% for the book and trades 36.5% above its 200-day trend with RSI at 70, and the signal engine has just gone silent on it - conviction collapsed from 78 to zero in a single session on 'consensus conflict + low conviction'. That combination - a stretched price plus a signal that has stopped speaking - is when a profit is worth banking, and the FOMC minutes land on 08-19 with a two-sided reaction. We keep because the 12-week view (S, +37.5%) is still very much alive; the bank is richly priced on book value (MoS -0.77) but that alone would never trigger a sale. Exit reason: ADR-0012 profit-take, armed (Gain_ATR 3.31) + tick (b) conviction collapse. Verified genuine, NOT an SGO-4 mechanical blank: no liquidity-gate reason string, full position columns intact. G1 is irrelevant (it softens tick (a) only). Ticks (c)/(d) did not fire. 30% x 1,500 = 450 -> floor to 100-lot =, S; MoS -0.77 not <= -3 so no tier bump. Ladder -> ->. Realised +S (cost 28.63). 1wk/4wk n/a - NoTrade row prints no entry/stop/target. DCF annotation suppressed per SGO-3 (ResInc financial). Trail HOLDS at 30.09 (a trail never steps down). Captured the 47c ex-div on 08-17 (Son). · news decided @ 30.95 · stop 30.09 · t12w 42.56 |
| 2026-08-17 | G07 | Great Eastern | SELL | 22.38 | MomentumContinuation_Up | 68 | OVERVALUED VS RI | rationaleGreat Eastern is our best position at +24.5% and also our most overheated - RSI 82, the highest in the book, with momentum now diverging from price, and today's 2.4% pop is a run into Wednesday's dividend that typically gives itself back on the ex-date. We are banking 30% into that run and keeping for what is still the strongest 12-week outlook we hold (+41%). Origination: ADR-0012 profit-take, armed Gain_ATR 8.34 (+24.5%, the most armed in the book) + tick (a) fresh RSI_DIV at RSI 81.9. G1 does NOT shield it - the signal IS MomentumContinuation_Up but conviction 71 is 9 points short of the 80 bar. IMPORTANT COLLISION: the same row prints BUY - ADD at adj 68 (Buy_Rank 1) - the add is SUPPRESSED by SGO-5 on both of its conditions at once (RSI 81.9 > 75, and the model entry 22.96 sits ABOVE the 22.74 close), and a name cannot be added to and trimmed in the same session; the mandatory ADR-0012 fire wins over the discretionary, gated-out add. Logged as systemic finding #2. MoS -0.68 not <= -3 so no tier bump. 30% x 1,200 = 360 -> floor =. Realised +S (cost 18.27), the book's best trim. Trimming at the 08-18 open forfeits 300 x 35c = Snear a wash against the mechanical ex-div mark-down. DCF blank -> annotation SUPPRESSED per SGO-3. Trail RAISED 21.41 -> 21.89, then steps to 21.54 on 08-19 (35c ex-div adjustment, NOT a lowering). Ladder ->. Never a full exit from profit-take alone. · news decided @ 22.74 · stop 21.89 · t1w 23.21 · t4w 26.17 · t12w 31.99 |
| 2026-08-17 | J36 | Jardine Matheson | SELL | 62.60 | FailedBreakout_Down_20D | 43 | UNDERVALUED | rationaleJardine Matheson has now printed a non-buy signal for six straight sessions and its 12-week outlook has fallen every single session to 12.9% below the current price, with the shares trading below every moving average including the 200-day. We are cutting a further 30% of the position while the valuation still looks cheap on paper - a cheap price is not a reason to hold a falling trend, but it is a reason to trim the minimum rather than exit outright. Origination: CLAUDE.md §9 sustained non-buy, N=6 (NO TRADE x2 then AVOID x4), Target_12Week monotonic 59.40->54.16 (-12.9%), close 62.18 is 3.0% below EMA200 65.05. The 08-14 full-exit clause did NOT fire - it required a decisive close below 61.76 and the settled close is 62.18 (L4), so the ladder continues at the 30% floor and the full-exit clause stays live on the remaining. PROFIT_ARMED is a false positive for the 7th session (loss, Gain_ATR -0.86; degenerate T12_Progress 114.81) - this is NOT an ADR-0012 fire. UNDERVALUED MoS +0.38 amplifies DOWN, holding the tier at 30%. 30% x 900 = 270 -> floor to 100-lot =. Realised -S (cost 63.55). 1wk/4wk n/a - the bearish signal prints no long Target_Price, stated not synthesized. MANDATORY: trail steps 61.76 -> 61.11 on 08-20 (65c ex-div adjustment, NOT a lowering); printed Stop_Price 65.35 is the short-side stop, not applicable to a long. Ladder ->. · news decided @ 62.18 · stop 61.76 · t12w 54.16 |
| 2026-08-17 | O39 | OCBC Bank | SELL | 31.05 | AnticipationUp_VCP | 78 | OVERVALUED VS RI | rationaleOCBC is up 10.2% for us and has become genuinely stretched - the third straight session of momentum divergence at an RSI of 79, with the shares nearly 40% above their 200-day average. We are banking a third of the position into that strength and letting the rest run toward a still-healthy 12-week target. Note the 24-cent dip today is purely the 47-cent dividend going ex - on a like-for-like basis the shares actually rose, so this is a trim on extension, not on deterioration. Origination: ADR-0012 profit-take, armed Gain_ATR 4.27 (+10.2%, PROFIT_ARMED) + tick (a) third consecutive RSI_DIV at a RISING RSI 75.2->76.6->77.9->78.9, +39.7% over EMA200. G1 does not shield - AnticipationUp_VCP is not a BreakoutUp_*/MomentumContinuation_* family, so the softening clause never engages regardless of cv 78. Ticks (b)/(c)/(d) did not fire (conviction ROSE; T12 41.66 alive). Ex-div 47c captured today = Son. MoS -0.77 is not <= -3 so no tier bump, size_mod 1.0. 30% x 2,100 = 630 -> floor =. Realised +S (cost 28.63). f=0.138 on the 1wk. DCF annotation SUPPRESSED per SGO-3 (ResInc financial). Trail RAISED 30.41 -> 30.09 (a genuine +15c on the 29.94 ex-div-adjusted basis). Horizon: FOMC minutes 08-20, two-sided +-2.0% high-confidence - de-risking into a two-sided macro event is the conservative side of the catalyst-aware-hold clause, not a pre-trim into a favourable catalyst. Ladder -> -> 1,500 (26% of original still riding). · news decided @ 31.55 · stop 30.09 · t1w 32.10 · t4w 35.56 · t12w 41.66 |
| 2026-08-14 | J36 | Jardine Matheson | SELL | 61.93 | RallySell_BearTrend | 48 | UNDERVALUED | rationaleJardine Matheson has now gone five straight sessions without the model authorising anything constructive, the last three explicitly bearish, on a position that is losing money and trading below every moving average we track. The twelve-week view has fallen every single session and now points 12% lower. The business itself is sound and the shares screen cheap - which is exactly why we take the smallest cut available rather than exit - but a falling forward view on a losing position is a reason to reduce, not to wait. CLAUDE.md §9 "N consecutive NoTrade/Conflicted on a held position", now N=5: NO TRADE (08-10) -> NO TRADE (08-11) -> AVOID (08-12) -> AVOID (08-13) -> AVOID (08-14). Target_12Week monotonic 58.36 -> 57.36 -> 57.12 -> 54.78 -> 54.69, now -12.3% vs close. Below EMA10 63.43 / EMA20 63.72 / EMA50 64.40 / EMA200 65.09; 22.7% below High_52W 80.63; Consolidation_Bearish, Ranging. NOT ADR-0012 - the PROFIT_ARMED is a FALSE POSITIVE for the fifth session (position at a LOSS, Gain_ATR -0.70; arm comes solely from degenerate T12_Progress 113.99 that reads >100% only because Target_12Week sits BELOW the price). NOT the escalation clause - settled close 62.34 is 58c ABOVE the 61.76 line, though the session low 60.62 pierced it for a THIRD consecutive session; L4 makes the settled close authoritative, so this is a PARTIAL trim and the full-exit clause stays LIVE on the remaining. Today’s +0.66% is a bounce inside an intact downtrend, not a signal change. UNDERVALUED MoS +0.38 with Quality_Pass=True amplifies DOWN one tier, holding the trim at the 30% floor. 360 rounded DOWN to 300. Books a Srealised loss deliberately. Action price 62.34 = printed Entry_Price exactly and also the settled close; band [61.91, 62.77]. The printed Stop_Price 65.78 is the SHORT-side stop and is NOT applicable to a long (systemic #3, third session) - the operative long stop stays 61.76. MANDATORY EX-DIV STOP ADJUSTMENT: ex 65 US cents on 08-20, on which date the stop steps mechanically to 61.11 (61.76 - 0.65) - a dividend adjustment, NOT a lowering, without which the escalation clause fires spuriously on the mark-down alone. Trimmed forfeit US; retained 900 collect USGoverned by L3 and the [saved] optional_trim counterfactual (median withheld 1wk +1.12%, n=6) after deferrals on 08-06 / 08-11 / 08-12. · news decided @ 62.34 · stop 61.76 · t1w 62.18 · t4w 61.18 · t12w 54.69 |
| 2026-08-14 | O39 | OCBC Bank | SELL | 31.48 | MomentumContinuation_Up | 54 | OVERVALUED VS RI | rationaleOCBC closed at another 52-week high, up 11% for us and nearly 40% above its long-term trend line, with momentum now diverging from price for a second straight session - the classic late stage of a very good run. Record half-year profits and a 15% dividend increase are real and already in the price; that is why we bank a third slice rather than exit, keeping 36% of the original position riding a path the model still puts 31% higher over twelve weeks. ADR-0012 profit-take: ARMED (Gain_ATR 4.34 on a genuine +11.04% gain, not the T12 path) + TICK (a), a second-consecutive RSI_DIV at a RISING RSI 76.62 -> 77.87. Ticks (b)/(c)/(d) do not fire (conviction -15, short of the 20-pt bar; 12wk 41.70 vs 1.02x close 32.43 is far from dead; no NO TRADE streak). G1 does NOT shield: family qualifies but conviction 58 is 22 points short of the 80 bar (7 short yesterday), and the engine itself downgraded BUY-ADD -> HOLD. Base 30% tier - MoS -0.77 is nowhere near the <= -3 bump line. 870 rounded DOWN to 800 (SG 100-lot precedent). Ladder: ->. Action price 31.79 = settled close (L4), inside band [31.49, 31.85]; the printed 31.67 is a buy-stop below the close and is not a seller’s anchor. CRITICAL - EX-DIV ON THE EXECUTION DATE: O39 goes ex 47c on 2026-08-17, the execution date itself. Holding at tonight’s close already earns it, so the sale collects 800 x S = SAND prints ~1.48% lower (~S) for identical economics. This mark-down is NOT a gap - do NOT trigger the L8 reprice rule (the D05 08-14 precedent validated exactly this). Retained; trail RAISED 30.22 -> 30.41 (chandelier 2.0 x ATR 0.7273 below the 31.86 high), stepping to 29.94 on 08-17 as the 47c dividend adjustment - a genuine 19c raise on a like-for-like ex-adjusted basis (30.22 - 0.47 = 29.75). ADR-0020 live = peak, 0% erosion. Retained shares collect SSGO-3 suppresses the DCF-anchor flag and the non-binding Quality_Pass=False. All three horizons point UP - that is the case for a trim, not an exit. · news decided @ 31.67 · stop 30.41 · t1w 32.38 · t4w 36.03 · t12w 41.70 |
| 2026-08-13 | G07 | Great Eastern Holdings | SELL | 22.37 | FailedBreakdown_Up_20D | 32 | OVERVALUED VS RI | rationaleGreat Eastern is up 22.4% for us and has run nearly 35% in a single month, leaving it at an RSI of 83 - the kind of vertical move in an insurer that gives back a chunk. We flagged this trim yesterday and it never got executed, so we are placing it again: sell at Sto lock in the gain and keep working behind a raised stop. RE-ISSUE of the unfilled 08-11 ADR-0012 profit-take (armed Gain_ATR 6.00 + fresh RSI_DIV tick). The 08-11 card used execution type market_open, which the auto-executor silently skipped - G07 OPENED at exactly the card's 22.40 and traded 22.19-22.60, so the miss was mechanical, not a market condition. Per L3 (execute the de-risk promptly, do not let a recommended trim keep bleeding) the fire is CARRIED, not re-derived: the position is more armed today (Gain_ATR 6.00 -> 6.48). On today's row in isolation no FRESH tick fires (RSI_DIV dropped off, conviction, 12wk alive at 31.88 vs 1.02 x 22.37 = 22.82, NO TRADE streak broken) - this card is the execution of an outstanding decision, not a new origination. Execution type reverted to market. Action price repriced from the stale 22.40 to the live anchor Entry_Price 22.37, provenance band [22.21, 22.53]. 30% x 2200 = 660 -> rounded DOWN to board lot (08-06 precedent). Trail RAISED 21.02 -> 21.11 (printed model stop). MoS -0.68 not <= -3, no tier bump. SGO-3: blank DCF anchor and Quality_Pass=False both non-binding on an IsFinancial/ResInc name. Ex-div 35c on 08-19: trimmed shares forfeit S (immaterial), retained 1,600 collect S; per the 08-11 ruling the mark-down must not be read as deterioration next week. f=0.138. · news decided @ 22.37 · stop 21.11 · t1w 22.54 · t4w 23.63 · t12w 31.88 |
| 2026-08-13 | O39 | OCBC Bank | SELL | 31.10 | MomentumContinuation_Up | 69 | OVERVALUED VS RI | rationaleOCBC has run 10% above our cost to a fresh 52-week high and is now 38% above its 200-day trend line with RSI at 77, and a bearish momentum divergence has just appeared alongside the profit-take arm. Record 1H results (net profit +13% to S19bn, interim dividend raised 15% to 47 cents) are the reason the stock is here - they are already in the price, not ahead of it - so we bank a third of the remaining stake into the strength and keep for the still-positive 30% twelve-week path. ADR-0012 profit-take: armed (Gain_ATR 3.96 on a real +10.02% gain) + tick (a), a fresh RSI_DIV code on the same row. G1 does not shield it - the family qualifies (fresh MomentumContinuation_Up) but conviction is 73, seven points short of the 80 bar; at cv80 this would have been a trail-raise instead. Base 30% tier (1 tick; MoS -0.77 is not <= -3 so no valuation bump). 1,230 rounded DOWN to the 100-share board lot. The SAME row prints BUY - ADD at Buy_Rank 1: SUPPRESSED per SGO-5 on both conditions at once (RSI 76.62 > 75 AND Entry_Price 31.67 >= Close 31.50), and by the ACT-NOW no-flip-flop rule - the book sold at this morning's open, so adding at 31.67 would be paying up 1.8% to repurchase it. Action price 31.50 is the settled close, the floor of the provenance band [31.49, 31.85] (Entry 31.67 +- 0.25 x ATR 0.7241); the printed 31.67 is a buy-stop above the close and is not a level a seller can rely on. Retained, trail RAISED 29.73 -> 30.22 (printed model stop). Ex-div 47c on 08-17: selling on the 08-14 open is pre-ex, so it is mechanically a wash - forfeits Scaptures the pre-div price; retained shares collect SSGO-3 suppresses the DCF-anchor flag and the Quality_Pass=False block (IsFinancial, FV=ResInc). Re-arm for a buy: a BUY/STRONG BUY print with RSI back below 75 and the model entry BELOW the close. · news decided @ 31.50 · stop 30.22 · t1w 32.12 · t4w 36.01 · t12w 40.97 |
| 2026-08-12 | D05 | DBS Group Holdings | BUY | 75.87 | BreakoutUp_20D | 87 | OVERVALUED VS RI | rationaleDBS is the book's strongest technical setup and its conviction has fully recovered - the breakout that faded last week reasserted itself, with the shares closing at Safter touching S, comfortably above every major moving average and with the model's 12-week view still 22% higher. We already have a standing order to buy 1,500 more shares at Sand we are leaving it exactly where it is rather than raising it to chase the stock, because the shares are now technically overbought and paying up here is the single most reliable way this book loses money. The bank is expensive against its residual-income anchor, which is why this is a small top-up rather than a large one, but the recent record quarter and the 81-cent dividend underpin the price. If the market does not come back to us by 13 August the order simply expires. Ops: reprice to the live Sentry SUPPRESSED by SGO-5 (RSI 75.27 > 75); the engine's printed 'Buy Stop @76.41' sits BELOW the 76.99 close and would fill at market, so the instrument is declined too (EDATR -0.40 => limit per SGO-5). Provenance: standing 75.87 is S (0.24%) below the live band [76.05, 76.77], on the pullback side; auto-withdraw triggers not met (cv90 >= 65, expiry 08-13 unreached), so CARRY not withdraw. Size held at - deliberately NOT resized to today's 114.38%. PROFIT_ARMED has dropped off now the blended Avg_Cost 73.9572 reads correctly (Gain_ATR 2.11 < 3.0, T12_Progress 82.85 < 90) - the 08-07 SGO-4 false positive has cleared. Quality_Pass False non-binding (ADD to a held name + SGO-3 financial); DCF anchor 57.01 suppressed per SGO-3. f = 0.141 (measured calib_1w; graded buys hit 11 >= 10 this session, first run off the 0.30 fallback). Ex-div 81c on 08-14 now falls OUTSIDE the 08-13 expiry, unlike the 08-07 card. Stop ratchets 73.28 -> 73.54. · news decided @ 75.87 · stop 73.54 · t1w 77.22 · t4w 85.46 · t12w 92.93 |
| 2026-08-12 | D05 | DBS Group Holdings | BUY | 75.87 | BreakoutUp_20D | 87 | OVERVALUED VS RI | rationaleDBS is the book's strongest technical setup and its conviction has fully recovered - the breakout that faded last week reasserted itself, with the shares closing at Safter touching S, comfortably above every major moving average and with the model's 12-week view still 22% higher. We already have a standing order to buy 1,500 more shares at Sand we are leaving it exactly where it is rather than raising it to chase the stock, because the shares are now technically overbought and paying up here is the single most reliable way this book loses money. The bank is expensive against its residual-income anchor, which is why this is a small top-up rather than a large one, but the recent record quarter and the 81-cent dividend underpin the price. If the market does not come back to us by 13 August the order simply expires. Ops: reprice to the live Sentry SUPPRESSED by SGO-5 (RSI 75.27 > 75); the engine's printed 'Buy Stop @76.41' sits BELOW the 76.99 close and would fill at market, so the instrument is declined too (EDATR -0.40 => limit per SGO-5). Provenance: standing 75.87 is S (0.24%) below the live band [76.05, 76.77], on the pullback side; auto-withdraw triggers not met (cv90 >= 65, expiry 08-13 unreached), so CARRY not withdraw. Size held at - deliberately NOT resized to today's 114.38%. PROFIT_ARMED has dropped off now the blended Avg_Cost 73.9572 reads correctly (Gain_ATR 2.11 < 3.0, T12_Progress 82.85 < 90) - the 08-07 SGO-4 false positive has cleared. Quality_Pass False non-binding (ADD to a held name + SGO-3 financial); DCF anchor 57.01 suppressed per SGO-3. f = 0.141 (measured calib_1w; graded buys hit 11 >= 10 this session, first run off the 0.30 fallback). Ex-div 81c on 08-14 now falls OUTSIDE the 08-13 expiry, unlike the 08-07 card. Stop ratchets 73.28 -> 73.54. · news decided @ 75.87 · stop 73.54 · t1w 77.22 · t4w 85.46 · t12w 92.93 |
| 2026-08-07 | J36 | Jardine Matheson | SELL | 63.70 | NoTrade (from FailedBreakout_Down_20D) | 0 | UNDERVALUED | rationaleHalf the Jardine Matheson position is being sold because the trend has broken. The shares now sit below their 20-, 50- and 200-day averages, and the model's three-month view has fallen for four consecutive sessions to a level 8% under the current price - the signal has degraded from a buy, through a failed-breakout warning, to no tradeable read at all. What makes this a half rather than a full exit is that the business is doing fine and the price is cheap: first-half underlying profit rose 9% to US, free cash flow rose 21%, the interim dividend was lifted 8% and a fresh US buyback was announced, while the valuation work puts intrinsic worth far above the current quote. This is a classic sell-the-news fade - the stock has drifted 2.7% lower in the four sessions since those results - so the sensible response is to cut exposure to the fade, not to abandon an asset that is worth more than it trades for. || OPERATIONAL: Origination = Step 6 'Contrast' trend exit (close below EMA200 65.19 with a negative and deteriorating Target_12Week), unaffected by G1/G2/G3. NOT an ADR-0012 profit-take despite the PROFIT_ARMED flag on the row - the position is at -0.22% with Gain_ATR -0.07; the arm is a FALSE POSITIVE from T12_Progress 108.43 computed across an inverted span (Target_12Week 58.48 < Avg_Cost 63.55) - see systemic #1. NOT the L2 stop-break case either: the 61.76 stop is intact, close 2.7% above it; and note-B's stricter combination is unmet (this AVOID degraded from BUY, not from SELL-REDUCE) - that asymmetry is exactly why the cut is 50% not 100%. Tier: section 9(b) - an UNDERVALUED name's trim argues DOWN one tier,. Gate audit: G1 not engaged (NoTrade cv0); G3's substantive test satisfied anyway (forward view negative AND signal bearish). ESCALATION (L3, written down so it is not re-litigated daily): a decisive close below Stakes the remaining in full; absent that this trim is DONE and must not be re-proposed session after session. Proceeds Srealised -S (-0.22%). 1wk/4wk n/a - the NO TRADE row prints no Target_Price, never synthesised (SGO-4). CURRENCY caveat carried: fairvalue reads Price_Currency=USD while the scan renders S$ (systemic #5); all arithmetic here uses the book's own SGD units. · news decided @ 63.41 · stop 61.76 · t12w 58.48 |
| 2026-08-07 | D05 | DBS Group Holdings | BUY | 75.31 | BreakoutUp_20D | 70 | OVERVALUED VS RI | rationaleDBS extended Wednesday's record-quarter breakout for a second day, rising 1.7% to Sand closing at the session high, comfortably above every moving average we track and with a twelve-week view 25% higher. We are adding a second, deliberately smaller tranche - roughly half the size of yesterday's - because conviction faded from even as the price rose, and a rising price on a cooling signal is a reason to step in more carefully, not more boldly. The order is a limit at S, just under the close, so we buy a pullback rather than the high. Note the shares go ex-dividend for the Sdeclared with the results sometime between 13 and 17 August: expect a roughly 1% drop that is a payout, not a problem, and which may well be what fills this order. Operational: EDATR -0.35 plus a close at the high trips the ACT-NOW chase bar so this queues rather than buys at market (contrast the 08-06 at-market card at EDATR -0.01); RSI 73.42 is under 75 but the tightest in this book - one more up-session likely suppresses the reprice per SGO-5. CRITICAL - the row's PROFIT_ARMED flag is a FALSE POSITIVE from the executor write-lag (SGO-4): the scan read the pre-fill Avg_Cost 72.42 while the true blended basis after this morning's @ 75.31 fill is 73.9572, giving Gain_ATR 1.83 (<3.0) and T12_Progress 80.47 (<90) - not armed, no ADR-0012 path. G3 independently fails any trim (+25% 12wk on a bullish breakout); G2 suppresses the valuation-amplify (SGO-3 financial, DCF anchor 52.03 < price is meaningless). Stop raised 72.50 -> 73.28 (model). Adj conviction 70 clears the 65 floor by 5 pts, the thinnest margin acted on since inception. f=0.30 per L5/SGO-2. Today's domain-restricted search returned only a stale 08-05 quote (73.55/-1.28%), discarded per L4 in favour of the settled 76.33 scan close. decided @ 75.87 · stop 73.28 · t1w 78.32 · t4w 84.04 · t12w 94.85 |
| 2026-08-06 | G07 | Great Eastern | SELL | 21.98 | NoTrade (PROFIT_ARMED) | 0 | OVERVALUED VS RI | rationaleA second slice of the Great Eastern winner is banked. The position is up 20% and more than four times its normal volatility above cost, and the signal engine has now failed to produce a tradeable read on it for two consecutive sessions - the pillars are in genuine conflict, with momentum collapsed and price stalling after the July results run. That combination is the model's own definition of a position whose move has stopped working, so 30% comes off and the trailing stop on the rest is raised to S. The remaining 70% stays invested: the three-month view is still 42% higher and the insurer pays a Sdividend on 19 August. || OPERATIONAL: ADR-0012 profit-take, armed + fired, 1 tick -> profit_take_1 = 30%. Armed = PROFIT_ARMED, Gain_ATR 4.46 (>=3.0), +20.31%, T12_Progress 70.18. FIRED on tick (d): 08-04 and 08-05 both NoTrade_Reason 'Consensus conflict + low conviction' = two consecutive GENUINE NO TRADEs; the 07-31/08-03 'Liquidity gate failed' prints stay suppressed per SGO-4. Tick (a) NO - RSI_DIV cleared 08-04 and has not returned. Tick (b) uncomputable - Conviction_Score 0 both sessions (systemic #5); momentum pillar flat at 14, consensus Conflicted, no substitution invented. Tick (c) NO - T12 31.32 > 1.02x close 22.42, which is why 70% stays. The 08-04 re-arm note anticipated profit_take_2 (50%) but that presumed two ticks; only (d) fires, so the rule as written governs at 30%. Valuation adds nothing - MoS -0.671 is not <=-3 and SGO-3 makes the insurer ResInc band non-informative; no tier bump. G1 does not protect (needs fresh BreakoutUp_*/MomentumContinuation_* at cv>=80; this is NoTrade cv0, momentum 14) and ADR-0012 fires ticks (b)/(c)/(d) regardless of G1. G2/G3 not engaged. Catalyst-aware hold cleared - dividend ex-date 08-19 is 9 sessions out (08-10 National Day intervening). Trail 20.48 -> 20.64 = 2.0xATR chandelier on the unchanged peak close 22.30 (ATR tightened 0.9115 -> 0.8312); a trail never falls. Action price = anchor close 21.98, derived by hand per SGO-4 (row blanked). 1wk/4wk n/a - no Target_Price to interpolate f against. Proceeds Srealised +S (+20.3%); the forgo Sof dividend. L3 - written down on 08-04 as the exact re-arm trigger; execute it. · news decided @ 21.98 · stop 20.64 · t12w 31.32 |
| 2026-08-06 | J36 | Jardine Matheson | SELL | 63.16 | NoTrade (from FailedBreakout_Down_20D) | 0 | UNDERVALUED | rationaleHalf the Jardine Matheson position is being sold because the trend has broken. The shares now sit below their 20-, 50- and 200-day averages, and the model's three-month view has fallen for four consecutive sessions to a level 8% under the current price - the signal has degraded from a buy, through a failed-breakout warning, to no tradeable read at all. What makes this a half rather than a full exit is that the business is doing fine and the price is cheap: first-half underlying profit rose 9% to US, free cash flow rose 21%, the interim dividend was lifted 8% and a fresh US buyback was announced, while the valuation work puts intrinsic worth far above the current quote. This is a classic sell-the-news fade - the stock has drifted 2.7% lower in the four sessions since those results - so the sensible response is to cut exposure to the fade, not to abandon an asset that is worth more than it trades for. || OPERATIONAL: Origination = Step 6 'Contrast' trend exit (close below EMA200 65.19 with a negative and deteriorating Target_12Week), unaffected by G1/G2/G3. NOT an ADR-0012 profit-take despite the PROFIT_ARMED flag on the row - the position is at -0.22% with Gain_ATR -0.07; the arm is a FALSE POSITIVE from T12_Progress 108.43 computed across an inverted span (Target_12Week 58.48 < Avg_Cost 63.55) - see systemic #1. NOT the L2 stop-break case either: the 61.76 stop is intact, close 2.7% above it; and note-B's stricter combination is unmet (this AVOID degraded from BUY, not from SELL-REDUCE) - that asymmetry is exactly why the cut is 50% not 100%. Tier: section 9(b) - an UNDERVALUED name's trim argues DOWN one tier,. Gate audit: G1 not engaged (NoTrade cv0); G3's substantive test satisfied anyway (forward view negative AND signal bearish). ESCALATION (L3, written down so it is not re-litigated daily): a decisive close below Stakes the remaining in full; absent that this trim is DONE and must not be re-proposed session after session. Proceeds Srealised -S (-0.22%). 1wk/4wk n/a - the NO TRADE row prints no Target_Price, never synthesised (SGO-4). CURRENCY caveat carried: fairvalue reads Price_Currency=USD while the scan renders S$ (systemic #5); all arithmetic here uses the book's own SGD units. · news decided @ 63.41 · stop 61.76 · t12w 58.48 |
| 2026-08-06 | S58 | SATS | BUY | 4.85 | MomentumContinuation_Up | 80 | FAIR | rationaleSATS is the strongest setup this book has seen: the aviation-services group has broken into a clean uptrend, with conviction jumping from in a single session on the heaviest volume in weeks, and the shares now sit above their 20-, 50- and 200-day averages with the trend reading at 98 out of 100. Unusually, every horizon points the same way - roughly 4% higher in a week, 14% in a month and 28% over three months - and the discounted-cash-flow estimate of Ssits far above today's S, so the projection assumes nothing heroic. The order is placed as a buy-stop just above the market, so it only fills if the move continues; risk is capped at about 1% of the book by a stop 7% below. Bought at three-quarters of standard size because the conservative earnings-power valuation disagrees with the cash-flow one. || OPERATIONAL: SGO-5 queue style - GTC buy-stop AT the anchor's printed model Entry_Price 4.85, on-strength style because Entry_Distance_ATR +0.17 >= 0; no carried-forward or self-invented level. Reprice-suppression not violated (that clause guards marketable limits; RSI 67.3 < 75 anyway). L1: MomentumContinuation_Up, not a breakout/FailedBreakdown chase. val_adj -10 from FV_method=EPV (1.399, no-growth floor) on a +9.0% grower - the systemic #2 artifact; MoS_DCF is +0.42 and Val_Signal reads FAIR_VALUE. Applied as written, no exemption. Quality_Pass True (F_Score 8, Quality_Rank 3/17) so the hard gate passes. Size 96.51% x Sx 20% x 0.75 = S / 4.85 = = S = 14.5% of book; 0.68% of daily volume; risk S = 1.04% of book. scorecard 0 - MomentumContinuation_Up|buy is n=3 hit_1w 0.333, report-only, sample too small to bias (and the weakest evidence behind this card). f=0.30 for the 1wk per L5/SGO-2. Re-armed the 08-03 near-miss trigger ('raw cv >=75 while the EPV anchor stands'). Withdraw if adj conviction < 65, expires_on passes, RSI > 75, or the printed entry falls to/below the close. · news decided @ 4.85 · stop 4.50 · t1w 5.06 · t4w 5.55 · t12w 6.19 |
| 2026-08-05 | J36 | Jardine Matheson | BUY | 63.55 | PullbackBuy_VWAP | 68 | UNDERVALUED | rationaleJardine Matheson remains the one genuinely cheap quality name the book can act on: both intrinsic methods put it far above the market price - an earnings-power value of USand a discounted-cash-flow value of USagainst a USshare price - and it passes the quality screen where most of the book fails it. The buy trigger is a pullback-to-average-price setup, the most reliable entry pattern in this playbook, and it has now printed for a second straight session. The honest caveat is that this is a value entry, not a momentum one: revenue is shrinking about 4%, returns on equity are thin, and the model's own twelve-week view is slightly negative and has drifted lower this week - which is why the order is a patient limit below the market rather than a market buy, and why it is sized at the standard weight instead of the larger one the cheapness alone would allow. OPERATIONAL: repriced from the 08-03 GTC @US, which did not fill (today's low US) - per SGO-5/provenance the limit moves to the live model Entry_Price 64.30, never a deeper self-invented level; reprice-suppression tests both pass (RSI 52.6 < 75; entry 64.30 < close 64.98). Auto-withdraw not triggered (adj 68 >= 65 floor, prior expiry 08-06 not passed); expiry re-based to 08-07 (08-10 National Day excluded). CURRENCY: USD-quoted on SGX - entry US = Sat USD/SGD 1.28354; = SRisk US = S = 0.55% of book. L1 favoured cell; L5 f=0.30 (calib_1w 0.141, <10 graded buys); L8 executes at the 08-05 open. Withdraw triggers: adj conviction <65, expiry 08-07 passed, RSI>75, or printed entry rising to/above the close. · news decided @ 64.30 · stop 61.76 · t1w 66.34 · t4w 71.09 · t12w 62.19 |
| 2026-08-05 | J36 | Jardine Matheson | BUY | 63.55 | PullbackBuy_VWAP | 68 | UNDERVALUED | rationaleJardine Matheson remains the one genuinely cheap quality name the book can act on: both intrinsic methods put it far above the market price - an earnings-power value of USand a discounted-cash-flow value of USagainst a USshare price - and it passes the quality screen where most of the book fails it. The buy trigger is a pullback-to-average-price setup, the most reliable entry pattern in this playbook, and it has now printed for a second straight session. The honest caveat is that this is a value entry, not a momentum one: revenue is shrinking about 4%, returns on equity are thin, and the model's own twelve-week view is slightly negative and has drifted lower this week - which is why the order is a patient limit below the market rather than a market buy, and why it is sized at the standard weight instead of the larger one the cheapness alone would allow. OPERATIONAL: repriced from the 08-03 GTC @US, which did not fill (today's low US) - per SGO-5/provenance the limit moves to the live model Entry_Price 64.30, never a deeper self-invented level; reprice-suppression tests both pass (RSI 52.6 < 75; entry 64.30 < close 64.98). Auto-withdraw not triggered (adj 68 >= 65 floor, prior expiry 08-06 not passed); expiry re-based to 08-07 (08-10 National Day excluded). CURRENCY: USD-quoted on SGX - entry US = Sat USD/SGD 1.28354; = SRisk US = S = 0.55% of book. L1 favoured cell; L5 f=0.30 (calib_1w 0.141, <10 graded buys); L8 executes at the 08-05 open. Withdraw triggers: adj conviction <65, expiry 08-07 passed, RSI>75, or printed entry rising to/above the close. · news decided @ 64.30 · stop 61.76 · t1w 66.34 · t4w 71.09 · t12w 62.19 |
| 2026-08-04 | G07 | Great Eastern | SELL | 22.30 | NoTrade (PROFIT_ARMED+RSI_DIV) | 0 | OVERVALUED VS RI | rationaleGreat Eastern has run 35% in a month and 42% year to date, and after its half-year results on 30 July the shares now sit almost exactly on an independent fair-value estimate of S - the easy money has been made. The position is up 22% and the move has become stretched: the RSI is near 90 and diverging from price, the classic sign of a rally running on fumes. Banking 30% locks in the gain while leaving 70% invested behind a raised trailing stop, because the twelve-week outlook is still constructive - this is a de-risk, not an exit. || OPERATIONAL: ADR-0012 profit-take, armed + fired. Armed = PROFIT_ARMED, Gain_ATR 4.18 (>=3.0), +22.06%, T12_Progress 70.17. Fire tick (a) RSI_DIV on the same row = 1 tick -> profit_take_1 30%. Tick (d) SUPPRESSED per SGO-4 (the NO TRADE prints are 'Liquidity gate failed' = mechanical non-evaluation, not deterioration). Tick (c) not fired - T12 31.78 > 1.02x close 22.75, so 30% and not a full exit. G1 does not protect (requires fresh BreakoutUp_*/MomentumContinuation_* at cv>=80; this is NoTrade cv0). G2/G3 govern the valuation-elevate path only. Catalyst-aware hold cleared - no G07 event in the fresh 08-03 horizon. Valuation amplify NOT applied: MoS -0.671 is not <=-3, and SGO-3 makes the insurer ResInc band non-informative. Action price = anchor close 22.30 (row blanked by the liquidity gate, derived by hand per SGO-4). 1wk/4wk n/a - no Target_Price to interpolate f against. Proceeds Srealized +SRemaining, trail raised 20.20 -> 20.37 (2.0xATR chandelier). L3 - proposed 07-28, re-issued 07-29, declined 07-31 as advisory; execute it now. · news decided @ 22.30 · stop 20.37 · t12w 31.78 |
| 2026-07-17 | O39 | OCBC Bank | BUY | 28.63 | MomentumContinuation_Up | 68 | OVERVALUED VS RI | rationaleSole surviving BUY in the SG blue-chip complex (Buy_Rank 1, MomentumContinuation_Up conv 71): OCBC riding the record-high SG bank rally with the 1H26 result +28.2% behind it; a healthy business into a rate-supported tape, priced a touch rich (OVERVALUED_VS_RI, MoS -0.59, val_adj -3) so we queue a small pullback rather than chase. Repriced standing GTC from @28.00 (did not fill 07-15) to the current model entry @28.63 (EDATR -0.27, limit below close 28.78 = no chase at RSI 87.0). L8 pending_next_open execute 07-17; reprice if the open gaps >~1.5%. Bank Quality_Pass=False & DCF 25.10 are financial false-fails, non-binding; 12wk 37.04 exceeds broken DCF -> anchor flag suppressed. Size_mod x1.0, ~S (~8.3% book), self-financed. decided @ 28.63 · stop 26.96 · t1w 29.63 · t4w 31.97 · t12w 37.04 |
| 2026-07-16 | D05 | DBS Group Holdings | BUY | 72.42 | MomentumContinuation_Up | 68 | OVERVALUED VS RI | rationaleDBS BUY MomentumContinuation, conv 71 -> adj 68; rate-supported core bank in a confirmed record-high SG bank rally (overlay/news). The 07-14 pullback limit @70.98 never filled (name ran up, not down); conv still 71 (>=65 floor) and expires_on not passed, so REPRICE (not withdraw) to the current model entry @72.42 per the provenance rule. Close 72.98 sits 0.44 ATR above entry (RSI 85.4 extreme) -> a pullback limit, no chase; it fills only on the healthy pullback we want to enter on. ~S (~8.0% of book). Stop 68.58. Bank DCF 52.03 broken -> DCF-anchor flag suppressed (financial, FV=ResInc); Quality_Pass=False is the financial false-fail, non-binding. L8 pending_next_open 07-16; reprice if the open gaps >~1.5% past 72.42. · news decided @ 72.42 · stop 68.58 · t1w 74.72 · t4w 80.09 · t12w 89.06 |
| 2026-07-15 | G07 | Great Eastern | BUY | 18.27 | MomentumContinuation_Up | 89 | OVERVALUED VS RI | rationaleFresh #1 STRONG BUY MomentumContinuation on Great Eastern into a broad SG blue-chip momentum flip; valuation ~fair (MoS -0.18, val_adj -1). Taken as an on-strength buy-stop @18.27 rather than a market chase because RSI 93.5 is a climax reading (avoid post-close STRONG BUY hype not confirmed by next open, CLAUDE.md sec 9) - the stop fills only if the name trades up through 18.27, its own confirmation gate. Half-tranche ( ~S, ~4% of book), discretionary climax haircut; insurer, thinly traded. Stop 17.03. L8 pending_next_open 07-15; expires 07-17. Reprice if 07-15 opens gapping >~1.5% past 18.27. decided @ 18.27 · stop 17.03 · t1w 19.02 · t4w 20.76 · t12w 20.43 |
Learnings in force
What this book's own record has taught it.
Last reviewed 2026-09-13
Favor PullbackBuy_VWAP entries over breakout/FailedBreakdown chases.
`PullbackBuy_VWAP|buy` is the most reliable buy cell (US hit ~0.86); `FailedBreakdown_Up_20D|buy` chases are weak (~0.25, stop-first ~60%) and `BreakoutUp_52W` 4wk targets overshoot +55-75% and mean-revert. On ties prefer the PullbackBuy; discount breakout/FailedBreakdown chases.
Trim on the stop-break + negative-12wk combo; don't wait for the SELL-REDUCE label.
A decisive close below the recorded stop AND a negative 12wk is itself a signal-based exit (CLAUDE.md §9), even while the engine still prints NO TRADE.
Execute the de-risk promptly.
A trim recommended but not executed keeps bleeding; act when a held name closes below stop with a negative 12wk, don't re-recommend the same trim for days.
The settled close is authoritative; don't act on weak opens.
Intraday/BOD prints whipsaw. Flag intraday reads provisional; reserve firm acquire/dispose for the settled-close EOD.
Distrust the model 1-week estimate when `calib_1w` is degenerate.
If the scorecard `calib_1w_fraction` is <=0 or wildly unstable, fall back to f=0.30 for the 1wk interpolation and flag it.
Don't chase post-earnings gaps.
A blowout (e.g. MU +14% AH) often round-trips within days; wait for the pullback to the model entry.
(ARCHIVED for sgotr — ADR-0014 standalone) Same-pool/cross-book shares execute ONCE.
This lesson applied when sgotr mirrored `sg`. Post-2026-07-06 sgotr runs on its own S seed cash with no shared shares, so there is nothing to reconcile here; this book's own cash independently. Retained only as the generic rule for any book that still genuinely shares a pool with `sg`.
EOD recommendations execute at the NEXT market open, not the decision close.
Persist actions as `execution_status: pending_next_open` with an `execute_on` date; action prices are close-refs — reprice/re-validate if the open gaps >~1.5%; the 1wk/4wk/12wk horizons and the scorecard grade from the execution date/price; live holdings/monitor stay unchanged until the JSON is updated post-fill; the next BOD reconciles pending proposals against the actual open.