Famous strategy

Golden cross

The 50-day average crosses up through the 200-day. The oldest signal there is. Run it below, free, no signup.

Our engine’s read

SHADOW

Our engine's read: promising, not proven. Worth watching on paper before you trust it with anything.

The engine’s own wordsinsufficient real fills (n=21 < 80) — go shadow to gather live data

  1. Kept per trade+2.6%After paying the real spread going in and coming out, the average trade kept +2.6%.
  2. On unseen data+4.1%On the stretch of history the rules never saw it made +4.1% — better than the +1.4% it managed on the tuned stretch. That's the good kind of surprise.
  3. Trades graded2121 trades fired — enough to see a shape, not enough to trust. Sample size alone keeps this out of LIVE.

That is our engine’s read of one stretch of history — our opinion, not a verdict on you and not advice. Run it yourself below and check every number.

The benchNo signup · a few seconds

The 50-day average crosses up through the 200-day. The oldest signal there is.

The rule we’ll testThe day the 50-day average crosses above the 200-day, buy the shares. Hold 20 days.

Simulation for learning. Paper money, real data, not investment advice.

What the engine tests

The rule, condition by condition, exactly as the engine reads it. Both have to be true on the same day for a trade to fire.

  • The 50-day average crosses above the 200-day average
  • Buy the shares.
  • Hold 20 trading days, then close.

The exact list of stocks

NVDA · AMD · AVGO · TSM · MU · MSFT · GOOGL · AMZN · META · AAPL · ORCL · CRWD · NOW · PLTR · NFLX · TSLA

16 liquid US names, every one with real option chains, over 2024-02-12 to 2026-05-20 on 1 day bars. That window is where real option fills exist — outside it there is nothing honest to grade, so we do not pretend there is.

How it is graded

  • It never sees tomorrow. A signal on any day reads only that day and the days before it, and the trade is entered at the NEXT day’s open.
  • It buys the ask and sells the bid. Never the midpoint — nobody fills you there. Contracts too thin to trade are skipped, not imagined into the results.
  • Half the history is held back. The rules are graded on the stretch they were not tuned on, and you see both numbers side by side.
  • Take-profit is left out of the score. A profit target flatters a curve without earning it, so our grade leaves it out. You can still trade one.

The receipt

Where those numbers came from. Anything we did not measure is simply not listed — a blank is not a zero.

  • Graded window2024-03-14 → 2026-05-20
  • Stocks graded16
  • Trades graded21
  • Best stop (take-profit excluded)none
  • Signals we could fill honestly100.0%
  • Data planerig
  • Engine version54e646123378
  • Graded on2026-07-30

The engine’s own notes

  • A–H realized-exit metrics (ev_pct/net_ev_pct, win_rate, avg_win/loss, payoff, worst, std, variance_pct2, longest_losing_streak, max_drawdown, gave_it_back, gross/cost_drag) are ALL pinned to the single walk-forward bracket 'none' (best non-TP bracket on the IS half). net_ev_pct == ev_pct by construction; gross is read on this SAME bracket so cost_drag_pct ≥ 0. This is the metrics' own full-sample basis; walk_forward.wf_ev (OOS-slice verdict number) is a separate labeled field and is NOT overwritten.
  • variance_pct2 is std_pct**2 → unit is PERCENT-SQUARED (not a decimal variance). risk_adjusted_ev (ev_pct/std_pct) is unit-consistent.
  • equity_points is the cumulative return-points series on the SAME date-ordered wf-bracket net vector that produces max_drawdown — the chart's underwater band-bottom EQUALS max_drawdown by construction (one basis, not the scorecard's full-sample equity_curve).
  • exit_grid is the single-run bracket sweep; hold-grid and structure-grid are multi-run sweeps triggered separately by the report/UI (not computed here).
  • E1–E7 report analytics (per_symbol, outlier_dependence, mae_mfe, timing, calendar, drawdown_anatomy, ratios) are ALL computed on the walk-forward bracket 'none' net pnl vector / its equity series — the SAME basis as ev_pct/win_rate/max_drawdown, so no number spans a different bracket world. Aggregates are PERCENT; shares/ratios/r-multiples unitless.
  • timing.time_to_peak_days is null: the per-trade PEAK DATE is not retained (only peak_pct magnitude), so entry→peak days is not derivable without a per-bar path timestamp — the hold-days curve is the honest substitute (Fix: not fabricated).
  • ratios.r_multiples null: wf bracket 'none' has no stop → R undefined (R = SL30→30% / SL50→50% stop distance).
  • pnl_correlation null: fewer than 3 overlapping trading dates with the book (or a constant pnl series) — too thin to correlate.
  • gross_ev_pct / cost_drag_pct null: not every rec carries a mid_brackets dict (equities / credit have no bid-ask width) — no clean gross-vs-net split.
  • stop_slippage_pct null: the deployable (walk-forward) bracket is not a stop, so there is no stop to gap through (A2 applies only to SL brackets).
  • skip ledger — 21 signals = 21 fills + 0 skips (no_volume=0, missing_quote=0, cap=0, other=0, error=0). Conservation HOLDS (A5 — no signal vanishes silently).
  • entry-time sensitivity (A6) null: 10:35 comparison unavailable — the signal reads the same bar's close (or a close-derived operand), so pricing an entry at that bar's 10:35 would be look-ahead (unexecutable). The alt is withheld rather than presented as achievable (Fix 2). Use an open-based / prior-bar signal, or entry_at='intraday_1035', to compare.
  • entry_iv_rank null (C3): backtest chains carry no historical per-contract IV → no entry-day IV percentile on historical fills; live reads carry iv_rank once 60 daily observations accumulate; historical backtests remain null (no IV history). accumulating live-only (count via the live desk).
  • entry_time_match null: needs intraday option quotes to confirm the fill is reachable at the signal's intraday timestamp — DATA-GATED (the Databento item).
  • path-shape flags / spread / gross-vs-net are degenerate for non-option runs (single-point daily path, no bid/ask width).
  • monte_carlo (B1): 1000 sims × 3 methods (order_shuffle / trade_drop w.p.0.1 / slippage_perturb ±50% of the modeled spread), seed=424242 (+1/+2 for the drop/slippage streams). On the date-ordered wf-bracket net vector — the SAME basis as max_drawdown. EV is order-invariant so ev_p50 tracks the point estimate while dd/ruin capture sequencing luck; ruin_prob = P(cum path ever <= -100.0 return points). The pooled EV band here is dominated by the SEQUENCING null (order_shuffle is EV-invariant, so its EV never moves and pins ev_p50 to the point estimate); EV *uncertainty* is the bootstrap CI's job (ev_ci95, B5), NOT this band.
  • ev_ci95 / wr_ci95 (B5): 2000-resample percentile bootstrap (2.5/97.5), seed=271828, on the wf-bracket per-trade vector. PERCENT units. The win-rate CI agrees with the binomial Wald approximation p±1.96·sqrt(p(1-p)/n) to within a few points (percentile-bootstrap vs normal-approx).
  • random_baseline (B3): UNDERLYING-PROXY baseline: 200 random-entry twins matched to the real per-symbol entry counts, scored on the UNDERLYING equity hold-return (sign=+long, exit='fixed', hold=20d, wf bracket 'none', modeled round-trip cost 0.0%). pctile=45.5 = MID-RANK percentile of the real strategy's OWN underlying-proxy EV (2.96%) within the twin EVs (ties split evenly; an all-tied pure-noise strategy reads 50, not 0). This isolates ENTRY-TIMING/SELECTION signal on the underlying — NOT the option EV (real_option_wf_ev=2.57%), which is larger-magnitude and not directly comparable to this equity-move distribution.
  • benchmark (B6): SPY buy-hold 51.98% over 2024-02-12..2026-05-20 (enter at first-bar OPEN, exit at last-bar CLOSE), risk-free≈0. This is a TOTAL buy-hold return over the whole window; the strategy's ev_pct is a PER-TRADE average — the two are different bases and are shown side by side, not differenced into a single 'alpha'.
  • regime_report (C1): regime_report: per-regime EV/WR on the walk-forward bracket (none) per-trade vector; cells keyed by each trade's OWN-underlying trend×vol regime at entry (backward-looking; no look-ahead). current_regime is the MARKET (SPY) regime as of the last bar — a context stamp on a different basis than the per-trade cells. Trend: close vs sma200 + sma50 slope; vol: 20-day realized-vol trailing-252 percentile (>=0.5 = high). WEAK EVIDENCE — cell(s) ['chop/high', 'chop/low', 'up/high', 'up/low'] have n<20: a single outlier can flip that regime's EV; do not read a thin cell as a real per-regime edge.
  • event_exposure (C2): event_exposure: a trade is 'held_through_event' when an event falls in (entry, exit] — FOMC is market-wide ('*'); earnings are per-symbol. ev_through / ev_clear are PERCENT EV on the walk-forward bracket (none). Calendar carries 24 event(s) (24 FOMC seeded, 0 earnings). Earnings feed NOT yet wired (null-until-data) — the pipeline exists and populates when an earnings source lands; today this measures FOMC exposure only. Small-n caveat: with few through-event trades a single outlier can dominate ev_through — weak evidence until n grows.
  • greeks_exposure (C4): greeks_exposure null: greeks are modeled for single-leg option runs only (asset_class='equity' has no single-contract path). MODELED.
  • concentration (D2): CONCENTRATION WARNING — 'semis' holds 63% of total POSITIVE P&L. Your diversification is TIMING, not independence (cl scar): a low return-correlation across strategies can just be different entry timing on the same theme — and a count-share check ALONE can miss a theme that carries almost all the P&L while being a minority of trades. Kill-test by removing 'semis' before trusting the book's spread. Count-share is by TRADE COUNT (exposure), bounded [0,1]; P&L-share is a theme's share of TOTAL POSITIVE P&L (a big-loser theme elsewhere can never mask it) — null when no theme has positive P&L.
  • capacity (D3): CAPACITY (MODELED): base 1 share/trade sized k× against REAL daily share volume; fillable at k iff order <= participation_cap=10% of that day's volume. Baseline 21 fills with real volume (0 lacked volume, excluded). fills 25× the base 1-share position (the LARGEST size tested) while still filling >=80% of trades — the grid never found a size where fillability fell below threshold, so this is a LOWER BOUND, not the true ceiling; at least ~$7,028 deployed per trade at that size (MODELED, via avg_premium, concurrency-excluded) — grid never found the ceiling. participation_cap is a MODELED constant, not a measured market-impact curve; rank capacity comparatively, not as a hard dollar limit.
  • slippage_stress (E9) not applicable: no modeled option spread on this run (equities/shares pay $0 spread) — the three stress EVs coincide.
  • sizing (E10): HALF-Kelly suggestion 19.8% of bankroll (full f*=0.3963, capped at 25%), from wf-bracket win-rate 66.7% / payoff 1.23×. Kelly assumes these are the TRUE odds; they are sample estimates. 3 loud warnings attached — this is a ceiling to consider, not advice.
  • data_quality (E11): DATA-QUALITY 63/100 (Moderate) — a TRANSPARENCY summary, NOT a lie detector or a quality grade. Equal-weight mean of fillability/sample: spread_realism = share of fills on REAL option NBBO (the rest priced on the optimistic synthetic 5% spread); fillability = % of fired signals that filled on real chains; sample = n vs the 80-fill verdict floor. A high score means the numbers are mostly real-measured on a healthy sample; it says nothing about whether the edge is good.
  • rolling_edge (E12): rolling_edge: trailing-21-trade EV, 1 overlapping windows on the date-ordered wf-bracket net vector (the SAME basis as ev_pct). n < requested window, so this is one expanding window (== overall EV).
  • beta_spy (E13): beta_spy = 1.228 (r²=0.138, n=21): the OLS slope of each trade's wf-bracket P&L on the SPY move over that trade's OWN holding window (entry→exit close). beta≈1 tracks the market; ~0 is market-neutral; >1 amplifies it. This is NOT a daily mark-to-market beta (options carry no daily marks here) — it measures OUTCOME co-movement over the hold, not path co-movement.
  • This universe is stocks you named, and none are delisted/historical-only. If real-world peers failed or were delisted in this window, they are absent — so results may be optimistic (survivorship bias). You CAN add delisted names (e.g. SIVB, FRC) to test against real failures.
  • DATA-QUALITY 63/100 (Moderate) — a TRANSPARENCY summary, NOT a lie detector or a quality grade. Equal-weight mean of fillability/sample: spread_realism = share of fills on REAL option NBBO (the rest priced on the optimistic synthetic 5% spread); fillability = % of fired signals that filled on real chains; sample = n vs the 80-fill verdict floor. A high score means the numbers are mostly real-measured on a healthy sample; it says nothing about whether the edge is good.
  • inconclusive — moderate sample (21 fills), no multi-cycle OOS evidence yet, metric +3.1% from the SHADOW_EV (shelf bar).
  • Equity fills — real daily marks, no option-spread model; confidence reflects sample size + out-of-sample consistency only.
  • SPY buy-hold 51.98% over 2024-02-12..2026-05-20 (enter at first-bar OPEN, exit at last-bar CLOSE), risk-free≈0. This is a TOTAL buy-hold return over the whole window; the strategy's ev_pct is a PER-TRADE average — the two are different bases and are shown side by side, not differenced into a single 'alpha'.
  • rolling walk-forward too thin: n=21 < 2×min_window(15) — cannot form even one honest train/test cycle. Single-split walk_forward remains the headline.

The first 12 of 21 trades

Per-trade result, after the spread both ways
StockSignalExitResultFill priced on
AAPL2024-06-132024-07-15+9.6%a real close ± 2.5%
AAPL2025-09-152025-10-13+4.4%a real close ± 2.5%
AMD2025-07-162025-08-13+14.0%a real close ± 2.5%
AMZN2025-07-082025-08-05−3.3%a real close ± 2.5%
AMZN2026-05-062026-05-20−3.6%a real close ± 2.5%
AVGO2025-05-152025-06-13+7.0%a real close ± 2.5%
AVGO2026-04-172026-05-15+4.8%a real close ± 2.5%
CRWD2024-11-272024-12-27+1.6%a real close ± 2.5%
GOOGL2025-07-232025-08-20+1.2%a real close ± 2.5%
META2025-06-162025-07-16+0.1%a real close ± 2.5%
MSFT2024-12-112025-01-13−7.1%a real close ± 2.5%
MSFT2025-06-092025-07-09+6.9%a real close ± 2.5%

Simulation for learning. Paper money, real data, not investment advice.

Test another one

  • Buy the dipA strong stock falls hard for a few days. You buy the bounce.
  • RSI oversoldRSI drops under 30 — the textbook says the selling is overdone.
  • Buy new highsA leader pushes to a fresh 52-week high. You buy strength, not weakness.
  • Fade the gap upIt jumps 3% higher at the open on hype. You bet the pop fades.
  • Covered callOwn the stock on a dip and sell a call against it to collect premium.
  • Bull call spreadThe same breakout, but with a capped, defined-risk options trade.

Or see all seven, learn the craft in the lessons, or write your own rule in the builder.