Recommendations
0 to acquire · 0 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 |
|---|---|---|---|---|---|---|---|---|---|
| PCT | PC Partner Group | 2.90 | NO ACTION | — | — | n/a | n/a | 3.37 | PC Partner remains the one genuinely constructive name in this book - the only positive twelve-week outlook we have at +16.2%, on a cheap, quality-passing balance sheet. But it went sideways today while a fresh valuation showed the discount narrowing, so the case got slightly weaker rather than stronger, and it still is not a buy signal. We continue to wait for it to prove itself rather than anticipate. OPERATIONAL: WATCH is not an acquire-pool label at any conviction; close eased 2.93 -> 2.90 while cv held at 62; fresh FV (FetchedAt 2026-09-03) compressed MoS_FV +0.077 -> +0.035 so val_adj fell +2 -> +1, fusing 62 + 1 + bias 0 = adj 63 vs the 65 floor - the miss WIDENED from 1pt to 2pts, via the valuation layer not the chart. Quality_Pass True (F-Score 8), FV_per_share 3.006 (EPV). L1/MSCAP-1 independently bar on FailedBreakdown_Up_20D even at >=65. Had it cleared: entry 2.90 (2.87-2.93), stop 2.87, 1wk 2.96 (+2.2%, f=0.30 per L5), 4wk 3.11 (+7.2%), 12wk 3.37 (+16.2%) - the 12wk sits ABOVE the 3.006 EPV anchor, and the 31.88 DCF print is a Rev_Growth +38.4% outlier, NOT headroom. RE-ARM: settled BUY/STRONG BUY at adj >= 65, preferably PullbackBuy_VWAP/MomentumContinuation. NEWS/OPERATIONAL: SGD 0.10 cash dividend, ex-date 2026-09-16 = 3.4% of the 2.90 close, ~9 trading days out - a fill near the ex-date takes a mechanical ~3.4% drop the engine will read as a breakdown; size and stop for the gap or wait until after 09-16. · news |
| 8AZ | Aztech Global | 0.56 | NO ACTION | — | — | n/a | n/a | 0.32 | Aztech looks superficially attractive tonight - deeply oversold, screening cheap, and passing our quality screen - but our own twelve-week estimate says the shares are worth about 43% less than they trade at today, revenue is shrinking roughly 30%, and the stock has lost a quarter of its value over the past year on declining earnings. A cheap valuation on a contracting business is not a buy case, so we pass. OPERATIONAL: first non-NO-TRADE bullish-family print of the window - WATCH ReversalUp_Oversold cv58 at RSI 19.7, and the fresh FV regen flipped it to UNDERVALUED MoS_FV +0.272 / Quality_Pass True (F-Score 5, the minimum pass), giving val_adj +5, the largest positive valuation credit this book has issued. Fused 58 + 5 + bias 0 = adj 63, TIED with PCT, still 2pts under the floor. Blocked three ways: WATCH is not an acquire-pool label; adj 63 < 65; and decisively by the forward view - Target_12Week 0.32 vs a 0.560 close (-42.9%), Rev_Growth -30.4%. SGM-5 fires exactly as written: a QPass-True UNDERVALUED reading never originates a position absent a bullish chart, and a -43% twelve-week estimate is the opposite of one. Note it walked OUT of the liquidity gate this session (AVOID/NO TRADE -> WATCH). News: no dated Sept-2026 catalyst on the permitted domains; a search-returned quote inconsistent with the 0.56 settled close was discarded. RE-ARM: requires Target_12Week to turn non-negative AND a settled bullish print at adj >= 65 - the valuation alone will not do it. · news |
| AWX | AEM Holdings | 8.55 | NO ACTION | — | — | n/a | n/a | 7.51 | AEM was excluded from consideration tonight on a technicality rather than a judgement, and separately it screens as expensive against what the business currently earns with a negative twelve-week outlook, so there is no case to buy it in any event. Recorded because the exclusion mechanism itself is faulty. OPERATIONAL: NO TRADE cv0, NoTrade_Reason verbatim 'Liquidity gate failed' - but the block was the RANGE test, not turnover. AWX turned over S (331x the SSG floor) and was rejected solely because its daily range printed 3.27% against a hardcoded 3.00% max_spread_pct cap. 558 was rejected the same way at 3.57% on S turnover. SG is the only market still on the legacy raw spread_pct mode; US/HK use the ATR-normalised range_to_atr mode (2.0x/3.0x). This is the root cause of the gate churn - gated names swapped in a single session. CORRECTION TO THE STANDING ADVISORY: this is NOT reachable by the ADR-0003 per-portfolio tuner; LIQUIDITY_THRESHOLDS is a hardcoded module constant in swingtrade/signals/indicators/volatility.py:54 with no INI key and no per-portfolio override path (verified). It needs a code change behind the champion/challenger shadow test, not a tuner run. Valuation separately hostile: GROWTH_PRICED_IN, MoS_FV -9.17, Quality_Pass False, T12 7.51 vs 8.55 close (-12.2%); MSCAP-2 note - the raw DCF prints 8.35 and would mislead if read directly. |
| S71 | Sunright | 0.40 | NO ACTION | — | — | n/a | n/a | 0.23 | Sunright is the cheapest name in the book on our valuation work and passes the quality screen, but barely any shares change hands - under five thousand dollars traded today - and our own twelve-week estimate puts the shares more than 40% lower. It is not investable at any price we could actually transact, so it stays on the valuation watchlist and nowhere else. OPERATIONAL: NO TRADE cv0, NoTrade_Reason verbatim 'Liquidity gate failed' - and unlike AWX/558 this is a GENUINE turnover failure: Sof daily turnover against the SSG floor. Deepest discount in the book (UNDERVALUED, MoS_FV +0.559, Quality_Pass True, F-Score 7, FV_per_share 0.906 vs 0.400 close) and it still cannot originate a position: Target_12Week 0.23 vs 0.400 close = -42.5%, Rev_Growth -7.1%. SGM-5's verdict that S71 is the weaker of the two valuation-watchlist names stands and has hardened - it has now fallen five straight sessions (0.435 -> 0.400, -8.0%) while the discount deepened. RE-ARM: requires turnover to clear S AND Target_12Week to turn non-negative AND a settled bullish print at adj >= 65. |
| — | sgmscap | — | NO ACTION | — | — | n/a | n/a | n/a | No action. The book stays fully in cash at Swith all eleven names held at zero. Nothing printed a buy signal, so there was nothing to acquire, and with no positions there was nothing to sell. Two names tied as the closest candidates and both finished two points short of the bar - one of them, Aztech, is additionally contradicted by our own estimate that it is worth 43% less in twelve weeks. Nine of the eleven names in this universe now carry a negative twelve-week outlook, so holding cash is agreeing with the analysis rather than defaulting past it. OPERATIONAL: 0 ACQUIRE + 0 DISPOSE + 0 ANTICIPATE. Buy pool empty by construction (no STRONG BUY/BUY/BUY - ADD row); no BUY - ANTICIPATE print so the 4th slot is empty; dispose pool cannot exist at (MSCAP-3). Blocks: liquidity-gated (AWX/558/5DD/S71 - composition churned 75% vs 09-02 which gated E28/8AZ/M14/S71), 3 on 'Consensus conflict + low conviction' (I07/BN2/575), PCT adj 63 and 8AZ adj 63 both 2pts under the 65 floor on non-acquire WATCH labels, E28 adj 43, M14 bearish AVOID cv58. Valuation REGENERATED this run (stale at 8 days; new FetchedAt 2026-09-03 18:20:10, NA). Scorecard 202 entries / 0 graded / calib_1w null / cells {} -> f=0.30 mandatory per L5, all biases 0. Overlay stale 60 days, down-weighted. Horizon: SG events touch this book. Learnings ACTIVE block 47 days old; 6 PROPOSED blocks inert and NOT applied. Step 8a NOT run (batch directive). unchanged at S; SGM-3 - size never argues the floor down. |
Outcome & track record
Accuracy at the time of this record.
0 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.
0.000 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.