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.
No swing setups detected today in FM Inspired (Strong-uptrend pullback + intraday divergence).
Setups appear when this strategy's rules align. Check back tomorrow.
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:
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.
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.
New to RSI, MACD, EMA or Bollinger Bands? Each term is defined plainly in the Glossary →
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.
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.
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.
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.
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.
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.
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.
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.
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).
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).
| Date | Ticker | Score | Entry | TP1 | Stop | Outcome | Return | Bars |
|---|---|---|---|---|---|---|---|---|
| 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).
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.
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.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.
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."
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.
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.
Six signals, one point each — the same set for watchlist and halal-universe tickers:
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.
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.
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.