Everything that backs The Board, on one page.
The evidence, the methodology, the full coverage board with the rules that failed, the transparency policy, the academy and the FAQ — nothing moved behind a menu, everything on this page.
One engine, a different strategy for every market structure.
None of them execute orders. Each strategy analyzes, sizes with and , and passes through the same risk gate before it becomes a Deltalyn signal.
TJL — Trend Join Long
Looks for a stock breaking above yesterday's high while its bigger trend is already up and more shares than usual are trading.
Technical detail
Intraday stock breakout: price above the prior high and above the premarket high, with confirmed daily and weekly trend and a minimum relative volume. Runs only during NY market hours.
Crypto Donchian 4H
Watches Bitcoin and Ether around the clock for three chart patterns, and only flags a trade when the possible gain is well above the possible loss.
Technical detail
BTC/ETH, 24/7. Three modes: reversal at the channel edge with candle confirmation, breakout with volume, or trend pullback to the EMA20. Requires a minimum risk:reward ratio to fire.
Leveraged rotation
Decides when 3× leveraged ETFs are worth holding by checking the calmer index underneath them, and warns when a fund stops tracking it.
Technical detail
TQQQ, SOXL, SPXL vs. their index. Regime is measured on the underlying (trend + volatility), not the leveraged ETF. Includes a daily tracking check to flag leveraged products that have drifted.
Stat-arb pairs
Tracks pairs of assets that usually move together and flags when one has stretched unusually far from the other.
Technical detail
ETH/BTC, COIN/ETH, MSTR/ETH, CRCL/COIN. A mean-reversion complement for when trend isn't in charge. Reported in z-score units, not price.
ETH accumulation
Not a trade signal: shows where Ether's price sits compared with its past big drops, to help plan buying in small steps.
Technical detail
Not a day trade: places the current price inside the historical record of drawdowns >30% and Fibonacci zones of the recent swing. Suggests a tranche size only if you set your capital.
Risk Gate — the gate everything passes through
No signal reaches you without passing these four portfolio checks. A block gets reported, never hidden.
Position size derived from the distance to the stop (ATR), not a hunch.
Correlated position limit — max 2 within the same known cluster.
Circuit breaker: new entries stop at an -8% monthly .
Total portfolio heat in , with an alert above 4.0R.
Fail-closed, not fail-open. If a signal's price fails the sanity check against an independent feed (Coinbase), the signal errors out — a position never gets sized on a bad price. And live sizing uses forward-only inference, never the smoothing used to train the model.
One chart per strategy, drawn from that strategy's own output.
These are static snapshots exported from the engine, not live calls from your browser. Every series carries the file it came from and the limitations the engine itself reports. Where a strategy has not published the measurement a chart would need, the panel stays empty and says why.
Twelve-month momentum, rebalanced monthly, against the same universe equal-weighted.
Each month the engine ranks every eligible name by its 12-1 return, holds the top quartile equal-weighted for one month, and re-ranks. The benchmark is the same eligible universe, equal-weighted, rebalanced on the same schedule — so the gap measures the ranking, not a different basket.
- Period
- 2017-09 → 2026-08
- Months
- 108
- Avg turnover
- 18.8%
- Months skipped
- 12
The curve separates; the risk-adjusted result barely does. A Sharpe edge of +0.01 over 108 months is noise, and it comes with +53.6% annualized volatility against +35.5%. The ranking mostly bought more risk, and this period paid for risk.
- 12-1 momentum, top quartile
- Equal-weight benchmark, same universe
Source
tradingview-mcp · src/core/momentum.js → momentum_scan_2026-09-21_0836ET.json. Curve is the compounding of backtest.monthly[]; the engine's own final multiples are 69× and 21.05×.
Limitations
- Log scale on the vertical axis: equal vertical distance is equal percentage change, not equal dollars.
- No transaction costs, spreads, slippage or taxes. A monthly top-quartile rotation turns over a real fraction of the book every month; at retail commissions + spread that is a meaningful haircut this backtest does not pay.
- Survivorship / selection bias: the universe is whatever has a local CSV today, picked with full hindsight (NVDA, PLTR, MSTR are known winners). Nothing that delisted, blew up or was never added is in here. This inflates both the strategy AND the benchmark, but not necessarily equally.
- Execution is assumed at the rebalance month's closing price for every name simultaneously. Real fills happen at some other price, and a month-end close is one of the least forgiving prints to assume you get.
- Max drawdown is measured on MONTH-END equity only. Intramonth drawdown was worse — always. Treat it as a floor on the pain, not the pain.
- Small universe (tens of names, not the full CRSP cross-section of the original studies): the top quartile is 4-5 positions, so results are dominated by idiosyncratic single-name risk rather than by the momentum factor itself. Confidence intervals around the Sharpe are wide.
- Equal-weight, fully invested, always long. No volatility targeting, no regime filter, no stop-loss, no cash sleeve, and no interaction with the portfolio risk gate.
- Crypto legs settle their month on a different calendar day than equities (7-day trading week) and carry structurally higher volatility, which lets them dominate a return-ranked quartile.
- One backtest over one fixed period with one parameter set. No walk-forward parameter selection, no out-of-sample holdout, no multiple-testing correction. Past performance is not predictive.
Formation window 2025-09 -> 2026-08 (most recent month skipped).
18 names cleared the twelve-month history requirement; 1 did not and were dropped before ranking.
- SOXX+88.5%
- SMH+70.6%
- AAPL+24.4%
- QQQ+19.4%
- NVDA+18.3%
- AMZN+18.3%
- SPY+15.1%
- GE+11.6%
- PLTR+2.2%
- TSLA-17.3%
- IREN-20.9%
- SMCI-22.2%
- CRCL-27.9%
- BTCUSD-31.1%
- ETHUSD-40.5%
- COIN-44.3%
- MSTR-58.7%
- LCID-79.6%
- SPCX — no month-end close for 2025-09 — needs 12 months of history before 2026-09 (history starts 2026-06)
Source
tradingview-mcp · src/core/momentum.js → momentum_scan_2026-09-21_0836ET.json, ranking block for formation month 2026-09.
Limitations
- The 12-1 return is measured to the prior month end, skipping the most recent month to avoid short-term reversal. It says nothing about what happens next.
The spread between two legs, in the z-score units the engine actually decides in.
The spread is log(A) − β·log(B), z-scored over a rolling window. The engine only fires outside ±2, and only when the spread's own half-life says it is behaving like a mean-reverting process right now.
- β window
- 90d
- z window
- 60d
- Shown
- 540 of 3502 sessions
This pair's own backtest is negative (-16.54R total over 99 trades). It is shown because the engine measured it, not because it works.
- spread z-score
- entry band ±2σ
- stop band ±3.5σ
Source
tradingview-mcp · src/core/statArb.js. spread = log(A) − β·log(B), β from a rolling OLS of A on B over beta_lookback_days, z-scored over zscore_lookback_days — the engine's own formulas and config, re-run day by day. Every published series is checked against the engine's own scanPair() output for the latest session; a mismatch in β or z drops the pair instead of publishing a drifted curve.
Limitations
- The half-life gate stands in for a full cointegration test (Engle-Granger/ADF). It is enough to refuse a signal, not enough to certify the pair is cointegrated.
- R-multiples are in z-score distance, not dollars — which is why this engine is kept out of the shared trade ledger.
- β is re-estimated every session, so what is charted is not one fixed portfolio; it is the engine's current view of the hedge.
- No borrow cost, financing or short availability is modelled for the short leg.
Where price sits inside the channel the engine is reading right now.
A breakout engine has no equity curve to show here — what it has is a level, a position inside that level, and a reason it is or is not firing.
- Scanned
- 2026-09-25 22:36 UTC
RSI 38.7 turning up from oversold · rejection candle at support (lower wick / green close) · ❌ R:R 1.34 < 1.5 — signal rejected
pullback to EMA but micro-momentum does not confirm the bounce → wait for confirmation · price in the middle of the channel (41% of range) → NO TRADE
The 4H bar history this channel is measured on is not part of the engine's published scan output, so no historical series is drawn. What is shown is the latest scan's channel, to scale.
Source
tradingview-mcp · src/core/cryptoDonchian.js → crypto_donchian_2026-09-25_1836ET.json.
Limitations
- A point-in-time snapshot, not a series: it shows the channel at the last scan and nothing about how price travelled there.
- The channel moves every bar. A position inside it is only meaningful next to the engine's own note on why it did or did not fire.
Every strategy shows its indicators, its odds and its holding time.
Ten years of daily data per asset. Pick a symbol and a setup: the chart draws the indicators the strategy actually reads, marks every historical trigger with how it ended, and reports the with its — not a single flattering number.
Pick one of your favorite stocks. See the real filters run live.
This runs the actual daily breakout, weekly trend, and volume filters from the TJL strategy against real historical data for the symbol you pick — not a mockup.
| Symbol | Status | Daily breakout | Weekly trend | Rel. volume |
|---|---|---|---|---|
| COIN | no pass | ✕ | ✓ | 0.41x |
| CRCL | no pass | ✕ | ✓ | 0.49x |
| MSTR | no pass | ✕ | ✕ | 0.60x |
| NVDA | no pass | ✕ | ✓ | 0.65x |
| NVDL | no pass | ✕ | ✓ | 0.84x |
| QQQ | no pass | ✕ | ✓ | 0.46x |
| SOXL | no pass | ✕ | ✕ | 0.44x |
| SOXX | no pass | ✕ | ✕ | 0.49x |
| SPXL | no pass | ✕ | ✓ | 0.47x |
| SPY | no pass | ✕ | ✓ | 0.36x |
| TQQQ | no pass | ✕ | ✕ | 0.62x |
| TSLA | no pass | ✕ | ✕ | 0.46x |
| TSLL | no pass | ✕ | ✕ | 0.28x |
This runs the two filters that are honestly computable from daily data. The live TJL engine also checks an intraday premarket/today's-high breakout — that leg needs a real-time TradingView connection and isn't part of this historical demo.
How a signal earns the right to be shown.
Most of what this system computes never reaches you. Of 3252 asset-and-setup combinations evaluated across ten years, 2388 were discarded for having no edge that survives its own confidence interval. That filtering is the product.
- 01
Ten years of daily data, held locally
Every asset carries its own OHLCV history — up to 3,653 sessions — stored on disk, not fetched at render time. Assets younger than their IPO carry less, and the system says so instead of padding the sample.
- 02
A setup is a rule, not a feeling
6 entry rules are defined in code: Donchian-20 and Donchian-55 breakouts, two trend-pullback variants, an RSI-60 momentum cross, and the daily filters of the Trend Join Long scanner. Each one is a boolean test on a single bar. If the rule cannot be written down, it is not a setup.
- 03
The trade is simulated without hindsight
Entry is the NEXT bar's open — never the close that triggered it. Stop sits 2×ATR below entry, target at 2R, with a 40-session cap. When one bar touches both stop and target, the stop is assumed to hit first. The assumption always costs the strategy, never flatters it.
- 04
Probability is reported as a range
A 95% Wilson interval accompanies every hit rate. Five wins in eight tries is 62.5% — and also anywhere from 31% to 86%. The interval is what separates a real edge from a small sample that got lucky.
- 05
The grade uses the pessimistic corner
Expectancy is recomputed at the LOW end of that interval. A setup earns an A only when that pessimistic expectancy clears +0.15R on 50+ cases, B at +0.05R on 30+, C above zero. Everything else is D — no demonstrable edge — and is filtered out of the results.
- 06
Everything is conditioned on regime
The same setup is not worth the same with the S&P 500 above or below its 200-day average. Statistics are computed separately for each regime, and a live signal is scored against the regime the market is in today.
- 07
Holding time comes from the data
Every signal carries the distribution of how long past trades took to resolve — 25th percentile, median, 75th. A timeframe is a measured quantity here, not a label picked to sound confident.
Words used on this site
The same plain-English definitions that open when you tap a dotted word anywhere on the site.
- R (risk unit)
- The amount you would lose if the trade hits its stop. Results are counted in R so trades of any size compare on one scale.
- e.g. +2R means you made twice what you risked; −1R means the stop was hit.
- Expectancy (E[R])
- The average result per trade, in R, over every historical trade — winners and losers together. Above zero means the rule made money on average.
- e.g. +0.30R: risking $100 each time averaged about $30 per trade.
- Pessimistic expectancy
- The same average, recomputed with the hit rate at the low end of its 95% range. It is the number we grade on, because it assumes the unlucky case.
- Hit rate
- The share of past trades that reached the profit target before the stop. On its own it says little — size of wins vs. losses matters too.
- 95% confidence interval
- A range the true hit rate very likely sits in. Small samples give wide ranges; we use the Wilson method, which stays honest on small samples.
- e.g. 5 wins out of 8 is 62.5% — but the range is roughly 31% to 86%.
- Z-score
- How far a value sits from its own recent average, measured in standard deviations. Beyond ±2 is unusual.
- e.g. A spread z-score of −2 means the pair is two steps below normal.
- Drawdown
- The drop from a previous high to a later low, in percent. It shows how painful the worst stretch was, not just where it ended.
- CAGR
- Compound annual growth rate — the steady yearly return that would turn the starting value into the ending value.
- Sharpe ratio
- Return per unit of volatility. Higher means a smoother ride for the same gain; around 1 is decent, below 0.5 is bumpy.
- ATR (average true range)
- How much an asset typically moves in a day. Stops are set in ATRs so they fit each asset's normal swings instead of a fixed percent.
- HMM (hidden Markov model)
- A statistical model that estimates whether the market is in a calm or a stormy phase from recent returns. Position size shrinks when it reads stormy.
- Grade A / B / C / D
- A: clear edge even in the pessimistic case, on 50+ trades. B: smaller edge, 30+ trades. C: barely positive. D: no edge we can prove — shown anyway, never hidden.
- n (sample size)
- How many times the rule fired in ten years. More trades means the statistics are more trustworthy.
- Sessions
- Trading days. The median sessions column is how long a typical past trade took to hit its stop or target.
What this does not claim
- A measured historical edge is not a forecast. Every statistic on this site is backward-looking, and the interval around it is wide on purpose.
- No engine places orders, in any account, under any circumstance. Signals are analysis; execution is a human decision.
- Grades describe setups on specific assets over a specific decade. They are not a claim about the next decade, and they are not investment advice.
Every combination we tested, including the ones we threw away.
6 setups against the 542 assets with enough history to grade — 3252 combinations. Grades come from the pessimistic end of a : A ≥ +0.15R with n ≥ 50, B ≥ +0.05R with n ≥ 30, C > 0, D is everything that cannot show an edge. Discards stay on the page — they are the evidence that the filter runs.
New here? How to read this page · 1 min
- 1
This is research, not advice
We test simple, written-down trading rules on ten years of real daily prices and publish every result. We never manage money or place trades — what you do with it is your call. - 2
One row = one rule on one asset
Each of the 3252 rows is a rule (like “buy a 20-day breakout”) replayed on one stock, ETF or coin. Every past trigger is counted, wins and losses. - 3
Read the
- AClear edge, many trades · 326
- BSmaller edge · 327
- CBarely positive · 211
- DNo provable edge · 2388
- 4
Trust the cautious number
Results are in — multiples of what you risk. Trend pullback on GRMN averaged +0.898R, but we grade it on the +0.687R: the result if luck ran against it.
Past results do not predict future ones. Nothing here is investment advice. Dotted words open a plain-English definition — all definitions →
- Evaluated
- 3252
- With an edge
- 864
- Discarded
- 2388
- Grade A
- 326
Stop 2× · target 2R · 40-session cap · updated Sep 21, 2026
The 6 rules, in plain English
Trend pullback
Waits for a stock that is already trending up to dip back toward its recent average, then buys the bounce.
542 assets · A 83 · B 54 · C 43 · D 362
Trend pullback v2 (200-day trend + RSI-2 dip)
A stricter pullback: only when price is above its 200-day average (a long uptrend) and has just had a sharp 2-day dip.
542 assets · A 77 · B 57 · C 32 · D 376
Trend Join Long (daily filters)
The daily part of our stock scanner: a breakout above the prior high, with the daily and weekly trend up and above-average volume.
542 assets · A 17 · B 44 · C 27 · D 454
Donchian 20 breakout
Buys when price closes above its highest point of the last 20 trading days — a short-term breakout.
542 assets · A 56 · B 65 · C 49 · D 372
Donchian 55 breakout
Buys when price closes above its highest point of the last 55 trading days — a slower, bigger breakout.
542 assets · A 41 · B 53 · C 22 · D 426
RSI 60 momentum cross
Buys when the RSI momentum gauge climbs back above 60 — the move is gaining strength, not just drifting.
542 assets · A 52 · B 54 · C 38 · D 398
All 3252 results, best first
On a phone, tap a row for every statistic. Grade D rows are dimmed, never removed.
Grade DENAUSDTrend pullbackHit 100.0% · cautious +1.020R
- Trades (n)
- 4
- Hit range (95%)
- 51.0 – 100.0
- Average E[R]
- +2.000R
- Median days held
- 6
Grade DENAUSDTrend pullback v2 (200-day trend + RSI-2 dip)Hit 100.0% · cautious +0.877R
- Trades (n)
- 3
- Hit range (95%)
- 43.9 – 100.0
- Average E[R]
- +2.000R
- Median days held
- 9
Grade AGRMNTrend pullbackHit 64.7% · cautious +0.687R
- Trades (n)
- 173
- Hit range (95%)
- 57.4 – 71.5
- Average E[R]
- +0.898R
- Median days held
- 11
Grade APNRTrend pullbackHit 64.4% · cautious +0.667R
- Trades (n)
- 149
- Hit range (95%)
- 56.5 – 71.7
- Average E[R]
- +0.902R
- Median days held
- 17
Grade DSNDKTrend pullback v2 (200-day trend + RSI-2 dip)Hit 92.3% · cautious +0.643R
- Trades (n)
- 13
- Hit range (95%)
- 66.7 – 98.6
- Average E[R]
- +1.274R
- Median days held
- 25
Grade AMSFTTrend pullbackHit 66.1% · cautious +0.614R
- Trades (n)
- 189
- Hit range (95%)
- 59.1 – 72.5
- Average E[R]
- +0.799R
- Median days held
- 16
Grade ATPLTrend Join Long (daily filters)Hit 64.7% · cautious +0.574R
- Trades (n)
- 85
- Hit range (95%)
- 54.1 – 74.0
- Average E[R]
- +0.883R
- Median days held
- 10
Grade AMSITrend pullbackHit 65.6% · cautious +0.550R
- Trades (n)
- 151
- Hit range (95%)
- 57.7 – 72.7
- Average E[R]
- +0.757R
- Median days held
- 18
Grade ACBOETrend pullback v2 (200-day trend + RSI-2 dip)Hit 64.5% · cautious +0.545R
- Trades (n)
- 121
- Hit range (95%)
- 55.6 – 72.4
- Average E[R]
- +0.786R
- Median days held
- 18
Grade AGOOGLTrend pullbackHit 62.0% · cautious +0.537R
- Trades (n)
- 142
- Hit range (95%)
- 53.8 – 69.5
- Average E[R]
- +0.769R
- Median days held
- 14
| Asset | Setup | |||||||
|---|---|---|---|---|---|---|---|---|
| ENAUSD | Trend pullback | 4 | 100.0% | 51.0 – 100.0 | +2.000R | +1.020R | 6 | D |
| ENAUSD | Trend pullback v2 (200-day trend + RSI-2 dip) | 3 | 100.0% | 43.9 – 100.0 | +2.000R | +0.877R | 9 | D |
| GRMN | Trend pullback | 173 | 64.7% | 57.4 – 71.5 | +0.898R | +0.687R | 11 | A |
| PNR | Trend pullback | 149 | 64.4% | 56.5 – 71.7 | +0.902R | +0.667R | 17 | A |
| SNDK | Trend pullback v2 (200-day trend + RSI-2 dip) | 13 | 92.3% | 66.7 – 98.6 | +1.274R | +0.643R | 25 | D |
| MSFT | Trend pullback | 189 | 66.1% | 59.1 – 72.5 | +0.799R | +0.614R | 16 | A |
| TPL | Trend Join Long (daily filters) | 85 | 64.7% | 54.1 – 74.0 | +0.883R | +0.574R | 10 | A |
| MSI | Trend pullback | 151 | 65.6% | 57.7 – 72.7 | +0.757R | +0.550R | 18 | A |
| CBOE | Trend pullback v2 (200-day trend + RSI-2 dip) | 121 | 64.5% | 55.6 – 72.4 | +0.786R | +0.545R | 18 | A |
| GOOGL | Trend pullback | 142 | 62.0% | 53.8 – 69.5 | +0.769R | +0.537R | 14 | A |
Read the discarded SPY rows. Donchian 55 breakout on SPY has a positive average expectancy of +0.150R — the number most services would print. Its pessimistic expectancy is −0.015R, so the edge does not survive its own interval. Trend pullback fails the same way: +0.069R on average, −0.133R at the pessimistic corner. Both are graded D. That gap between the average and the pessimistic corner is the entire reason this table exists.
Covered but not graded: CRCL (325 sessions), CRWV (371 sessions), FDXF (80 sessions), HONA (67 sessions), HYPEUSD (229 sessions), Q (225 sessions), SPCX (68 sessions), USELESSUSD (398 sessions) — below the minimum history required for the statistics to mean anything. We would rather say so than grade a short sample.
Most signal services publish a win rate. Few show the ledger.
Every signal that passes TJL, Donchian, or Leveraged Rotation gets logged the moment it fires — with its entry, stop, target, and context — and resolves forward against real prices. We don't edit the record after the fact.
"Every signal writes to the ledger the moment it fires — winning or losing, before we know which. You're not looking at a hand-picked track record. You're looking at the ledger."
The numbers we do show today (win rate, expectancy in R) come from backtests on historical data, explicitly labeled as backtest. They are not a live track record — and we won't pretend they are.
Quant trading explained in plain English, cards face up.
Every week, one quant concept explained simply — with real data from an engine that publishes its signals before the outcome is known. Education, never advice.
- One concept a week, no jargon
Survivorship bias, drawdown, the R unit… explained like you're 15, with one real number from the Deltalyn engine in every issue.
- Verifiable data, not screenshots
Everything we cite comes from a public board: 550 assets covered and 3,252 rule × asset combinations evaluated — including the 2,388 that failed.
- Honesty first
Every signal from the Deltalyn engine is published to a public ledger before the outcome is known. Every issue includes where the concept breaks.
Behind the newsletter: the Deltalyn engine, with public backtests over years of real daily prices and a timestamped signal ledger, running in public since September 14, 2026.
Free, one email a week. Nothing to buy.
Deltalyn Academy is an educational publication. It is not investment advice. Backtest results are hypothetical and do not guarantee future performance. No engine executes orders.
What any skeptical trader would ask.
What's your win rate?+
We have zero resolved live trades — on purpose, because we just launched. You can watch the ledger fill in in real time. Backtested expectancy per engine is published, always labeled as historical, never as a promise.
Do you execute trades for me?+
No. We're analysis only. You keep full control and execute trades from your own broker.
Is this financial advice?+
No — Deltalyn provides quantitative research and signals for informational purposes. For personalized advice, consult a licensed financial advisor.
Why trust a service with no track record?+
You shouldn't have to take our word for it — every signal, win or lose, gets published to the ledger as soon as it resolves.
Do you need access to my broker or my data?+
We never ask for broker credentials or trading permissions. There's no account linking or fund custody.
Can I cancel anytime?+
Yes, monthly, no lock-in. Cancel from your account in one click the day billing activates.
What happens if the market regime changes and the models stop working?+
Every engine has a fail-safe: regime filters, tracking-error checks, and the correlation gate suppress the signal instead of forcing a bad trade.
Are you registered investment advisors?+
No — we're an informational research tool. We're not registered as investment advisors, and nothing here is a recommendation to buy or sell any asset.