Admin Reference

Crypto Backtest Results

The full methodology and results behind the crypto paper account's entry rule — checked 2026-10-03/04. Same BO15 5-condition rule validated on equities, applied to Robinhood's real tradable-crypto universe (fetched directly from its public API, market cap >= $100M) via yfinance. See Crypto Workflow for how this feeds the live detection cycle.

1
Methodology
Candle-by-candle replay of the archive, not a live-signal sample — every historical 15m breakout matching the full rule counts as a trade.
# entry: all 5 conditions true on the same 15m candle Daily EMA(20) > Daily EMA(50) Price > Daily SMA(200) 4H EMA(20) > 4H EMA(50) # plain UTC-floor 4h blocks 1H RSI(14) < 45 15m close > entire previous 15m candle's high # exit 15m RSI(14) >= 80 # no stop-loss, no time limit, held until target or data ends
Data Sourcing
Daily: 2 years. 1H: ~700 days. 15m: 60 days (yfinance's hard retention limit for that granularity — this is the real ceiling on sample size, not a choice). All three pulled with fixed start/end dates, not a rolling period=Nd window — the first version of this backtest used a rolling window and gave different results on every re-run as "now" shifted; fixed dates made it fully reproducible (confirmed identical across 3 independent re-runs before trusting any number).
Bad-Tick Filtering
Any single trade with |return| > 30% is excluded before scoring, not included and caveated. Thin-liquidity altcoins' intraday yfinance data has occasional one-bar glitches — one early run showed a 15m trade returning +169% in 4 hours, which isn't real price action. 6 trades were excluded this way out of several hundred found.
2
Progression
Three passes, each one catching a real problem with the last.
  • ✓ Pass 1 — 10 major pairs (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, DOT). First signal check: 55 resolved trades, 67.3% win, +1.40% avg, PF 2.87 — comparable to the equities rule, worth expanding.
  • ! Pass 2 — expanded to 93 pairs, rolling download window. Results were wildly inconsistent between runs on identical pairs (0 entries → 7 entries → different numbers again) — not real signal, a data-fetch artifact from the rolling period=60d window shifting on every call.
  • ✓ Pass 3 — fixed dates + bad-tick exclusion. Deterministic and stable across repeated runs against that self-compiled 93-pair list.
  • ✓ Pass 4 — switched to the real source. Pulled Robinhood's actual tradable-crypto list directly from its public nummus.robinhood.com/currency_pairs/ endpoint (no credentials needed) instead of a self-compiled guess: 90 pairs, 88 after excluding 2 stablecoins. Filtered to market cap >= $100M (55 pairs), then cross-checked each against Alpaca's actual GET /v2/assets?asset_class=crypto listing — only 25 of the 55 are tradable there. These are the numbers below.
  • 3
    Headline Results
    55 Robinhood-tradable, market cap >= $100M pairs tested; 31 produced at least one qualifying trade in the 60-day window.
    All 55 pairs combined
    Trades
    216
    Win Rate
    75.0%
    Avg Return
    +3.48%
    Profit Factor
    4.45
    Worst Trade
    -12.66%
    Best Trade
    +28.35%
    25 live-tradable (Alpaca) pairs — this account's actual universe
    Trades
    107
    Win Rate
    69.2%
    Avg Return
    +2.87%
    Profit Factor
    3.73
    Open (unresolved)
    21
    30 signal-only (Robinhood, not Alpaca) pairs — display only, never auto-traded
    Trades
    109
    Win Rate
    80.7%
    Avg Return
    +4.08%
    Profit Factor
    5.20
    Open (unresolved)
    26

    Reported plainly rather than cherry-picked: the 30 pairs Alpaca doesn't carry actually backtest a bit better than the 25 it does (80.7% vs 69.2% win rate, +4.08% vs +2.87% avg). That's worth knowing if you're deciding whether to act on a signal-only pair's buy/sell flag manually on Robinhood — see Trade Crypto for the live condition breakdown on all 55, including a dedicated manual-reference column.

    4
    Per-Pair Results (minimum 3 trades)
    All 31 pairs (of 55 tested) with at least 3 resolved trades, ranked by average return. live trades automatically on Alpaca; everything else is Robinhood-only, signal display only.
    PairTradesWin RateAvg ReturnProfit Factor
    RAY-USD1090.0%+9.55%30.02
    ONDO-USD live366.7%+8.08%13.65
    ENA-USD5100.0%+7.29%∞
    WIF-USD live887.5%+6.87%10.12
    SYRUP-USD4100.0%+6.79%∞
    XLM-USD5100.0%+5.62%∞
    MORPHO-USD580.0%+5.31%33.10
    LTC-USD live4100.0%+5.00%∞
    NEAR-USD475.0%+4.61%6.96
    PYTH-USD683.3%+4.52%14.98
    LDO-USD live666.7%+4.45%4.57
    ZEC-USD1080.0%+4.37%6.28
    UNI-USD live862.5%+4.01%2.34
    ZRX-USD683.3%+3.60%3931.73
    EIGEN-USD3100.0%+3.07%∞
    AAVE-USD live875.0%+3.06%3.66
    WLD-USD887.5%+2.98%2.91
    LINK-USD live1080.0%+2.71%3.90
    SOL-USD live1070.0%+2.30%15.42
    ETH-USD live977.8%+2.19%9.55
    GRAM-USD560.0%+1.62%2.14
    CRV-USD live560.0%+1.38%1.59
    ORCA-USD475.0%+1.30%9.34
    BNB-USD3100.0%+1.15%∞
    VIRTUAL-USD540.0%+1.08%1.32
    BTC-USD live666.7%+0.82%1.83
    XRP-USD live650.0%+0.69%1.74
    PEPE-USD live540.0%-0.51%0.73
    ADA-USD live450.0%-1.05%0.27
    DOGE-USD live333.3%-1.80%0.38
    INJ-USD633.3%-3.04%0.27

    24 more pairs (of 55) had 1-2 trades or none at all in the 60-day window — too few to rank, not shown.

    5
    Why These 25 Pairs
    The live-execution list isn't chosen by backtest ranking at all — it's simply every $100M+ Robinhood pair Alpaca actually supports.
  • ✓ Broker constraint, not a curation choice. 55 pairs clear the $100M market-cap bar; only 25 of those are tradable on Alpaca at all (checked directly against its asset list, not assumed). The other 30 simply can't be auto-traded here regardless of how well they backtest.
  • ! Not the better-performing half. The 25 live pairs actually backtest slightly worse than the 30 signal-only pairs (69.2% vs 80.7% win, +2.87% vs +4.08% avg) — reported plainly, not hidden. If you want the stronger-looking names, several of them (RAY, ENA, SYRUP, XLM, MORPHO, NEAR, PYTH, ZEC) are in the signal-only tier and only tradable manually on Robinhood.
  • ✓ $100M floor still applies to both tiers. Neither list includes the smallest/newest tokens that produced some of the flashiest-looking small-sample numbers in earlier passes.
  • 6
    Caveats & Next Steps
  • ! 60-day window only — yfinance's hard retention limit for 15-minute data. This is a first signal, not a validated long-run edge.
  • ! Backtest ≠ live. This is a candle-by-candle replay against historical data, not a record of trades actually taken. The live account's own trade history (visible on Crypto Account) is the real test for the 25 live pairs; for the 30 signal-only pairs, any real test happens on whatever account you manually trade them from.
  • ✓ Revisit plan: once enough live paper-trade history has accumulated, re-run this exact methodology against the live trade log the same way BO15's equities rule was re-tested against its own real trades (see Workflow).