◎Reading the tape… If this doesn't fill in, the data files haven't loaded — run python refresh.py --all.Regime detail →
Action queueranked by urgency · reason → action → proof
Computed from the current mark against each frozen entry and stop — not from the alert log, which records when a condition first fired and can be weeks stale. Every row shows the numbers behind it: expand proof to audit the arithmetic before you act.
The master risk switch (GREEN/YELLOW/RED) that decides your position size before you look at any single idea.
Engine A / Engine B
Engine A = Malaysian single stocks (baskets). Engine B = US sector ETFs. Two separate hunting grounds, same rules.
Fund NAV vs Benchmarks live track record since 2026-07-10 · no backtest
All three series rebased to 100 at inception. History accrues from inception — a real curve builds one refresh at a time; nothing here is backtested.
US sector movement top movers vs S&P 500 · rebased 100 · 1Y
The eight largest 1-month relative movers plus the benchmark. Click a chip to hide a series · double-click to solo it.
MY sector movement Bursa baskets vs KLCI · rebased 100 · 1Y
Same self-built sector baskets as the MY page. Both charts use identical maths and scaling, so the two markets are directly comparable side by side.
Portfolio Context
Market
ContextEverything below is supporting detail — the engine’s state, this week’s signals and the current book. Your decision is the Action queue at the top of this page; nothing down here needs to be acted on directly.
Modulesengine state at a glance
Engine BUS Rotation Book2 held
US sector/theme trend rides. Only price trend triggers; valuation & flow confirm.
Honest note: This gauge measures recession RISK, not the exact calendar stage. Low risk ≠ early cycle — it means no downturn signal on the 12-month horizon. For position sizing that’s what matters.
People buy discretionary when they feel rich and staples when they feel cautious, so the ratio of the two is a clean read on risk appetite that owes nothing to the index level. Rising = risk-on and supports carrying full size; falling = defensive rotation, which often turns before the headline index does. Computed from the same weekly series as the sector cards — no extra data source.
Market Breadthcomputed · % of stocks above their EMAs
Gate Indicatorsevery number search-verified · source + as-of
Indicator
Value
Read
As-of
How to read:green = supportive, red = a warning sign. Gold-highlighted rows are the ones that decide the verdict. Index comfortably above its 200-day + healthy breadth + risk-on internals = GREEN → full-size permitted. The rich P/E is a caution, not a downgrade.
10-Year ContextIS TODAY'S READING HIGH OR LOW?
How to read: each mini-chart is the recent path; the gold dot is today. The tag says where today sits in its ~10-year range — LOW / MID / HIGH. Valuation (P/E), yields and gold are all at the HIGH end — that's the "rich" caution behind GREEN.
Gate Logic
GREEN index >200D + breadth >55% + RSP/SPY rising → full-size OKYELLOW >200D but internals diverging → half-size, tighten stopsRED index <200D → no new longs; defensive doors only
US Sector Rotation · RRG30 ETFs vs SPYRS 3M · Mom 1M
How Leading / Improving / Weakening / Lagging are computed ▸
Two numbers place every name on the clock, both measured against the benchmark (SPY):
rs = 3-month return − SPY 3-month return → the x-axis: is it stronger than the market over a quarter?
mom = (1-month return − SPY 1-month return) − rs → the y-axis: is that strength accelerating? Subtracting rs is what makes this a rate-of-change rather than a second strength reading.
The quadrant is then just the pair of signs:
Quadrant
rs
mom
Meaning
Leading
≥ 0
≥ 0
stronger than the market and still accelerating
Weakening
≥ 0
< 0
still stronger, but momentum is rolling over — the usual exit warning
Lagging
< 0
< 0
weaker and getting weaker
Improving
< 0
≥ 0
still behind, but turning up — where early entries live
Identical maths on both engines (US vs SPY, MY vs KLCI) so the two clocks are directly comparable. A dot near the centre is barely distinguishable from the benchmark — treat small distances as noise.
The clock: ETFs travel Improving → Leading → Weakening → Lagging. Buy Improving (early), ride Leading, trim Weakening, avoid Lagging. x = strength vs SPY (3M rel), y = whether that strength is accelerating (1M rel − 3M rel).
Rotation Leaderboardrelative to SPY · sorted 1M rel
How to read: every number is the ETF's return minus SPY's over that window — green = beating the index, red = lagging it. Colour intensity ranks each column. quad = its spot on the rotation clock above.
Ranked Universetop of 30-ETF book▲ vs200D · flow IN/OUT
#
Ticker
vs 200D
EMA20/50
3M RS
Value
Flow
Flag
How to read: we only BUY names in an uptrend (ABOVE 200D + bullish EMAs) that are also beating the market (positive 3M RS). TRIPLE ✦ = the best possible setup. BREAKDOWN / value-trap = AVOID, no matter how cheap. Gold row = the one we bought.
How to read: each card is the ETF's price over the trailing 12 months. The big number is today's price vs its 200-EMA — green = above (uptrend), red = below (downtrend). Above the 200-EMA is the trend gate; the further above, the stronger the trend.
Flagscomputed from the ranked table
Breakdowns — do not chase
🔄 Reversal Radarwatch-only · never a buy
How to read: a name is ARMED only when it is deeply off its high (≤−20%), a fresh EMA20>50 cross has fired, and relative strength is accelerating (1M rel > 3M rel). This is a watch-only hint — the fund never buys it; the 200-EMA trend gate still governs every real entry.
🧭Two layers in one place. The curated baskets (judgment) sit on top of the systematic 27-sector scanner (quant, equal-weighted vs KLCI). Baskets tell you what to buy; the scanner is the wide radar that feeds them.
Basket Radarcomposite trend · 3M RS vs KLCI · catalyst
Basket
vs 200D
Lead EMA20/50
3M RS
Value
Catalyst this week
How to read: each "basket" = a group of Malaysian stocks in one theme. We want baskets ABOVE their 200D trend, outperforming the KLCI, with a real catalyst (contract, policy). Gold rows = the leaders the fund acted on. Red text = a warning (outflows, weak trend).
Drill-down · Constructiontrend+flow+catalyst
SUNCON — above 200D, higher lows, RM8.2bn order book, foreign +RM19.9m last wk. Gamuda — above 200D, DC award, near support. ⚠ Jul-9 share subdivision — verify basis. MN Holdings — DC-grid pure-play, stacked substation wins (RM216/128/276/122m).
Drill-down · Utilities/Gridstructural tailwind
YTL Power — near 2-yr high RM4.41, above all EMAs, DC-listing value-unlock live. TNB — above 200D, Green Lane DC-connection driver, grid-capex anchor. MN Holdings — bridges grid + construction baskets.
No clean TRIPLE: the trend leaders (Tech, Cons, Grid) are RICH not cheap — valuation is the only non-confirm. Flagged as strongest composite setups (bullish trend + flow/catalyst IN).
🔄 Reversal Radarwatch-only · never a buy
How to read: a name is ARMED only when it is deeply off its high (≤−20%), a fresh EMA20>50 cross has fired, and relative strength is accelerating (1M rel > 3M rel). This is a watch-only hint — the fund never buys it; the 200-EMA trend gate still governs every real entry.
The Scanner27 Bursa sectors · equal-weighted vs KLCI
12-Month Sector Trendself-built index · distance to 200-EMA · trailing 12 months
How to read: each card is the sector's equal-weight index over the trailing 12 months. The big number is today's price vs its 200-EMA — green = above (uptrend), red = below (downtrend). Above the long-term EMA is the trend gate; the further above, the stronger.
BenchmarksBursa vs Wall Streetrotation is measured vs KLCI
Rotation Leaderboard27 sectors × 6 windows · relative to KLCIclick a row → top-10 by revenue
How to read: every number is the sector's return minus the KLCI's over that window — so green = beating the market, red = lagging it (rotation is relative, not absolute). Colour intensity ranks each column. quad = its spot on the rotation clock. Sort priority is 1M relative strength. Click any sector row to expand its top-10 constituent stocks ranked by revenue.
Rotation Quadrant · RRGRS 3M · Mom 1M
How Leading / Improving / Weakening / Lagging are computed ▸
Two numbers place every name on the clock, both measured against the benchmark (KLCI):
rs = 3-month return − KLCI 3-month return → the x-axis: is it stronger than the market over a quarter?
mom = (1-month return − KLCI 1-month return) − rs → the y-axis: is that strength accelerating? Subtracting rs is what makes this a rate-of-change rather than a second strength reading.
The quadrant is then just the pair of signs:
Quadrant
rs
mom
Meaning
Leading
≥ 0
≥ 0
stronger than the market and still accelerating
Weakening
≥ 0
< 0
still stronger, but momentum is rolling over — the usual exit warning
Lagging
< 0
< 0
weaker and getting weaker
Improving
< 0
≥ 0
still behind, but turning up — where early entries live
Identical maths on both engines (US vs SPY, MY vs KLCI) so the two clocks are directly comparable. A dot near the centre is barely distinguishable from the benchmark — treat small distances as noise.
The clock: sectors travel Improving → Leading → Weakening → Lagging. Buy Improving (early), ride Leading, trim Weakening, avoid Lagging. x = strength vs KLCI, y = whether that strength is accelerating.
Sector Index Trendsrebased 100 · 1Y
Each basket rebased to 100 a year ago (self-built sector index — Bursa's own sub-indices aren't public). Dashed = KLCI & S&P 500. Click a chip to show/hide · double-click to solo.
📰 Malaysia Market NewsThe Edge · The Star · Google News
Virtual Fund 🤖 the automated portfolio
ⓘ How execution works →NO SHORTING · LONG/CASH ONLYSECTION 4 · $100kstruck 2026-07-10 · marked at fill
🤖This is your automated portfolio. The engine built these positions itself from this week's flags. It's paper/virtual (not a real broker); every fill is frozen point-in-time, net of realistic fees.
How the fund is actually doingvs both benchmarks, since inception
Performance live track record since inception
Execution Blotter & Exit Ladderstops provisional · to be tightened to exact 200D/swing-low
Sym
Eng
Shares
Entry
Now
P&L
Net cost $
Wt
Init. stop
Thesis
How to read: these 8 trades were placed automatically from the flags. Entry = price paid. Net cost = what it cost after fees. Init. stop = the price where the system cuts the loss. The exit ladder below is the staged sell plan — all positions are currently rung 0 (healthy).
Exit ladder:0 healthy1 trendline broken → tighten2 swing low broken → trim ½3 EMA cross down → trim to stub4 200D broken → exit· all positions currently rung 0
Valuation — modelled, then stressedjustified P/B · Gordon Growth · click a row for sensitivity
How to read:gold = price · blue = EMA20 · purple = EMA50 · grey thin = 200D (computed from the same 1Y series). Gold dashed = frozen entry · red dashed = stop. Entries are frozen point-in-time — later data never rewrites them.
Conviction ScorecardSIZE = REGIME BASE × MULTIPLIERGREEN base 8% · this is the thesis
Sym
Trend
Mom
RS
Flow
Value
Cat
Score
×Mult
Size
Note
How to read: each pillar is ✓ (pass) or ✗ (fail), after the mandatory Trend gate (200D). Score → multiplier → size, all mechanical. Struck-through/dimmed rows failed the gate or the score threshold — every scored name is shown, passes and fails, because the fails ARE the systematic thesis.
Technical LevelsEMA20/50 · 200D · support sets the stop
Sym
Price
EMA20
EMA50
200D
Cross
Support (→ stop)
Resistance
How to read: EMA20 above EMA50 = up-momentum. Price above 200D = the mandatory trend gate. The Support level is a real recent swing-low — that's where each stop sits, not an arbitrary %.
🚫 Watchlist — dropped this weekno position
Fee Model
US ETFs: $0.0035/share, min $0.35 (IBKR-tiered) — trivial, counted. MY stocks: 0.10% brokerage + 8% SST on brokerage + 0.03% clearing + 0.10% stamp duty ≈ 0.24%/side. FX: 0.20% USD→MYR (rate 4.0770). Total entry cost: $140.82 = 0.14% of fund.
Excluded — firewallno entry
SMH — top RS but below 200D. XLE / GLD / GDX / URA — cheap but downtrending.
Rule: never buy cheapness without a price-trend trigger. Re-arm only on a reclaimed EMA50 with RS turning up.
Backtest
PRICE-ENGINE ONLY
⚠ Scope & Caveats — read firsthonest by constructionPRICE ENGINE ONLY · NOT THE LIVE SYSTEM95% INVESTED (STOP-LOSS JUSTIFIED) · INTRA-MONTH STOPS MODELLED
📋 How the backtest actually buys & sells — full stepsclick to expand
Beating the S&P is worth scrutinising — so here's exactly how every historical fill was decided. No black box.
1
The clock — monthly rebalance
Decisions are made on the last trading day of each month (~112 rebalances since 2017). Between rebalances, every holding's stop is checked on every daily close.
2
Regime gate first
S&P > its 200-EMA → GREEN (base unit 8%). Otherwise RED → 100% to cash, no longs. The regime alone decides whether we invest at all.
3
Score every name (price only)
Gate: price > 200-EMA — fail = skip. Then score = (EMA20>EMA50 ? 1 : 0) + (3M return > benchmark's 3M ? 1 : 0) → 0, 1 or 2. Keep names that pass the gate and score ≥ 1.
4
Rank & size
Rank by score, then by 3-month relative strength. Size = 8% × (score 2 → ×1.5, score 1 → ×1.0), capped at 10% per name. Fill top-down until 95% invested (5% cash), no engine (US/MY) over 52%, max 12 positions.
5
BUY
New qualifiers are bought at that month's close. MY names are priced in RM and converted at the day's USD/MYR. Fees are charged on every turnover.
6
HOLD
A position is carried unchanged to the next rebalance unless it's re-sized or sold.
7
SELL — two ways
(a) Monthly: at the next rebalance if it drops out of the book (fails the gate or gets out-ranked). (b) Intra-month: if any daily close breaches its stop = max(200-EMA at entry, entry × 0.92) → exit to cash that day; it stays out until it re-qualifies. This is the same exit-ladder the live fund uses.
8
What it does NOT use — why the edge is honest
Only the price rules above. It deliberately excludes the weekly flow/value/catalyst reads (those never existed historically → including them would be look-ahead), and uses today's universe (survivorship). So the 18.8% CAGR is the trend + relative-strength core, not a curve-fit story. Verify any single fill in the month-by-month ledger below.
Equity Curvestrategy vs SPY vs KLCI · rebased 100 · monthly
All three curves rebased to 100 at the start. Click a chip to show/hide a series · double-click to solo. MY names and the KLCI are valued in USD so all three share one base currency.
Validation — did the signal lead the news?coverage timing around the strike
What actually drove the returncompleted round-trips, ranked by contribution
How this is computed: every position is tracked from its buy month to the month it left the book (sell or stopped), using the point-in-time prices already in the ledger below. Contribution = trade return × the weight it was held at, so a +80% winner at 10% weight adds ~8 points. Sorted by contribution, not by headline return — a huge gain on a tiny position did not drive the curve. Read the points as a ranking, not an identity: they are simple return×weight figures, so they will not add up to the headline compounded return — positions overlap in time and gains compound on a moving NAV.
Trade ledger — verify every fillby year → month → holdings
buysellstoppedhold
Every month-end book the price engine struck, expandable down to each fill (symbol · action · native price · weight). Prices are point-in-time; stopped rows exited intra-month on a daily close through the hard stop. Re-check any fill against source history.
10x Compounder 🤖 $10k monthly paper fund
SCREENER + FUND
🚀Long-term compounder screener + a $10k paper fund. Every name is scored /100 on the CIO rubric. The fund holds the top 3 (score ≥85), equal-weight, and rebalances once a month — selling names that fall out, buying new entrants. Paper only, no broker.
Fund · Holdings
Ticker
Name
Score
Shares
Price
Value $
Wt
P&L
How it works: holds the top 3 by score, equal-weight; sells names that fall out of the top 3 and buys new entrants once per calendar month. Next rebalance . Gold dashed = starting $10k. Paper — no real orders.
Screener · Universe
Ticker
Name
Score
Rev CAGR
EPS CAGR
ROIC
D/E
10x
100x
Industry
Score /100 on growth · capital efficiency · balance sheet · business quality · management · industry runway. Green ≥85 buy-ready · amber 80–84 watchlist. ◆ = estimate, verify vs filings.
Fund · Order Loglast 40
When
Action
Ticker
Shares
Price
Value $
Why
Research & World Hub
SECTION 5
📰Research & the wider world. MY research (i3investor), a free US research library, plus Global and China desks — and AI opportunity briefs synthesised from the rotation data. Market news now lives on the US and MY tabs. A headline is a confirmation input, never a trend trigger. Links open the original article in a new tab.
📊 News by Sectorevery headline classified to your baskets
🤖 AI Opportunity Briefssynthesised from PULSE rotation data
Each brief is stamped AI SYNTHESIS — not a bank report. Every number is templated straight from the US & MY rotation files; nothing is asserted that isn't derivable from the data.
🇲🇾 MY Research · i3investorbroker research headlines
🇺🇸 US Industry Research (free)McKinsey · BCG · Bain · Deloitte · IMF · OECD · BIS · World Bank · Fed
LATEST INDUSTRY REPORTS
🇺🇸 Leading Firms · Analyst Researchthe industry read, through its bellwethers