Research12 min read

Jake Bernstein’s Swing Methods on the Futures in His Weekly Report: 21 Backtests on 29 Markets

Jake Bernstein’s weekly market report walks through 39 futures markets: stock indices, rates, metals, grains, softs, energy, currencies, bitcoin and volatility. His swing-trading methods are taught on exactly these markets, so we tested them there: the same 21 research configurations we built from his swing-trading material, run on daily and weekly bars of 29 of those markets, with futures commissions and slippage instead of stock-trading costs.

The short answer

From 2002-01-02 to 2026-10-09, the 21 configurations opened 140,489 positions on 29 markets, with equal initial notional per position. After illustrative cost rates based on one tick per side and $5 commission per reference contract, three of the 21 finished with a positive mean per position: channel trend, pullback entry, every pullback (W08, weekly), open/close averages, crossover approximation (W17, weekly) and open/close averages, research implementation (W18, weekly). Before costs seven were positive; at double the modelled cost three still are. Pooled over every position, the 21 averaged −0.08% per trade.

None of the 15 daily configurations finished positive (pooled mean −0.10% per position); three of the six weekly ones did (pooled mean +0.11%). This does not establish a weekly-timeframe advantage: among six corresponding daily/weekly implementations, three weekly means are higher and three are lower. Holding periods differ, so these per-position means do not measure time-adjusted efficiency. Of the positive ones, all three are positive in both the 2002–2019 and the 2020–2026 simulation. Bitcoin contributes 36% of W08’s, 98% of W17’s and 56% of W18’s summed equal-notional net returns. These contributions sum position percentage returns, not one-contract dollar profits. Without bitcoin all three stay positive (W08 +0.25%, W17 +0.004%, W18 +0.12% per position), one of them in both date windows (W08). W17’s and W18’s short positions lost money on average; their gains come from long positions, which markets that rose over the period, such as bitcoin, the stock indices and gold, help regardless of timing.

By market, a majority of the configurations with trades finished positive on seven of 29: CME Bitcoin, British pound, Euro FX, DAX, E-mini Nasdaq 100, Copper, Silver. No configuration is recommended. With 21 variants, two timeframes and many markets, some positive averages are expected by chance alone; the tables below describe the simulation, they do not establish an edge.

From the team behind this backtest

Get seasonal patterns that have worked in the past

Testing popular trading ideas against decades of data is what we do every day. Does It Repeat applies it to timing: which weeks of the year a market has historically risen or fallen, how consistently, and whether that pattern still holds up.

Free account includes a screener preview, no credit card. Full access $20/mo at early-adopter pricing, 14-day money-back guarantee, cancel anytime. All statistics are historical; past performance does not guarantee future results.

Which markets, and which prices

The market list is the one in the report’s October 12, 2026 edition, read from its chart titles; we publish the list only, not the commentary. Free, continuous futures histories do not exist for most of these contracts: the usual front-month series jump at every contract roll, and a swing system would read each jump as a price move. We therefore used one price series per market that has no roll gaps, and modelled synthetic positions with equal initial notional.

  • Stock indices use the cash index. The futures track it closely apart from a small, slowly changing carry.
  • Rates, metals, grains, sugar, energy and volatility use exchange-traded funds that hold the futures or the metal. Their prices already include the cost or gain of rolling from one contract to the next, so their daily moves behave like a roll-adjusted futures series, less a small fund fee.
  • Currencies use spot exchange rates, inverted where the future is quoted the other way round (Swiss franc, yen, Canadian dollar, peso). Bitcoin uses the spot price on weekdays only; CME bitcoin futures exist only from December 2017.

The fund series follow the US stock session, not the nearly round-the-clock futures session, so their daily highs, lows and opens differ from the contract’s. Each position receives an illustrative transaction-cost rate: one tick per side plus $5 commission for a reference contract, divided by its estimated entry-date notional. Available futures closes value the ETF reference contracts; the other markets use cash-index or spot closes, and VX uses spot VIX. These approximate values are not observed execution prices. Charges are subtracted after simulating proxy-price fills; integer contract quantities are not modelled.

Australian-dollar prices start on 2020-11-23, and Euro FX prices on 2016-01-11, the dates their smaller tick sizes took effect. Earlier prices are excluded, including from indicator warm-up, so their first simulated trades occur later. The other markets keep their available histories.

Research results
MarketReport symbolPrice series usedSourceFirst tradeMean modelled cost
E-mini S&P 500ES^GSPCYahoo, cash index20023.4 bp
E-mini Nasdaq 100NQ^NDXYahoo, cash index20022.6 bp
30-year T-bondZBTLTYahoo20035.2 bp
10-year T-noteZNIEFYahoo20033.0 bp
GoldGCGLDYahoo20051.9 bp
SilverSISLVYahoo20075.4 bp
PlatinumPLPPLTYahoo20112.8 bp
PalladiumPAPALLYahoo201110.8 bp
CopperHGCPERYahoo20202.9 bp
CornZCCORNYahoo201113.5 bp
SoybeansZSSOYBYahoo20145.6 bp
WheatZWWEATYahoo201410.9 bp
Sugar #11SBCANEYahoo201815.4 bp
Crude oilCLUSOYahoo20073.8 bp
RBOB gasolineRBUGAYahoo20091.6 bp
Natural gasNGUNGYahoo20087.9 bp
Euro FX6EEURUSD=XDukascopy spot, daily20171.2 bp
Swiss franc6SUSDCHF=X (inverted)Dukascopy spot, daily20041.4 bp
Japanese yen6JUSDJPY=X (inverted)Dukascopy spot, daily20041.6 bp
British pound6BGBPUSD=XDukascopy spot, daily20041.9 bp
Canadian dollar6CUSDCAD=X (inverted)Dukascopy spot, daily20041.8 bp
Mexican peso6MUSDMXN=X (inverted)Dukascopy spot, daily20085.0 bp
Australian dollar6AAUDUSD=XDukascopy spot, daily20212.2 bp
New Zealand dollar6NNZDUSD=XDukascopy spot, daily20042.2 bp
CME BitcoinBTCBTC-USDYahoo201532.8 bp
VIX futuresVXVIXYYahoo201261.7 bp
FTSE 100FTSE^FTSEYahoo, cash index20022.2 bp
DAXDAX^GDAXIYahoo, cash index20022.8 bp
Nikkei 225 (CME, USD)NKD^N225Yahoo, cash index20027.2 bp

“Mean modelled cost” is the average round-trip charge across that market’s positions, in basis points of one contract’s value (1 bp = 0.01%). VIX futures are expensive because one tick is worth $50 on a contract of roughly $15,000–20,000.

10 markets have no series without roll gaps and are not tested: lean hogs, live cattle, soybean oil, soybean meal, oats, cocoa, orange juice, cotton, coffee, heating oil. Results cover 29 of the 39 markets.

All 21 configurations

Each synthetic position has the same initial notional; partial exits are weighted fractions of that position. These are normalized percentage returns, not a one-contract dollar account. Means are per position after the illustrative cost rate, so markets and configurations that trade more contribute more. Bitcoin’s contribution uses the sum of those equal-notional net returns. “Mean net excl. bitcoin” drops the bitcoin positions. The reference row, a 50/200-day average crossover, is shown for scale and is not one of the 21.

Research results
ConfigurationPositionsMean netMedian netWin rateProfit factorMean net, double costMean net excl. bitcoin
Channel trend, immediate entryW01 · Daily3,878−0.05%−0.66%47.8%0.96−0.12%−0.08%
Channel trend, pullback entry, every pullbackW02 · Daily13,573−0.04%+0.13%53.3%0.96−0.10%−0.04%
Channel trend, pullback entry, first pullback onlyW03 · Daily3,897−0.10%+0.13%52.9%0.90−0.16%−0.08%
Channel trend, immediate entry, alternative confirmationW04 · Daily4,598−0.10%−0.56%48.5%0.93−0.17%−0.12%
Channel trend, immediate entry, no confirmationW05 · Daily5,619−0.10%−0.66%47.6%0.93−0.17%−0.10%
Channel counter-move approximationW06 · Daily7,736−0.03%+0.03%52.0%0.95−0.09%−0.03%
Channel trend, immediate entryW07 · Weekly634−0.17%−1.65%46.7%0.95−0.22%−0.19%
Channel trend, pullback entry, every pullbackW08 · Weekly2,467+0.38%+0.48%55.8%1.18+0.32%+0.25%
Divergence, oscillator AW09 · Daily1,631−0.32%+0.23%53.3%0.80−0.40%−0.34%
Divergence, oscillator BW10 · Daily1,752−0.17%+0.29%58.3%0.88−0.25%−0.20%
Divergence, oscillator CW11 · Daily2,072−0.19%−0.09%49.5%0.88−0.27%−0.17%
Divergence, oscillator DW12 · Daily1,304−0.18%−0.56%29.2%0.89−0.25%−0.11%
Divergence, first of the four oscillatorsW13 · Daily3,147−0.25%−0.34%42.4%0.83−0.33%−0.22%
Divergence, oscillator AW14 · Weekly349−0.93%−1.27%44.1%0.74−1.03%−1.16%
Open/close averages, crossover approximationW15 · Daily21,469−0.11%−0.41%36.2%0.90−0.17%−0.15%
Open/close averages, research implementationW16 · Daily14,880−0.03%−0.28%41.6%0.97−0.09%−0.07%
Open/close averages, crossover approximationW17 · Weekly4,187+0.21%−0.96%35.6%1.09+0.15%+0.004%
Open/close averages, research implementationW18 · Weekly2,997+0.27%−0.41%44.0%1.15+0.21%+0.12%
Fast band swing tradeW19 · Daily23,046−0.13%+0.38%62.5%0.85−0.20%−0.12%
Fast band swing tradeW20 · Weekly4,271−0.14%+1.04%64.6%0.93−0.20%−0.14%
Volatility score (our reconstruction, two settings assumed)W21 · Daily16,982−0.16%−0.39%39.8%0.89−0.22%−0.17%
Reference: 50/200-day average cross, eligibility gatedW22 · Daily792+4.95%−2.17%34.5%1.99+4.89%+2.05%

Daily and weekly configurations hold positions for different lengths of time, so their means per position are not comparable measures of efficiency.

Two separately simulated date windows

The 2002–2019 window runs on data ending in 2019. The 2020–2026 window starts flat in January 2020, using older prices only to warm up indicators where those prices are within the market’s permitted history. Markets whose history starts later enter only after that start and fresh warm-up; AUD contributes no positions to the earlier window. Both are chronological checks, not an untouched holdout: the markets, price series and research choices were all fixed after both periods had happened.

Research results
Configuration2002–2019 positions2002–2019 mean2020–2026 positions2020–2026 meanExcl. bitcoin, 2002–2019Excl. bitcoin, 2020–2026Positive entry-year cohorts
Channel trend, immediate entryW01 · Daily2,457−0.04%1,421−0.09%−0.06%−0.13%12 of 25
Channel trend, pullback entry, every pullbackW02 · Daily8,485−0.06%5,097+0.002%−0.05%−0.02%8 of 25
Channel trend, pullback entry, first pullback onlyW03 · Daily2,480−0.09%1,439−0.10%−0.05%−0.10%10 of 25
Channel trend, immediate entry, alternative confirmationW04 · Daily2,916−0.11%1,682−0.08%−0.13%−0.10%11 of 25
Channel trend, immediate entry, no confirmationW05 · Daily3,592−0.11%2,027−0.09%−0.12%−0.08%12 of 25
Channel counter-move approximationW06 · Daily4,827−0.06%2,909+0.03%−0.05%−0.01%9 of 25
Channel trend, immediate entryW07 · Weekly409−0.14%225−0.23%−0.18%−0.20%12 of 25
Channel trend, pullback entry, every pullbackW08 · Weekly1,537+0.16%939+0.75%+0.13%+0.48%19 of 25
Divergence, oscillator AW09 · Daily1,036−0.36%594−0.23%−0.35%−0.30%6 of 25
Divergence, oscillator BW10 · Daily1,114−0.23%637−0.07%−0.20%−0.19%10 of 25
Divergence, oscillator CW11 · Daily1,288−0.27%789−0.04%−0.22%−0.06%9 of 25
Divergence, oscillator DW12 · Daily825−0.29%490+0.09%−0.25%+0.20%7 of 25
Divergence, first of the four oscillatorsW13 · Daily1,986−0.27%1,194−0.20%−0.25%−0.16%6 of 25
Divergence, oscillator AW14 · Weekly214−1.20%136−0.32%−1.25%−0.83%8 of 24
Open/close averages, crossover approximationW15 · Daily13,511−0.07%7,958−0.16%−0.11%−0.20%7 of 25
Open/close averages, research implementationW16 · Daily9,364+0.02%5,516−0.11%−0.03%−0.15%12 of 25
Open/close averages, crossover approximationW17 · Weekly2,535+0.31%1,652+0.13%+0.09%−0.05%14 of 25
Open/close averages, research implementationW18 · Weekly1,838+0.02%1,159+0.66%−0.004%+0.32%13 of 25
Fast band swing tradeW19 · Daily14,423−0.14%8,630−0.11%−0.12%−0.11%2 of 25
Fast band swing tradeW20 · Weekly2,640−0.14%1,631−0.15%−0.19%−0.06%10 of 25
Volatility score (our reconstruction, two settings assumed)W21 · Daily10,675−0.14%6,307−0.20%−0.14%−0.21%5 of 25
Reference: 50/200-day average cross, eligibility gatedW22 · Daily487+5.92%305+4.63%+1.87%+3.47%16 of 25

“Positive entry-year cohorts” counts entry years whose positions have a positive mean net return. Each position’s complete eventual return is assigned to its entry year, even if it exits in a later year. This is not calendar-year account profit or mark-to-market annual performance.

By market group

Mean net per position within each group. A method that works on futures generally should be positive in most groups, not only in one.

Research results
ConfigurationStock indicesRatesMetalsGrainsSoftsEnergyCurrenciesBitcoinVolatilityGroups positive
Channel trend, immediate entryW01 · Daily+0.08%−0.25%−0.12%−0.28%+0.36%−0.36%−0.13%+1.50%+1.23%4 of 9
Channel trend, pullback entry, every pullbackW02 · Daily+0.001%−0.01%−0.11%−0.09%−0.31%+0.13%−0.03%+0.01%−0.38%3 of 9
Channel trend, pullback entry, first pullback onlyW03 · Daily−0.02%−0.005%−0.15%+0.10%−0.28%−0.23%−0.005%−1.25%−0.84%1 of 9
Channel trend, immediate entry, alternative confirmationW04 · Daily−0.14%−0.04%−0.01%−0.21%+0.12%−0.42%−0.04%+0.79%−0.20%2 of 9
Channel trend, immediate entry, no confirmationW05 · Daily−0.12%−0.10%+0.07%−0.35%+0.47%−0.29%−0.08%−0.03%−0.11%2 of 9
Channel counter-move approximationW06 · Daily+0.02%−0.01%−0.07%−0.06%−0.17%−0.05%−0.02%+0.20%−0.06%2 of 9
Channel trend, immediate entryW07 · Weekly+0.64%−0.21%−0.55%−0.75%+0.59%−0.71%−0.24%+2.29%−3.00%3 of 9
Channel trend, pullback entry, every pullbackW08 · Weekly+0.39%−0.21%+0.55%+0.18%−0.24%−0.18%−0.04%+6.08%+4.47%5 of 9
Divergence, oscillator AW09 · Daily−0.26%−0.38%+0.14%−0.08%−0.08%−1.22%−0.08%+1.18%−1.91%2 of 9
Divergence, oscillator BW10 · Daily−0.12%−0.20%+0.05%−0.27%−0.22%−0.27%+0.003%+1.12%−1.99%3 of 9
Divergence, oscillator CW11 · Daily−0.27%−0.12%−0.01%+0.39%−0.46%−0.50%−0.01%−0.96%−1.05%1 of 9
Divergence, oscillator DW12 · Daily−0.24%−0.04%+0.26%−0.56%+0.02%−0.54%+0.20%−1.85%−1.74%3 of 9
Divergence, first of the four oscillatorsW13 · Daily−0.09%−0.12%−0.30%−0.02%−0.32%−0.66%+0.07%−1.11%−1.45%1 of 9
Divergence, oscillator AW14 · Weekly−0.65%+1.27%−0.46%−1.18%−8.89%−2.75%−0.23%+10.34%−3.14%2 of 9
Open/close averages, crossover approximationW15 · Daily−0.13%−0.05%+0.03%−0.30%−0.28%−0.30%−0.02%+1.82%−1.54%2 of 9
Open/close averages, research implementationW16 · Daily+0.04%−0.07%+0.10%−0.23%−0.18%−0.23%−0.02%+2.14%−1.36%3 of 9
Open/close averages, crossover approximationW17 · Weekly−0.03%+0.56%−0.67%−0.05%+0.01%+0.63%−0.05%+13.36%+0.92%5 of 9
Open/close averages, research implementationW18 · Weekly+0.05%+0.72%+0.01%+0.12%−0.23%+0.15%−0.15%+10.53%+3.33%7 of 9
Fast band swing tradeW19 · Daily−0.16%−0.05%−0.09%−0.10%−0.30%−0.11%−0.04%−0.79%−0.81%0 of 9
Fast band swing tradeW20 · Weekly−0.08%−0.08%−0.49%−0.43%+0.01%−0.27%+0.08%−0.22%+0.18%3 of 9
Volatility score (our reconstruction, two settings assumed)W21 · Daily−0.23%−0.15%+0.06%−0.16%+0.18%−0.44%−0.04%+0.36%−1.24%3 of 9
Reference: 50/200-day average cross, eligibility gatedW22 · Daily+4.77%+0.83%+3.30%+1.52%+0.28%+5.88%−0.44%+166.48%−4.69%7 of 9

By market

How many configurations finished positive on each market, and the mean over all their positions there. The denominator counts configurations that opened at least one position; untraded configurations are omitted. Markets with shorter histories have fewer positions and noisier results.

Research results
MarketGroupConfigurations positivePositionsMean net, all 21 pooled
E-mini S&P 500Stock indices8 of 216,741−0.11%
E-mini Nasdaq 100Stock indices11 of 216,768−0.02%
30-year T-bondRates6 of 216,315−0.05%
10-year T-noteRates3 of 216,334−0.04%
GoldMetals10 of 215,736−0.01%
SilverMetals14 of 215,369+0.12%
PlatinumMetals8 of 214,508−0.10%
PalladiumMetals8 of 214,458−0.27%
CopperMetals13 of 211,940+0.01%
CornGrains5 of 214,120−0.16%
SoybeansGrains5 of 213,443−0.17%
WheatGrains6 of 213,232−0.16%
Sugar #11Softs8 of 212,402−0.16%
Crude oilEnergy6 of 215,337−0.10%
RBOB gasolineEnergy7 of 214,969−0.17%
Natural gasEnergy2 of 215,197−0.40%
Euro FXCurrencies11 of 212,409−0.02%
Swiss francCurrencies6 of 215,755−0.05%
Japanese yenCurrencies5 of 215,688−0.04%
British poundCurrencies11 of 215,548−0.02%
Canadian dollarCurrencies8 of 215,554−0.02%
Mexican pesoCurrencies9 of 214,741−0.02%
Australian dollarCurrencies10 of 201,294−0.10%
New Zealand dollarCurrencies8 of 215,623−0.04%
CME BitcoinBitcoin14 of 212,755+1.02%
VIX futuresVolatility5 of 213,965−0.77%
FTSE 100Stock indices4 of 216,562−0.11%
DAXStock indices13 of 216,719−0.03%
Nikkei 225 (CME, USD)Stock indices5 of 217,007−0.16%

Long and short positions

Long positions in markets that rose over the period, such as the stock indices, gold and bitcoin, are helped by that rise. Short positions in the volatility and natural-gas funds are helped by their steady roll losses, which a futures holder also bears. Neither is evidence of timing skill; the split is shown so readers can see where results come from.

Research results
ConfigurationLong positionsLong mean netShort positionsShort mean net
Channel trend, immediate entryW01 · Daily1,935+0.06%1,943−0.17%
Channel trend, pullback entry, every pullbackW02 · Daily8,002+0.02%5,571−0.11%
Channel trend, pullback entry, first pullback onlyW03 · Daily1,951−0.05%1,946−0.15%
Channel trend, immediate entry, alternative confirmationW04 · Daily2,296−0.07%2,302−0.13%
Channel trend, immediate entry, no confirmationW05 · Daily2,806−0.02%2,813−0.19%
Channel counter-move approximationW06 · Daily4,046−0.04%3,690−0.01%
Channel trend, immediate entryW07 · Weekly317+0.27%317−0.62%
Channel trend, pullback entry, every pullbackW08 · Weekly1,450+0.53%1,017+0.16%
Divergence, oscillator AW09 · Daily691−0.09%940−0.49%
Divergence, oscillator BW10 · Daily767−0.10%985−0.23%
Divergence, oscillator CW11 · Daily862+0.01%1,210−0.34%
Divergence, oscillator DW12 · Daily581+0.20%723−0.48%
Divergence, first of the four oscillatorsW13 · Daily1,367−0.08%1,780−0.38%
Divergence, oscillator AW14 · Weekly154−0.90%195−0.95%
Open/close averages, crossover approximationW15 · Daily10,732−0.01%10,737−0.20%
Open/close averages, research implementationW16 · Daily7,565+0.01%7,315−0.08%
Open/close averages, crossover approximationW17 · Weekly2,094+0.76%2,093−0.34%
Open/close averages, research implementationW18 · Weekly1,540+0.75%1,457−0.24%
Fast band swing tradeW19 · Daily12,023−0.09%11,023−0.18%
Fast band swing tradeW20 · Weekly2,325−0.01%1,946−0.29%
Volatility score (our reconstruction, two settings assumed)W21 · Daily8,490−0.04%8,492−0.27%
Reference: 50/200-day average cross, eligibility gatedW22 · Daily397+10.34%395−0.46%

How much the costs matter

Across all positions the median illustrative round-trip charge is 3.0 bp of initial notional, against the 10 bp we charged stock positions. The cost model is a simplification: it ignores exchange and clearing fee differences between contracts, wider spreads in thin night sessions, and margin interest. The double-cost column in the main table shows how sensitive each result is; 3 of 21 stay positive there.

Order timing

Indicators use completed bars. Orders triggered by a completed bar execute at the next open; resting orders already marketable at the open fill there, and gap stops fill at the worse opening price. When a stop and a target fall inside the same bar we assume the stop came first, and a target on the bar a position was entered intrabar is not credited. One position per market and configuration can be open at a time; different configurations and markets can overlap. There is no shared capital budget, and open positions are closed at the end of each window.

Research implementations and sources

The configurations are the same neutral-labelled research implementations used for our swing study on US stocks, built from Bernstein’s 2017 timing-trigger webinar and the course recordings cited below. The stock screens of that study (minimum volume and price) are switched off; the price inputs, reference-contract tick units and history cutoffs are described above. Entry and management rules are otherwise unchanged. Settings and order rules stay private, so readers can inspect the method and the results but cannot rebuild the strategies from this page. Several configurations involve research choices or approximations, and none is a certified reproduction of the author’s complete method. This study is independent and not affiliated with or endorsed by Bernstein. His intraday methods are tested in our NQ study.

Research results
MethodSource locationScope / research choices
Moving Average Channel2017 webinar 00:15:00–00:32:10; course S3 00:35:52–00:40:15, 00:44:32–00:58:50Tested: immediate and pullback entries, three confirmation variants, daily and weekly. Position split and tie-breaks are our choices.
Channel counter-move trade2017 webinar 00:24:40–00:29:30; course S3 01:03:41–01:04:12Single-bar approximation with research choices for exits. The multi-bar form is not tested.
Momentum divergence2017 webinar 00:32:14–00:42:40; course S3 01:11:56–01:13:30Daily tests cover four oscillators separately and combined. Only oscillator A receives a weekly counterpart. The reviewed material states no initial stop; ours is a research choice.
8 Open / Close2017 webinar 00:42:40–00:53:30; course S3 01:15:20–01:19:30Tested twice: the bare cross used in our first article, and a research implementation using the 2017 session. Management after the decision bar is our choice; this is not a certified complete reproduction.
“888”2017 webinar 00:53:30–00:55:50Not tested. The trigger and target arithmetic are not recoverable from the recording.
3 × 3 channel2017 webinar 01:08:45–01:10:40Tested daily and weekly. Re-entry handling is our choice.
Trailing rule after a large favourable move2017 webinar 00:10:47–00:14:30Applied inside the configurations where the material applies it.
Volatility Trigger2017 webinar 01:16:45–01:18:30Reconstruction only. Two settings are not legible in the recording and were assumed, so this is not the author’s indicator.
Seasonal date trades2017 webinar 00:55:50–01:01:10; course S4 00:34:13Not tested. The method depends on the author’s proprietary date lists.
Commitments of Traders trigger2017 webinar 01:10:42–01:16:45Not tested. Long-term positioning, formula not disclosed.
Opening gap trades2017 webinar 01:04:20–01:08:40Outside this study; intraday adaptations appear in our first article.
Expansion / ContractionCourse S1 00:47:54–00:56:40; S4 00:41:53–00:48:35Not tested. No formula is given.

What this study cannot conclude

  • Fund, cash-index and spot prices stand in for futures. Session hours, opening prices and the daily range differ from the contracts, and that changes where stops and entries fill.
  • 10 of the 39 report markets are missing, including livestock, most softs and heating oil. The markets tested are the ones with clean free data, not a random sample.
  • Positions overlap in time and across related markets, so the position count is not a count of independent observations. No confidence interval or significance test is given.
  • Twenty-one variants, two timeframes, nine groups and two windows create many chances for a good-looking cell. The tables are not corrected for multiple testing.
  • There is no portfolio model, margin or capital budget, and no comparison with random entries. Results do not show that a trading account would have been profitable, and they do not verify the author’s own performance figures.

How the results were verified

The engine, its regression tests and the independent verifier are unchanged from the stock study. The verifier reconstructed all 282,657 positions across the full and separate windows from their exit records, recomputed 703 aggregate rows, and reproduced 1,584 reference positions with a separate implementation. The futures-cost tables are recomputed from the verified trade records and checked to add up to each configuration’s total. Code, data and results are kept privately for audit, with hashes recorded for every input.

Related: 54 NQ backtests inspired by Jake Bernstein and the same configurations on gold.

From the team behind this backtest

Get seasonal patterns that have worked in the past

Testing popular trading ideas against decades of data is what we do every day. Does It Repeat applies it to timing: which weeks of the year a market has historically risen or fallen, how consistently, and whether that pattern still holds up.

Free account includes a screener preview, no credit card. Full access $20/mo at early-adopter pricing, 14-day money-back guarantee, cancel anytime. All statistics are historical; past performance does not guarantee future results.