Market Intelligence by @CoachZubair

Swing Setups
Technical indicator scoring · June 23, 2026
📄 Full strategy & how it compares to top traders (PDF)
📊 What is swing trading?

Swing trading means holding a position for days to a few weeks, aiming to capture one defined price move — from a technical entry zone (near support or a moving average) up to a pre-set target. It sits between day trading (not watching every tick) and long-term investing (not riding out a 40% drawdown for three years). The edge comes from timing: entering when momentum indicators align and exiting at a defined target or stop before the move reverses. It is a skill, not a shortcut — and it carries meaningfully different risk than the long-term buy-and-hold approach described in the Strategies tab.

📈 Long-term hold (Strategies tab)
  • Horizon Years to decades
  • Effort ~1 hr/quarter — review & rebalance
  • Risk Drawdowns are temporary; time in market is the strategy
  • Returns 6–12%/yr historical average for halal equity indices
  • Tax Very few events/year; efficient in TFSA/RRSP
  • Right for Everyone — the foundation, not optional
  • Leverage Never needed
⚡ Swing trading (this page)
  • Horizon 3–20 trading days typically
  • Effort Daily — review signals, manage open stops
  • Risk Hard stop per trade; 35–50% of trades will be losers even in a profitable system
  • Returns Higher ceiling, higher floor — highly variable year-to-year
  • Tax Each closed trade is a taxable event; more complexity
  • Right for Intermediate/advanced only — after long-term base is set
  • Leverage Never — especially for halal investors
⚠️ Not recommended for beginners Swing trading is not a faster path to returns — it is a separate discipline with its own learning curve. Before attempting it, you should have:
  • A stable long-term halal portfolio already in place (the Strategies tab foundation first)
  • The emotional discipline to absorb 4–5 consecutive stopouts without abandoning the system
  • A clear understanding of position sizing — getting this wrong turns a winning strategy into net losses
  • A dedicated "active" allocation separate from long-term savings, kept small — our own funded model caps the swing sleeve at 5% of total capital
WATCH — awaiting confirming close ENPH 🕌 Halal Universe Enphase Energy Inc. $50.10 ⭐ 6/6
✅ Uptrend ✅ RSI 45.8 ✅ EMA50 Support (+0.1% vs EMA50) ✅ MACD Improving ✅ Volume ✅ Rel Strength +6.6%
No watchlist levels set — identify your own entry, stop, and target from support/resistance analysis before trading.
Rule-based setup — no AI commentary available today.
⏳ Awaiting confirmation Rel strength: +6.6% vs S&P (SPUS) BB %B: 23 MACD hist: rising
WATCH — awaiting confirming close MRAM 🕌 Halal Universe Everspin Technologies (MRAM memory) $24.21 ⭐ 5/6
✅ Uptrend ✅ RSI 45.8 ✅ EMA50 Support (+1.0% vs EMA50) ❌ MACD Improving ✅ Volume ✅ Rel Strength +149.1%
No watchlist levels set — identify your own entry, stop, and target from support/resistance analysis before trading.
Rule-based setup — no AI commentary available today.
⏳ Awaiting confirmation Rel strength: +149.1% vs S&P (SPUS) BB %B: 27 MACD hist: falling
WATCH — awaiting confirming close TWLO 🕌 Halal Universe Twilio Inc $182.92 ⭐ 5/6
✅ Uptrend ✅ RSI 41.3 ✅ EMA50 Support (-0.2% vs EMA50) ❌ MACD Improving ✅ Volume ✅ Rel Strength +27.6%
No watchlist levels set — identify your own entry, stop, and target from support/resistance analysis before trading.
RSI at 44.6 has pulled back while the price holds 2.5% above a rising golden-cross EMA50 with a rising MACD histogram on healthy volume, and the confirmed up-day EMA50 reclaim makes this an active entry near $188.18 — Twilio leads the S&P by 31.4% over three months on accelerating AI-powered communications and developer-platform adoption. Maintain stop below the EMA50 near $183.60; invalidated on a close back below that level.
⏳ Awaiting confirmation Rel strength: +27.6% vs S&P (SPUS) BB %B: 21 MACD hist: rising
WATCH — awaiting confirming close LWLG 🕌 Halal Universe Lightwave Logic (electro-optic polymers) $9.5700 ⭐ 5/6
✅ Uptrend ✅ RSI 42.2 ❌ EMA50 Support (-12.3% vs EMA50) ✅ MACD Improving ✅ Volume ✅ Rel Strength +13%
No watchlist levels set — identify your own entry, stop, and target from support/resistance analysis before trading.
RSI at 43.6 sits below a golden-cross EMA50 (price 9.8% below) on healthy volume while a fresh confirmed MACD bullish divergence signals downside exhaustion in Lightwave Logic's electro-optic polymer transceiver thesis, which has outrun the S&P by 25.8% over three months on AI data-center demand for next-gen optical interconnects. This is an early-stage setup: await a sustained price reclaim of the EMA50 near $10.88 as the entry trigger; invalidated on a new price low that breaks the divergence structure.
⏳ Awaiting confirmation ⚡ Bullish MACD divergence Rel strength: +13% vs S&P (SPUS) BB %B: 28 MACD hist: rising
WATCH — awaiting confirming close CRML 🕌 Halal Universe Critical Metals Corp. $10.38 ⭐ 5/6
✅ Uptrend ❌ RSI 48.7 ✅ EMA50 Support (-2.5% vs EMA50) ✅ MACD Improving ✅ Volume ✅ Rel Strength +9.3%
No watchlist levels set — identify your own entry, stop, and target from support/resistance analysis before trading.
RSI at 49.3 approaches a golden-cross EMA50 (price 1.9% below) with both RSI and MACD showing fresh confirmed bullish divergence — dual-oscillator higher-low momentum against price's lower lows suggests exhaustion of the correction in Critical Metals Corp., which leads the S&P by 15.3% over three months on defense and energy-transition demand for critical minerals. Await a confirmed green close above the EMA50 near $10.66 for entry; invalidated on a close below the lower Bollinger Band.
⏳ Awaiting confirmation ⚡ Bullish RSI+MACD divergence Rel strength: +9.3% vs S&P (SPUS) BB %B: 45 MACD hist: rising

All Tickers — Score Overview

ENPH 6/6 🕌
AAPL 5/6 🕌
AVGO 5/6 🕌
MRAM 5/6 🕌
LWLG 5/6 🕌
CRML 5/6 🕌
TWLO 5/6 🕌
NVDA 4/6 📊
OIL 4/6 📊
NET 4/6 🕌
WMT 4/6 🕌
NEE 4/6 🕌
MPWR 4/6 🕌
PANW 4/6 🕌
FSLR 4/6 🕌
DECK 4/6 🕌
IONQ 4/6 🕌
PCT 4/6 🕌
IBRX 4/6 🕌
NRGV 4/6 🕌
UAMY 4/6 🕌
XMTR 4/6 🕌
NVTS 4/6 🕌
DGXX 4/6 🕌
LAC 4/6 🕌
U 4/6 🕌
NOK 4/6 🕌
MXL 4/6 🕌
ADM 4/6 🕌
CSCO 4/6 🕌
EBAY 4/6 🕌
EOG 4/6 🕌
GFS 4/6 🕌
NSC 4/6 🕌
ODFL 4/6 🕌
PSX 4/6 🕌
STLD 4/6 🕌
UNP 4/6 🕌
VLO 4/6 🕌
ZBRA 4/6 🕌
TSLA 3/6 📊
COPPER 3/6 📊
TFX 3/6 📊
AMD 3/6 🕌
CRWD 3/6 🕌
MU 3/6 🕌
MRK 3/6 🕌
LLY 3/6 🕌
COST 3/6 🕌
ANET 3/6 🕌
VRT 3/6 🕌
HON 3/6 🕌
DXCM 3/6 🕌
CCJ 3/6 🕌
MP 3/6 🕌
SMCI 3/6 🕌
NEOG 3/6 🕌
ALM 3/6 🕌
DOW 3/6 🕌
FLNC 3/6 🕌
RLAY 3/6 🕌
PLAB 3/6 🕌
NVCR 3/6 🕌
AXTI 3/6 🕌
AEHR 3/6 🕌
POWI 3/6 🕌
IOVA 3/6 🕌
JOBY 3/6 🕌
ASTS 3/6 🕌
MCHP 3/6 🕌
SHLS 3/6 🕌
XOM 3/6 🕌
OKLO 3/6 🕌
ANNX 3/6 🕌
RKLB 3/6 🕌
SNDK 3/6 🕌
AMPL 3/6 🕌
AKAM 3/6 🕌
APD 3/6 🕌
CARR 3/6 🕌
CF 3/6 🕌
CIEN 3/6 🕌
COP 3/6 🕌
CRL 3/6 🕌
CSX 3/6 🕌
DELL 3/6 🕌
DVN 3/6 🕌
EW 3/6 🕌
FCX 3/6 🕌
FLEX 3/6 🕌
FFIV 3/6 🕌
FTV 3/6 🕌
GNRC 3/6 🕌
GILD 3/6 🕌
GRMN 3/6 🕌
HPQ 3/6 🕌
HPE 3/6 🕌
IFF 3/6 🕌
ILMN 3/6 🕌
KDP 3/6 🕌
MDLZ 3/6 🕌
NTAP 3/6 🕌
NUE 3/6 🕌
OKTA 3/6 🕌
OXY 3/6 🕌
PLD 3/6 🕌
RL 3/6 🕌
SCCO 3/6 🕌
SWKS 3/6 🕌
TPL 3/6 🕌
UAL 3/6 🕌
ULTA 3/6 🕌
URI 3/6 🕌
WAT 3/6 🕌
BTC 2/6 📊
ETH 2/6 📊
SILVER 2/6 📊
NATGAS 2/6 📊
AMZN 2/6 🕌
GOOGL 2/6 🕌
META 2/6 🕌
TSM 2/6 🕌
ASML 2/6 🕌
NOW 2/6 🕌
ADBE 2/6 🕌
ORCL 2/6 🕌
SNOW 2/6 🕌
INTU 2/6 🕌
INTC 2/6 🕌
LRCX 2/6 🕌
QCOM 2/6 🕌
TXN 2/6 🕌
AMAT 2/6 🕌
MRVL 2/6 🕌
UBER 2/6 🕌
MELI 2/6 🕌
ON 2/6 🕌
VEEV 2/6 🕌
CELH 2/6 🕌
SHOP 2/6 🕌
NXE 2/6 🕌
ALB 2/6 🕌
NN 2/6 🕌
CNR 2/6 🕌
TRVI 2/6 🕌
INSP 2/6 🕌
RPM 2/6 🕌
HALO 2/6 🕌
TGTX 2/6 🕌
ASO 2/6 🕌
FIGS 2/6 🕌
ANF 2/6 🕌
NOV 2/6 🕌
VNDA 2/6 🕌
FRPT 2/6 🕌
WYFI 2/6 🕌
AMBQ 2/6 🕌
LEGN 2/6 🕌
RELY 2/6 🕌
ALGM 2/6 🕌
THO 2/6 🕌
INDV 2/6 🕌
CNQ 2/6 🕌
QS 2/6 🕌
NXPI 2/6 🕌
WDC 2/6 🕌
XPRO 2/6 🕌
TDOC 2/6 🕌
STX 2/6 🕌
DV 2/6 🕌
PATH 2/6 🕌
ALAB 2/6 🕌
PSIX 2/6 🕌
AVTR 2/6 🕌
FTRE 2/6 🕌
BZ 2/6 🕌
TRMB 2/6 🕌
ABBV 2/6 🕌
ADI 2/6 🕌
ALGN 2/6 🕌
ADSK 2/6 🕌
ATO 2/6 🕌
APTV 2/6 🕌
BIIB 2/6 🕌
BSX 2/6 🕌
BKR 2/6 🕌
BURL 2/6 🕌
CBRE 2/6 🕌
CDNS 2/6 🕌
CHD 2/6 🕌
CHRW 2/6 🕌
CL 2/6 🕌
COHR 2/6 🕌
COO 2/6 🕌
CMI 2/6 🕌
CVNA 2/6 🕌
CTVA 2/6 🕌
CVX 2/6 🕌
DAL 2/6 🕌
DGX 2/6 🕌
DLTR 2/6 🕌
DOCU 2/6 🕌
EA 2/6 🕌
EMR 2/6 🕌
EXE 2/6 🕌
EXPD 2/6 🕌
FAST 2/6 🕌
FDX 2/6 🕌
FIX 2/6 🕌
FTNT 2/6 🕌
GEV 2/6 🕌
GDDY 2/6 🕌
GLW 2/6 🕌
GPN 2/6 🕌
GWW 2/6 🕌
HAL 2/6 🕌
HUBB 2/6 🕌
IEX 2/6 🕌
IBM 2/6 🕌
INCY 2/6 🕌
JBHT 2/6 🕌
JCI 2/6 🕌
JBL 2/6 🕌
JNJ 2/6 🕌
KMB 2/6 🕌
KO 2/6 🕌
KLAC 2/6 🕌
LII 2/6 🕌
LIN 2/6 🕌
LULU 2/6 🕌
LYB 2/6 🕌
LUV 2/6 🕌
MAS 2/6 🕌
MNST 2/6 🕌
NDSN 2/6 🕌
NEM 2/6 🕌
NVR 2/6 🕌
PNR 2/6 🕌
PKG 2/6 🕌
PWR 2/6 🕌
PTC 2/6 🕌
ROL 2/6 🕌
ROK 2/6 🕌
ROST 2/6 🕌
RVTY 2/6 🕌
SNPS 2/6 🕌
SNA 2/6 🕌
SLB 2/6 🕌
SOLS 2/5 🕌
SRE 2/6 🕌
SUI 2/6 🕌
TEL 2/6 🕌
TEAM 2/6 🕌
TER 2/6 🕌
TGT 2/6 🕌
TJX 2/6 🕌
TT 2/6 🕌
UI 2/6 🕌
UPS 2/6 🕌
VRSN 2/6 🕌
WAB 2/6 🕌
WSM 2/6 🕌
WM 2/6 🕌
WST 2/6 🕌
GOLD 1/6 📊
PLATINUM 1/6 📊
MSFT 1/6 🕌
CRM 1/6 🕌
PLTR 1/6 🕌
ACN 1/6 🕌
ISRG 1/6 🕌
TMO 1/6 🕌
REGN 1/6 🕌
HD 1/6 🕌
PG 1/6 🕌
NKE 1/6 🕌
APP 1/6 🕌
DNOW 1/6 🕌
HNRG 1/6 🕌
ECL 1/6 🕌
LDOS 1/6 🕌
AOS 1/6 🕌
ACAD 1/6 🕌
LMB 1/6 🕌
A 1/6 🕌
CTAS 1/6 🕌
RGEN 1/6 🕌
TTD 1/6 🕌
MLTX 1/6 🕌
ARLO 1/6 🕌
TEM 1/6 🕌
HROW 1/6 🕌
SNAP 1/6 🕌
BHVN 1/6 🕌
PPTA 1/6 🕌
SLI 1/6 🕌
WRBY 1/6 🕌
CXM 1/6 🕌
TSCO 1/6 🕌
BTQ 1/5 🕌
ALLE 1/6 🕌
AVY 1/6 🕌
AZO 1/6 🕌
BBY 1/6 🕌
BDX 1/6 🕌
BLDR 1/6 🕌
CAH 1/6 🕌
CDW 1/6 🕌
CEG 1/6 🕌
CLX 1/6 🕌
CRH 1/6 🕌
CPRT 1/6 🕌
CSGP 1/6 🕌
CTSH 1/6 🕌
DD 1/6 🕌
DHR 1/6 🕌
DLR 1/6 🕌
DOV 1/6 🕌
EFX 1/6 🕌
EQIX 1/6 🕌
EXPE 1/6 🕌
FERG 1/6 🕌
FICO 1/6 🕌
FWONA 1/6 🕌
GEHC 1/6 🕌
GPC 1/6 🕌
HSY 1/6 🕌
IDXX 1/6 🕌
IR 1/6 🕌
IT 1/6 🕌
J 1/6 🕌
ITW 1/6 🕌
KVUE 1/6 🕌
LEN 1/6 🕌
LH 1/6 🕌
LOW 1/6 🕌
MAA 1/6 🕌
MCK 1/6 🕌
MMM 1/6 🕌
MKC 1/6 🕌
MSTR 1/6 🕌
MTD 1/6 🕌
NWSA 1/6 🕌
NWS 1/6 🕌
ORLY 1/6 🕌
OMC 1/6 🕌
PFE 1/6 🕌
PEP 1/6 🕌
PODD 1/6 🕌
PPG 1/6 🕌
Q 1/5 🕌
RMD 1/6 🕌
ROP 1/6 🕌
SHW 1/6 🕌
STE 1/6 🕌
SYK 1/6 🕌
TECH 1/6 🕌
T 1/6 🕌
TTWO 1/6 🕌
TPR 1/6 🕌
TYL 1/6 🕌
VLTO 1/6 🕌
VGNT 1/4 🕌
VMC 1/6 🕌
VRTX 1/6 🕌
WDAY 1/6 🕌
WELL 1/6 🕌
ZBH 1/6 🕌
WY 1/6 🕌
ABT 0/6 🕌
JANX 0/6 🕌
VITL 0/6 🕌
RBLX 0/6 🕌
GERN 0/6 🕌
BKNG 0/6 🕌
COR 0/6 🕌
DASH 0/6 🕌
DHI 0/6 🕌
EL 0/6 🕌
FWONK 0/6 🕌
IP 0/6 🕌
MLM 0/6 🕌
MDT 0/6 🕌
OTIS 0/6 🕌
PHM 0/6 🕌
POOL 0/6 🕌
RSG 0/6 🕌
SW 0/6 🕌
XYL 0/6 🕌

No swing setups detected today in FM Inspired (Strong-uptrend pullback + intraday divergence).

Setups appear when this strategy's rules align. Check back tomorrow.

All Tickers — Score Overview

FTRE 4/5 🕌
SNOW 3/5 🕌
ENPH 3/5 🕌
MRAM 3/5 🕌
BTQ 3/5 🕌
NTAP 3/5 🕌
📖 How to use these signals — technical analysis vs fundamentals & risk/reward

Technical analysis vs. fundamental analysis

The six signals on this page are entirely technical — they read price history, momentum, moving averages, volume, and relative strength. They say nothing about whether the underlying business is good, growing, or at risk. This is intentional. The two approaches answer different questions:

⚙️ Technical analysis — when to enter

Uses price, volume, and momentum indicators. Studies chart patterns, moving averages (EMA50, EMA200), and oscillators (RSI, MACD). The premise: all known information — earnings, news, sentiment — is already reflected in the price. The chart doesn't care about earnings calls.

Works on any asset: BTC, gold, a halal ETF, a screened stock. These are the tools on this page.

📋 Fundamental analysis — what to own

Uses revenue growth, profit margins, debt levels, competitive moat, management quality, and valuation ratios (P/E, P/S). Halal equity screening — the AAOIFI debt/cash ratios — is a form of fundamental filtering applied for Shariah compliance.

This is the basis of long-term buy-and-hold investing (the Strategies tab). Excellent for picking the right assets; imprecise for timing entries.

Best practice: use fundamental analysis (or Shariah screening) to decide what you are comfortable owning, then use technical signals to decide when to enter. The setups here assume halal screening is already done — they layer a timing signal on top.

The 6 signals explained

New to RSI, MACD, EMA or Bollinger Bands? Each term is defined plainly in the Glossary →

✅ Uptrend

The 50-day EMA is above the 200-day EMA and the 200-day EMA is rising. Swing entries work best trading WITH the dominant trend — this is stricter than a plain "golden cross" because it also requires the long-term trend to be improving, not just positive.

✅ RSI Pullback (< 48)

In an uptrend, RSI rarely falls to the textbook "oversold" 30 — it tends to bottom in the 40–50 zone and bounce. A reading under 48 marks a pullback into that support band: a dip to buy into, not a collapse to avoid.

✅ EMA50 Support

Price is within ±3% of the 50-day EMA. The 50 EMA acts as dynamic support in uptrends — institutions tend to accumulate near this level. Far above = extended, not a support play.

✅ MACD Improving

The MACD histogram has risen for 2 consecutive bars from a recently negative reading — momentum shifting from bearish to bullish. A tighter filter that reduces false signals early in a move.

✅ Volume Healthy

Either the pullback is on contracting volume (sellers exhausted, not dumping) or the latest up-day came on expanding volume (buyers confirming). Volume is how you tell a healthy dip from distribution.

✅ Relative Strength

The ticker has outperformed the broad market (the SPUS S&P 500 ETF) over the last 3 months. Professional swing traders buy leaders, not laggards — a name beating the index on the way up tends to keep leading.

Two context flags (not scored)

In Buy Zone

For watchlist tickers, whether price sits inside the curated 1-month buy zone. Shown for context — it no longer adds to the score, so watchlist and halal-universe tickers compete on the same 6 signals.

Reversal Confirmed

The most recent close was up and reclaimed the 50-day EMA — the reversal has actually started, not just lined up. "Awaiting confirmation" means the setup is primed but hasn't triggered; consider waiting for a green confirmation candle.

Using a setup: step by step

  1. Score 5–6/6 = high confidence. Enter on a confirmed close within the entry zone, or next-day open if price gaps in. Score 4/6 = moderate — wait for the "Reversal confirmed" flag or a bullish candlestick first.
  2. Set your stop. Place your stop at or just below the Stop price shown. If price closes below the stop, the setup is invalidated — exit.
  3. Target TP1 first. Take 50–75% of the position at TP1, move your stop to breakeven for the rest. Let the remainder ride to TP2 or until the trend reverses.
  4. Check the main dashboard first. These are technical signals only. A negative macro event or bad news can override any technical setup.

Three entry guards also run automatically before any setup surfaces: a market-regime gate (no new setups while the halal S&P benchmark is below its 200-day average), an earnings blackout (no entry within 14 days of a confirmed earnings date), and an analyst veto (a hard negative shift in analyst recommendations blocks entry).

Risk/reward framework

Only enter when TP1 is ≥ 2× the distance to stop (R:R ≥ 2:1).
Risk no more than 1–2% of your account on any single setup.

Position size = (Account × Risk %) ÷ (Entry − Stop)
Example: $10,000 · 1% risk = $100 max loss. Entry $78,000, Stop $69,000 (gap = $9,000). Position = $100 ÷ $9,000 = 0.011 BTC.

Swing signals are technical only — not financial advice. Every trade carries risk of loss. Halal universe tickers show indicator scoring only; you must set your own entry/stop based on support and resistance. Past performance on the Swing Performance tab has a very short history — treat all win rates as preliminary.

Six signals scored daily from up to 2 years of price history: trend (EMA 50/200 stack), RSI(14) pullback, EMA50 support, MACD(12,26,9), volume, and 3-month relative strength vs the S&P 500 (SPUS). Candidate = ≥ 60% of available signals (floor 3) and not overbought. Not financial advice — conduct your own research.
⚠ Verify compliance marks a halal-universe name with a possible Shariah question (sector or financial ratio) — it is still scored, but confirm it in your own screener (e.g. Zoya/Musaffa) before acting.
⚡ Bullish divergence marks a fresh, confirmed RSI/MACD divergence (price lower low, momentum higher low) — an early possible-bottom signal shown for context only; it does not change the score (under evaluation).

28% Win rate
5/18 Wins / closed
0 TP1 hits
-3.5% Avg return (closed)
145 Open (tracked)
DateTickerScoreEntry TP1StopOutcomeReturnBars
2026-06-22 ORCL 5/6 $184.46 Open +0.0%
2026-06-22 OKTA 4/6 $120.67 Open -0.0%
2026-06-22 CSCO 4/6 $121.30 Open +0.0%
2026-06-19 UAMY 4/6 $7.8500 Open -0.1%
2026-06-19 SRE 4/6 $90.69 Open +0.4%
2026-06-19 RELY 4/6 $21.10 Open +2.1%
2026-06-19 OIL 4/6 $75.86 Open -2.9%
2026-06-19 LWLG 5/6 $9.7800 Open +1.1%
2026-06-19 CRML 5/6 $10.15 Open +3.0%
2026-06-19 AMZN 4/6 $244.39 Open -2.2%
2026-06-18 WAT 4/6 $356.16 Open -0.6%
2026-06-18 LEGN 4/6 $28.04 Open +3.1%
2026-06-18 HPQ 4/6 $23.38 Open +3.4%
2026-06-18 GPN 4/6 $67.28 Open +0.3%
2026-06-18 DELL 4/6 $427.73 Open +1.5%
2026-06-18 ALM 4/6 $18.29 Open +6.6%
2026-06-17 SNPS 4/6 $469.81 Open -1.1%
2026-06-17 ODFL 5/6 $223.68 Open -1.1%
2026-06-17 NEM 4/6 $108.62 Open -7.2%
2026-06-17 CSX 4/6 $46.39 Open -1.4%
2026-06-16 TWLO 4/6 $192.77 Open -2.4%
2026-06-16 TSM 4/6 $430.82 Open +8.8%
2026-06-16 SOLS 3/5 $85.07 Open +0.9%
2026-06-16 SNAP 4/6 $5.6900 Open -16.0%
2026-06-16 META 4/6 $595.38 Open -3.6%
2026-06-16 IONQ 4/6 $58.07 Open +3.3%
2026-06-16 HNRG 4/6 $17.22 Open +5.1%
2026-06-15 ZBRA 4/6 $237.99 Open +3.5%
2026-06-15 VLO 4/6 $241.51 Open -2.1%
2026-06-15 TTWO 4/6 $217.13 Open +15.2%
2026-06-15 PSX 4/6 $171.20 Open -2.8%
2026-06-15 ON 4/6 $123.69 Open +5.8%
2026-06-15 NOK 4/6 $14.52 Open -2.5%
2026-06-15 JOBY 4/6 $9.8500 Open +1.4%
2026-06-15 GOLD 4/6 $4,381.80 Open -3.7%
2026-06-15 GILD 4/6 $124.44 Open -0.7%
2026-06-15 CTVA 4/6 $77.35 Open +0.9%
2026-06-15 ADM 4/6 $78.47 Open -4.7%
2026-06-12 WDC 4/6 $568.97 Open +32.3%
2026-06-12 TXN 4/6 $298.25 Open +10.7%
2026-06-12 STX 4/6 $930.61 Open +19.9%
2026-06-12 SLI 4/6 $3.5400 Open -3.5%
2026-06-12 POWI 4/6 $78.39 Open +15.1%
2026-06-12 PANW 4/6 $279.93 Open +5.4%
2026-06-12 MP 4/6 $57.98 Open +8.3%
2026-06-12 LAC 4/6 $4.5000 Open -2.4%
2026-06-12 HON 4/6 $220.71 Open +4.3%
2026-06-12 GFS 4/6 $81.12 Open +10.4%
2026-06-12 GEV 4/6 $936.68 Open +19.6%
2026-06-12 FLNC 4/6 $24.27 Open +9.4%
2026-06-12 FLEX 4/6 $151.53 Open -1.0%
2026-06-12 DLR 4/6 $184.24 Open +5.1%
2026-06-12 DD 4/6 $47.99 Open -0.7%
2026-06-12 DAL 4/6 $81.86 Open +4.0%
2026-06-12 CRWD 4/6 $697.11 Open +1.5%
2026-06-12 COP 4/6 $117.00 Open -7.0%
2026-06-12 CIEN 4/6 $455.00 Open -3.4%
2026-06-12 AMD 4/6 $513.71 Open +8.0%
2026-06-12 AMBQ 4/6 $83.14 Open +9.2%
2026-06-12 ALAB 4/6 $370.39 Open +15.4%
2026-06-12 AEHR 4/6 $106.89 Open +7.2%
2026-06-11 XMTR 4/6 $84.10 Open +10.0%
2026-06-11 LYB 4/6 $66.39 Open -11.4%
2026-06-11 GNRC 4/6 $246.88 Open +18.6%
2026-06-11 DVN 4/6 $46.41 Open -8.5%
2026-06-11 DOW 4/6 $34.81 Open -10.5%
2026-06-11 CL 4/6 $90.03 Open -0.0%
2026-06-11 CF 4/6 $110.89 Open -7.2%
2026-06-10 WMT 4/6 $120.59 Open -2.5%
2026-06-10 WELL 4/6 $211.36 Open -2.1%
2026-06-10 WAB 4/6 $256.52 Open +7.8%
2026-06-10 VRSN 4/6 $288.09 Open -9.0%
2026-06-10 UPS 4/6 $103.26 Open +3.7%
2026-06-10 UNP 4/6 $268.90 Open -3.4%
2026-06-10 UAL 4/6 $102.78 Open +15.6%
2026-06-10 U 4/6 $27.15 Open +1.7%
2026-06-10 TT 4/6 $449.12 Open +7.8%
2026-06-10 TGT 4/6 $127.11 Open +3.2%
2026-06-10 TER 4/6 $347.59 Open +27.3%
2026-06-10 SWKS 4/6 $70.29 Open +8.2%
2026-06-10 SLB 4/6 $55.51 Open -14.0%
2026-06-10 SHLS 4/6 $9.2500 Open +21.2%
2026-06-10 RVTY 4/6 $103.24 Open -3.2%
2026-06-10 ROK 4/6 $440.07 Open +8.2%
2026-06-10 RLAY 4/6 $13.49 Open +24.3%
2026-06-10 Q 3/5 $139.74 Open +24.0%
2026-06-10 PWR 4/6 $647.96 Open +10.0%
2026-06-10 PLAB 4/6 $29.08 Open +14.2%
2026-06-10 PKG 4/6 $216.64 Open +6.4%
2026-06-10 PCT 4/6 $10.07 Open -9.9%
2026-06-10 OXY 4/6 $57.10 Open -9.8%
2026-06-10 NXPI 4/6 $285.56 Open +13.4%
2026-06-10 NVTS 5/6 $20.50 Open +18.9%
2026-06-10 NSC 4/6 $308.93 Open -2.0%
2026-06-10 NET 4/6 $219.67 Open +2.4%
2026-06-10 NDSN 4/6 $278.57 Open +6.3%
2026-06-10 MXL 4/6 $71.95 Open +33.5%
2026-06-10 IEX 4/6 $214.50 Open +4.8%
2026-06-10 HAL 5/6 $39.73 Open -13.1%
2026-06-10 GRMN 4/6 $234.58 Open +0.8%
2026-06-10 GLW 4/6 $168.17 Open +21.4%
2026-06-10 FSLR 4/6 $249.27 Open +4.7%
2026-06-10 FIX 4/6 $1,719.48 Open +17.6%
2026-06-10 EQIX 4/6 $1,038.33 Open +6.9%
2026-06-10 EMR 4/6 $137.11 Open +10.2%
2026-06-10 EBAY 5/6 $106.41 Open +1.0%
2026-06-10 COHR 5/6 $352.18 Open +18.7%
2026-06-10 CMI 4/6 $630.52 Open +15.0%
2026-06-10 BKR 4/6 $63.02 Open -8.5%
2026-06-10 ATO 4/6 $169.35 Open +0.4%
2026-06-10 APD 4/6 $280.67 Open +0.5%
2026-06-10 AKAM 5/6 $129.97 Open -5.3%
2026-06-10 ADI 4/6 $392.67 Open +11.4%
2026-06-09 RKLB 4/6 $109.43 Open -6.4%
2026-06-09 QCOM 4/6 $205.93 Open +11.0%
2026-06-09 NVDA 4/6 $206.44 $285.00 $188.00 Open +3.1%
2026-06-09 INTC 4/6 $109.25 Open +26.4%
2026-06-09 IBRX 4/6 $7.1700 Open +1.1%
2026-06-09 ENPH 4/6 $52.83 Open +2.5%
2026-06-09 DGXX 4/6 $6.1300 Open +12.2%
2026-06-09 ANET 4/6 $152.33 Open +12.6%
2026-06-09 AAPL 4/6 $293.73 Open +2.8%
2026-06-08 WYFI 4/6 $23.86 Open +87.2%
2026-06-08 TSLA 4/6 $400.70 $490.00 $315.00 Open +1.9%
2026-06-08 NEE 4/6 $85.51 Open +1.3%
2026-06-08 COST 5/6 $974.65 Open -2.9%
2026-06-08 AXTI 5/6 $93.49 Open -5.8%
2026-06-08 AVGO 4/6 $397.36 Open +0.9%
2026-06-08 ASTS 4/6 $93.72 Open -17.7%
2026-06-08 ANNX 4/6 $5.3600 Open -6.4%
2026-06-03 MPWR 4/6 $1,652.69 Open -6.2%
2026-06-03 MCHP 4/6 $95.35 Open +7.7%
2026-06-03 GOOGL 4/6 $365.18 Open -3.2%
2026-06-03 ALGM 4/6 $50.25 Open +18.9%
2026-06-02 XPRO 4/6 $15.50 Open -12.4%
2026-06-02 TRVI 4/6 $13.57 Open +32.5%
2026-06-02 NVCR 4/6 $15.90 Open -12.5%
2026-06-02 NRGV 4/6 $5.6800 Open -20.5%
2026-06-02 MRAM 4/6 $32.54 Open -18.4%
2026-06-02 HALO 4/6 $66.11 Open +4.4%
2026-06-01 XOM 4/6 $149.05 Open -7.8%
2026-06-01 TFX 4/6 $126.04 Open -2.9%
2026-06-01 NXE 4/6 $11.31 Open -7.4%
2026-06-01 NN 4/6 $19.57 Open -10.7%
2026-06-01 FTRE 4/6 $15.09 Open +5.2%
2026-05-31 WRBY 4/6 $24.52 Time-stop +5.8% 15
2026-05-31 VRT 5/6 $315.71 Time-stop +5.4% 15
2026-05-31 UAMY 4/6 $8.9800 Time-stop -12.7% 15
2026-05-31 TGTX 4/6 $37.94 Time-stop +40.1% 15
2026-05-31 SILVER 5/6 $75.86 Time-stop -12.7% 15
2026-05-31 RELY 5/6 $20.02 Time-stop +5.3% 15
2026-05-31 PLATINUM 4/6 $1,940.00 Time-stop -12.2% 15
2026-05-31 OIL 4/6 $89.82 $105.00 $80.00 Stopped -15.4% 13
2026-05-31 NOV 4/6 $19.96 Time-stop -6.6% 15
2026-05-31 LWLG 5/6 $10.86 Time-stop -10.0% 15
2026-05-31 INDV 4/6 $36.02 Time-stop +6.2% 15
2026-05-31 GOLD 5/6 $4,569.30 $4,900.00 $4,200.00 Stopped -10.2% 9
2026-05-31 CRML 4/6 $11.20 Time-stop -9.5% 15
2026-05-31 CNQ 4/6 $45.37 Time-stop -9.6% 15
2026-05-31 CCJ 4/6 $112.70 Time-stop -5.6% 15
2026-05-31 ARLO 4/6 $13.34 Time-stop -2.2% 15
2026-05-31 AMZN 4/6 $270.64 Time-stop -9.8% 15
2026-05-31 ALB 4/6 $176.42 Time-stop -9.2% 15

Returns shown at the breaching bar's close (TP1 Hit / Stopped / Trailed / Time-stop) after an asset-class-aware slippage haircut (10 bps for stocks/ETFs/commodities, 50 bps for crypto), or live price (Open) without slippage. Bars counts daily history points (trading days for stocks/ETFs, calendar days for crypto). "Trailed" = exited at a trailing-stop level that ratcheted above the original stop (FM Inspired only). "Time-stop" = trade exited at the 15-bar close because neither TP1 nor stop resolved it first — covers level-less candidates that previously stayed "Open" indefinitely. Rows are positions from the shared trade ledger (one open position per ticker at a time — a name that stays a candidate for several days is one position, not several). The weekly/monthly P&L PDFs read the same ledger. History starts when setup logging began (May 2026) — this is a live forward paper-test, not a historical backtest.

No FM Inspired position history yet.

Positions accumulate after each daily run that detects candidates for this strategy (ledger built by npm run finalize).

How we measure performance — click to expand

The numbers on this dashboard come from a deterministic walk through SignalsHistory.csv, the audit log we append to on every run. Below is exactly how each metric is computed so you can decide what weight to give it.

What counts as a signal

  • Entry: the first day a ticker enters a Buy or Sell streak (verdict on a given horizon).
  • Entry price: the most recent settled daily close at the time the signal fired — not the intraday live tick we displayed on the dashboard. Stocks/ETFs/commodities use the prior session's Yahoo close; crypto uses the prior UTC daily close (CoinGecko's history.at(-2)). Both /swing.html and this page now use the same basis (BT-17, 2026-05-28): finalize.js writes settled_close from fetch_prices.js into SignalsHistory.csv, and compute_indicators.js reads history.at(-1). Using the live tick had a small upward bias on win rate (you would tend to enter near intraday lows but exit on EOD closes); removing it makes the two pages agree on the same trade.
  • Forward walk: we scan settled daily closes after the entry day until something resolves the trade.

What counts as an exit

  • TP1 Hit: any forward bar closes at or above TP1 (for Buy) or at or below TP1 (for Sell). TP1 is treated as a full exit — TP2 is not separately tested here. This keeps the Performance tab and the swing-performance tab consistent on what a "win" means for the same trade.
  • Stopped: any forward bar closes at or below the original stop (for Buy) or at or above it (for Sell). For strategies with a trailing stop, this is the breach of the original below-entry stop — exits on a ratcheted-up stop above entry get the "Trailed" label below.
  • Trailed: (strategies with trailing stops only — e.g. FM Inspired) the active stop ratcheted ABOVE entry as the trade moved up, then a forward bar breached it. Booked as a winning exit because by construction the stop has cleared the entry price.
  • Time-stop: 15 trading days have elapsed since entry with neither TP1 nor stop hit. The trade is force-exited at that bar's close. This catches level-less trades (universe candidates without a watchlist TP/stop) and slow-moving signals that would otherwise sit indefinitely in "Open."
  • Exited: the verdict changes (e.g. Buy → Hold) before TP1 or stop is touched. We book the exit at the first non-streak day's close, since that is the earliest day you could have known to exit. Exited trades are excluded from the win-rate denominator.
  • Open: still in a Buy/Sell streak with fewer than 15 forward bars accumulated. Return is shown for context but excluded from the win-rate denominator.

Exit price

When TP1 or stop is hit, the exit is booked at the breaching bar's close, not at the TP1/stop level itself. Booking at the level always favours the win column (the bar that breaches typically closes past it). Using the bar's close removes that one-sided bias and reflects what you would actually realise.

A slippage haircut is then applied to every closed exit. The magnitude is asset-class-aware: 50 bps for crypto (mid of major-exchange retail spot — Coinbase ~149 bps round-trip, Kraken ~52 bps maker / 80 bps taker; single-side ~50 bps is a defensible "what a careful retail trader pays"), and 10 bps for stocks / ETFs / commodities (commission-free US equities with minimal spread). Buy exits get slightly less, Sell exits pay slightly more. Open positions are mark-to-market and not slipped. The knob keeps a "+0.1%" trade from being read as a win when it would actually be a wash after costs — and the per-class calibration prevents crypto win-rates from systematically overstating by ~140 bps per trade compared to equities.

What about "Hold" verdicts?

Hold signals are not tracked in the win-rate table. If the system says Hold and the price subsequently falls 50%, no penalty appears anywhere on this page. Holds are deliberately measurement-free — they are the system's default state ("no opinion either way"), not an active position to evaluate. If you want to assess Hold performance, look at the raw per-ticker price column on the dashboard, not the win-rate metric here. This is a known accountability gap; the alternative (treating Hold as a continuous short or long) introduces its own distortions, so the current honest framing is "we only score directional calls."

Sample-size flag

Months and tickers with fewer than 5 closed signals are dimmed and tagged "n=<5". A 1-signal ticker showing 100% win rate is noise; treat it that way.

Analyst direction-correctness

Per-firm "% correct" only counts calls made after we started recording prices (2026-05-05). Calls older than that have their "Price at Call" backfilled to the first day we ever observed — turning the metric into a window-return rather than analyst skill. The per-call table still shows every call we tracked, but the firm summary is restricted to the post-tracking window so the percentage is honest.

Swing setup scoring (used on /swing.html)

Six signals, one point each — the same set for watchlist and halal-universe tickers:

  1. Uptrend — EMA50 > EMA200 and the EMA200 is rising over ~1 month (skipped if < 200 bars of history are available).
  2. RSI pullback — RSI(14) < 48 (the zone where uptrends tend to find support; below 25 is vetoed as a falling knife).
  3. EMA50 support — price within ±3% of the 50-day EMA, with support holding.
  4. MACD improving — histogram rising 2 bars from a recently negative reading.
  5. Volume healthy — the pullback is on contracting volume, or the latest up-day came on >1.2× average volume.
  6. Relative strength — the ticker's 3-month return beats the SPUS (halal S&P 500) benchmark.

A ticker surfaces as a candidate when it fires at least 60% of its available signals (minimum 3) and is not vetoed. In buy zone (price inside the watchlist 1M zone) and reversal confirmed (an up-close that reclaims the EMA50) are shown as context but do not add to the score. Veto: if RSI > 70 OR Bollinger %B > 85, the row is dropped regardless of score — overbought is overbought, not a buy.

What this isn't

Forward testing & position size (since 2026-06-10)

Every strategy sleeve runs as a funded forward paper-test: a model account of $30,000 initial + $1,000 added on the 1st of each month, allocated 45% Core DCA / 20% All-Weather / 15% Quality / 10% Momentum / 5% Trend / 5% Swing. Core DCA contributions buy the 8 halal ETFs immediately, pace-weighted (Accumulate 1.5× / Normal 1× / Ease 0.5×), and are recorded as real-dollar lots that never sell. Other sleeves size positions as pool capital ÷ open positions (the per-signal tables still use a flat $1,000-per-position convention for comparability). This is not a historical backtest — signal history only begins May 2026, so each strategy must earn its track record in real time, with settled-close entries and a slippage haircut, before real capital follows it.

How verdicts are made (since 2026-06-10)

Daily 1M Buy/Hold/Sell verdicts are mechanical: trade levels are computed each morning from price structure (an ATR-sized band around the 50-day EMA, a pivot-low/ATR stop, weekly pivot-high targets), and the verdict comes from trend × zone location × market regime × risk guards (earnings within 14 days, hard negative analyst-revision shifts, falling-knife and overbought vetoes). A Buy can come from a pullback into the zone or a breakout close above the prior 20-day high; a Sell needs persistence — a settled close at least 1% below the stop, or two consecutive settled closes below both moving averages — so a single bad close can't whipsaw the call. The AI may only downgrade a verdict for a nameable news risk — never upgrade. The 12M column is a DCA pace label (Accumulate / Normal / Ease), set by how deep the asset sits in its own drawdown history — a long-term accumulation pace, not a trade call. All positions across every strategy sleeve resolve in one shared trade ledger, so this page, the swing page, the portfolio page and the P&L reports cannot disagree about the same trade. Full plain-English definitions live in the glossary.

  • Not advice. These numbers describe how the dashboard's own signals played out, not how a real portfolio would perform. Fees and taxes are not modelled; slippage uses the fixed haircut above, and the funded model's per-position sizing is a stated approximation.
  • Not parameter-optimised. The thresholds (RSI 48, ±3% EMA50, 3-month relative strength, big-move %, stop/TP levels) are set once and not tuned against historical data. There is no in-sample / out-of-sample split.
  • Halal-universe survivorship. The halal universe is a curated list (a few hundred names drawn from the official holdings of major halal ETFs, re-screened quarterly). Tickers that were once in but later failed Sharia screening are not present, so performance numbers on universe tickers are slightly biased upward by construction.
  • RSI flat-period quirk. When 14 consecutive sessions have zero net movement (rare, but it happens on sukuk ETFs), this dashboard returns RSI = 50 rather than the canonical 100. Cross-checking against TradingView/Yahoo on such days will diverge.