Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Silver Bullet AM Session — NQ Backtest

A Python backtest of the Silver Bullet AM Session strategy on NQ (Nasdaq 100) 1-minute data. The strategy is a time-restricted intraday reversal model that trades only the 10:00–11:00 AM ET window, using the 9:00 AM hourly candle as a reference range.

The setup waits for price to sweep one side of the 9 AM range, then looks for displacement and an ICT-style entry (Fair Value Gap, Order Block, or Breaker Block) targeting the opposite side.

Strategy in one paragraph

At 10:00 AM ET, mark the high and low of the 9:00 AM hourly candle. Between 10:00 and 11:00 AM, wait for a 1-minute sweep of either side of that range. After the sweep, require an aggressive displacement candle back into the range, then enter on a Fair Value Gap, Order Block, or Breaker Block. Stop goes beyond the sweep, target is the opposite side of the 9 AM range. Risk 1% per trade; move stop to break-even at 3R. If no qualifying setup forms by 11:00 AM, skip the day.

Full rules in strategy.md. Implementation design notes in docs/plans/2026-02-26-backtest-design.md.

Repository contents

File Purpose
backtest.py Full backtest engine — data loading, pattern detection (FVG / OB / BB), trade simulation, HTML report.
strategy.md The strategy rules, framework, and reference back-test results from the source video.
nq_1m.parquet NQ 1-minute OHLC bars (ET-timestamped) used as the input dataset.
report.html Generated interactive HTML report from the most recent run.
trades.csv Generated per-trade ledger from the most recent run.
docs/plans/ Design notes for the backtest implementation.

Configuration

The key parameters at the top of backtest.py:

Parameter Default Description
ATR_PERIOD 20 Lookback for ATR used by the displacement filter.
ATR_DISPLACEMENT_MULT 1.5 Displacement candle body must exceed this × ATR.
BODY_RATIO_MIN 0.70 Displacement candle body must be ≥70% of its total range.
FVG_MIN_GAP_ATR 0.3 Minimum FVG gap size as a fraction of ATR.
RISK_PCT 0.01 Risk per trade (1% of account).
BREAK_EVEN_R 3.0 Move stop to break-even at this R multiple.
MIN_RR 2.5 Reject setups with R:R below this threshold.
ACCOUNT_SIZE 100,000 Starting account balance.
NQ_TICK 0.25 NQ minimum tick size.

Running

pip install pandas numpy pyarrow
python backtest.py

Outputs report.html (interactive equity curve, trade list, stats) and trades.csv in the project root.

Data

nq_1m.parquet contains NQ 1-minute bars with a DateTime_ET column plus Open, High, Low, Close. Replace it with your own parquet of the same schema to backtest a different period or instrument.

Disclaimer

For research and educational use only. Past performance of a backtest is not indicative of future results. Nothing here is financial advice.

About

NQ 1-minute backtest of the ICT Silver Bullet AM Session strategy — time-window reversal trades (10:00-11:00 ET) sweeping the 9 AM hourly range with FVG/Order Block/Breaker Block entries.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages