Backtests by symbol and feature
50 pages. Each takes one symbol and one feature from the research catalogue, runs the catalogue’s direction at the feature’s 10th, 25th, 50th, 75th and 90th percentile on that symbol, 2023-09-30 to 2026-09-30, the last 30 percent held out, with the fills and the spread a demo fleet measured. Nothing here is advice; most rules land on “no edge shown”, and that is the point.
DJI30
- d1_rsi long · p50 threshold 57.224: -81.4 R over 751 out-of-sample trades, no edge shown
- h1_roc_20_atr long · p50 threshold 0.3647: -104.6 R over 732 out-of-sample trades, active, net negative
- m5_gap_atr long · p50 threshold 0: -215.0 R over 1260 out-of-sample trades, active, net negative
- price_vs_50d_high_atr long · p50 threshold -37.615: -82.9 R over 847 out-of-sample trades, no edge shown
- session_volume_ratio_z_20d long · p50 threshold -0.2126: -115.1 R over 605 out-of-sample trades, active, net negative
- x_brent_momentum_20 long · p50 threshold 0: -308.2 R over 1693 out-of-sample trades, active, net negative
- x_brent_rsi long · p50 threshold 50.066: -175.4 R over 1186 out-of-sample trades, active, net negative
- x_brent_trend long · p50 threshold 1: -63.5 R over 910 out-of-sample trades, no edge shown
- x_brent_vs_ema50 long · p50 threshold 0.04512: -129.5 R over 1043 out-of-sample trades, active, net negative
- x_eurusd_vs_ema50 long · p50 threshold 0.03829: -141.9 R over 1173 out-of-sample trades, active, net negative
- x_usdjpy_rsi long · p50 threshold 51.247: -140.8 R over 1158 out-of-sample trades, active, net negative
EURJPY
- momentum_3_atr long · p50 threshold 0.03665: -237.0 R over 939 out-of-sample trades, active, net negative
- upper_wick_ratio long · p50 threshold 0.2157: -259.6 R over 917 out-of-sample trades, active, net negative
GOLD
- d1_adx long · p50 threshold 26.983: -1.5 R over 707 out-of-sample trades, no edge shown
- d1_price_vs_ema20_atr long · p50 threshold 13.027: -16.7 R over 530 out-of-sample trades, no edge shown
- d1_price_vs_ema50_atr long · p50 threshold 33.803: -33.9 R over 556 out-of-sample trades, no edge shown
- d1_rsi long · p50 threshold 55.842: +7.2 R over 458 out-of-sample trades, net positive, not distinguishable from chance
- d1_trend_ema20_vs_ema50 long · p10 threshold 0: -59.3 R over 756 out-of-sample trades, no edge shown
- h1_trend_ema20_vs_ema50 long · p10 threshold 0: -73.2 R over 739 out-of-sample trades, no edge shown
- h4_bb_pct_b long · p50 threshold 0.5938: -54.4 R over 651 out-of-sample trades, no edge shown
- h4_ema20_slope long · p50 threshold 25.994: -41.5 R over 676 out-of-sample trades, no edge shown
- h4_momentum_atr long · p50 threshold 0.3392: -45.3 R over 635 out-of-sample trades, no edge shown
- h4_rsi long · p50 threshold 53.526: -25.8 R over 612 out-of-sample trades, no edge shown
- h4_trend_ema20_vs_ema50 long · p10 threshold 0: -70.7 R over 705 out-of-sample trades, no edge shown
- macd_histogram long · p50 threshold -0.01282: -113.4 R over 1086 out-of-sample trades, active, net negative
- macd_histogram_pct_60d long · p50 threshold 0.4992: -118.8 R over 1094 out-of-sample trades, active, net negative
- momentum_3_atr long · p50 threshold 0.03248: -169.3 R over 1178 out-of-sample trades, active, net negative
- momentum_5_pips long · p50 threshold 0.9: -158.7 R over 1156 out-of-sample trades, active, net negative
- price_vs_asian_mid long · p50 threshold 0.1103: -62.5 R over 815 out-of-sample trades, no edge shown
- session_atr_z long · p50 threshold -0.1529: -104.1 R over 918 out-of-sample trades, active, net negative
- stoch_k long · p50 threshold 53.899: -147.8 R over 1128 out-of-sample trades, active, net negative
- x_dji30_return_corr long · p50 threshold 0.1527: -35.3 R over 516 out-of-sample trades, no edge shown
- x_silver_rsi long · p50 threshold 50.952: -136.1 R over 1086 out-of-sample trades, active, net negative
- x_usdjpy_atr_z long · p50 threshold -0.05177: -137.9 R over 1174 out-of-sample trades, active, net negative
US100
- price_above_ema20 long · p10 threshold 0: -108.2 R over 1247 out-of-sample trades, no edge shown
- price_above_ema50 long · p10 threshold 0: -57.0 R over 1064 out-of-sample trades, no edge shown
- price_vs_20d_low_atr long · p50 threshold 2.315: -77.5 R over 1047 out-of-sample trades, no edge shown
- price_vs_ema20_atr long · p50 threshold 0.1533: -67.8 R over 1003 out-of-sample trades, no edge shown
- roc_20_atr_z_60d long · p50 threshold -0.01235: -113.6 R over 1262 out-of-sample trades, no edge shown
- stoch_k long · p50 threshold 55.766: -146.1 R over 1286 out-of-sample trades, active, net negative
- trend_ema20_vs_ema50 long · p10 threshold 0: -77.7 R over 1331 out-of-sample trades, no edge shown
- volume_ratio_pct_20d long · p50 threshold 0.5003: -120.5 R over 1154 out-of-sample trades, active, net negative
- vwap_distance long · p50 threshold 0.39: -51.6 R over 880 out-of-sample trades, no edge shown
- x_gold_momentum_20 long · p50 threshold 0.1929: -45.6 R over 731 out-of-sample trades, no edge shown
- x_sp500_rsi long · p50 threshold 51.321: -91.3 R over 1270 out-of-sample trades, no edge shown
- x_sp500_trend long · p10 threshold 0: -136.1 R over 1470 out-of-sample trades, active, net negative
USDJPY
- d1_price_vs_ema20_atr long · p50 threshold 9.191: +41.6 R over 862 out-of-sample trades, net positive, not distinguishable from chance
- ema50_slope long · p50 threshold 0.3665: +20.3 R over 773 out-of-sample trades, net positive, not distinguishable from chance
- x_dji30_return_corr long · p50 threshold -0.0246: +31.6 R over 467 out-of-sample trades, net positive, not distinguishable from chance
XAUEUR
- d1_adx long · p50 threshold 26.971: -89.6 R over 717 out-of-sample trades, no edge shown
Historical simulation on broker M5 data with a measured fill offset, a measured spread factor, swap and a one-minute confirmation model. Past results do not predict future results. This is a research tool, not investment advice. Built 2026-11-04.