TradingView ICT Master Suite Best Settings
We searched 398 combinations of ICT Master Suite’s TradingView settings on Nasdaq futures, picked the best on 2016–2022 and checked it once, unchanged, on 2023 to September 2026. It made money in both periods, with a profit factor of 1.53 and then 1.27, but it needs two filters the script doesn’t have, its result per trade was no better than the same trades on random dates, and at the script’s own default commission it loses. With only the script’s own inputs, the same setup about broke even and then lost; the defaults lost on recent data.
Is it profitable? The results
One setting made money in both periods, and it needs two filters the script doesn’t have. It is the single best of 398 combinations on 2016–2022, ranked without correcting for how many were tried, and none of the 398 survives that correction. With only the script’s own inputs, the same setup about broke even on 2016–2022 and lost slightly on 2023–2026; the script’s defaults lost on 2023–2026.
| Setting | Trades | Win rate | Profit factor | Avg per trade | Total | Max drawdown | 1 NQ contract: net | 1 contract: profit factor |
|---|---|---|---|---|---|---|---|---|
| Best setting, 2016–22 | 668 | 68.7% | 1.53 | +0.17R | +112.8R | 12.8R | +$107,035 | 1.70 |
| Best setting, 2023–26 | 337 | 68.5% | 1.27 | +0.08R | +28.3R | 10.0R | +$126,290 | 1.83 |
| Inputs only, 2016–22 | 1,702 | 75.6% | 1.05 | +0.01R | +20.3R | 23.0R | +$18,285 | 1.05 |
| Inputs only, 2023–26 | 884 | 75.0% | 0.98 | −0.01R | −5.0R | 14.0R | +$39,000 | 1.11 |
| Defaults, 2016–22 | 5,441 | 68.9% | 1.01 | +0.00R | +12.6R | 93.6R | +$43,775 | 1.04 |
| Defaults, 2023–26 | 2,757 | 66.2% | 0.87 | −0.05R | −124.2R | 138.4R | −$63,075 | 0.95 |
The best setting was picked on 2016–2022; 2023–26 runs from January 2023 to September 7, 2026 and was never used to pick it. Every row: Nasdaq-100 futures (NQ), one-minute bars, $5 per round trip and no slippage; when a bar could have hit both the stop and the target, the stop counts, and orders fill once price touches them. Profit factor, average, total and max drawdown treat every trade as risking the same amount (in R, explained below). The last two columns trade one NQ contract every time instead, the way a fixed quantity sizes trades in TradingView’s Strategy Tester; one micro contract (MNQ) is a tenth of those dollar figures. “Inputs only” is the best setting with the two extra filters switched off; “defaults” is Model 2022 long and short, the script’s only strategies switched on by default, on a 5-minute timeframe.
The settings
The best setting, with each input named as it appears in ICT Master Suite’s settings panel. They are listed so the result can be checked, not as a recommendation.
| Input | Set to | Script default |
|---|---|---|
| Model 2022 Long | On | On |
| Model 2022 Short | Off | On |
| Timeframe | 5 minutes, on a 5-minute chart | The chart’s |
| Model 2022 Liquidity Sweep Aggressiveness | 5 | 6 |
| Long Entry At FVG Nearest This Fib: | 0.5 | 0.5 |
| Silver Bullet, Unicorn, Liquidity Raid and OTE strategies | Off | Off |
| Model 2022: Only Trade With The 15m Bias (added) | On | Not in the script |
| Model 2022: Only Trade 3-4, 10-11 And 14-15 New York (added) | On | Not in the script |
The two inputs marked “added” are filters the script does not offer for Model 2022: long trades only while Silver Bullet’s 15-minute zigzag bias points up, and entries only from 3 to 4 a.m., 10 to 11 a.m. and 2 to 3 p.m. New York time, Silver Bullet’s own three windows. They come from our Pine Script edits, given in full below. With both switched off, this is the “inputs only” row in the table above.
Was it more than luck?
- Per trade, no. On 2023 – Sept. 2026 it averaged +0.08R per trade. The same trades placed on 500 sets of random dates averaged +0.02R and ranged from −0.13R to +0.45R, and the real result landed at the 82nd percentile, which chance explains easily.
- With one contract per trade, it beat every random version, but that check came afterwards. Its +$126,290 beat all 500 random-date versions (their median was +$12,755). Most of it came from about ten large winners ($81,770; +$44,520 without them), in trades with wider stops, which one-contract sizing gives more weight. We added this check after seeing the planned one, so it is a lead to test again on new data, not a confirmed edge.
- The script’s default commission turns it into a loss per trade. That setting, 0.02% of the price per side, came to about 7.9 NQ points a round trip on 2023–2026 prices, roughly 31 times the $5 fee above. It cuts the profit factor to 0.48 when every trade risks the same amount; with one contract per trade it still nets +$74,929.
| Cost per round trip | Profit factor | Total | 1 contract: profit factor | 1 contract: net |
|---|---|---|---|---|
| $5 fee, no slippage | 1.27 | +28.3R | 1.83 | +$126,290 |
| $5 fee + 1 tick of slippage | 1.22 | +23.9R | 1.82 | +$124,605 |
| $5 fee + 2 ticks of slippage | 1.17 | +19.5R | 1.81 | +$122,920 |
| The script’s default commission, 0.02% per side (about 7.9 points) | 0.48 | −110.8R | 1.45 | +$74,929 |
Same trades as the table above, repriced at each cost; a tick is 0.25 NQ points, $5 a contract.
What we found
- No setting holds up once you count how many were tried. We searched 398 combinations of ICT Master Suite’s settings across three of its models. None clears a fair correction for trying that many, and the best one’s result per trade on later data was no better than random dates.
- The best setting leans on two filters the script doesn’t have. In the script, Model 2022 has no bias filter and no trading-hour window. Without our two add-ons, the same setup had a profit factor of 1.05 on 2016–2022 and 0.98 on 2023–2026.
- The defaults lost money on recent data. Model 2022 long and short, the script’s only strategies on by default, had a profit factor of 0.87 on 2023 to September 2026, losing 124R over 2,757 trades even at a $5 fee.
- The script’s default commission decides the answer. At 0.02% per side, about 31 times the $5 fee this study assumes for NQ, every setting above loses in both periods when each trade risks the same amount.
- The short-stop bug from the last Master Suite study is still there, and it changes results. A Pine code bug flagged in the earlier Master Suite backtest — the short side’s stop setting being dead code — is still present in the current library version. Measured across all 72 paired settings, the bug’s day-high fallback stop produced a consistently higher average result than the trader’s own chosen stop setting would have.
- Four of six tweaks we tested found no support. Of six tweaks to these setups, tested one at a time, two held up under a stricter bar: requiring a liquidity sweep, and taking direction from it. Both come mostly from how Model 2022 builds its exits, and the second failed on another data feed. The other four, entering on the 1-minute gap, dropping the 15-minute bias, ignoring the famous kill-zone hours and trading often, found no support.
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.
Seasonality screener
FreeThe next yearly windows with a perfect record
- ICG.LICG PLCLongOct 21 → Nov 25 · won 10 of 10 years · +13.3% avg
- PHParker HannifinLongOct 21 → Nov 22 · won 10 of 10 years · +11.4% avg
- ODFLOld Dominion Freight LineLongOct 22 → Dec 2 · won 10 of 10 years · +9.0% avg
Price cycle screener
FreeCycle models with an entry in the next two weeks
- LITELumentum Holdings Inc.Shortentry Oct 29 · +302.9% net · 100% won
- XMR-USDMoneroLongentry Oct 27 · +278.2% net · 80% won
- AMDAdvanced Micro Devices Inc.Shortentry Oct 27 · +217.1% net · 80% won
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.
How to add the two filters in TradingView
ICT Master Suite gives Model 2022 no bias filter and no trading-hour window, so the best setting can’t be built from the settings panel alone. The two edits below add both to your own copy of the script, using the rules our backtest used: Silver Bullet’s 15-minute zigzag bias and its three New York hours. On NQ data from 2016 to September 2026, the edited script lets Model 2022 trade on the same 5-minute bars as our backtest code. We give them so the result can be checked, not as a recommendation to trade it.
- Open a 5-minute NQ futures chart (NQ1!). The bias is worked out on the chart’s own bars, so the chart itself must be on 5 minutes.
- Open the source of ICT Master Suite [Trading IQ] in the Pine Editor and make your own copy. TradingIQ publishes it open source under the Mozilla Public License 2.0, which allows this; our edits are offered under the same licence.
- Edit 1. Find the input line that begins
short2022nearestFib, about 80 lines down, and paste this block on the line after it:
// ---- Added: two filters for Model 2022 (not in the original script) ----
m22BiasFilter = input.bool(defval = true, title = "Model 2022: Only Trade With The 15m Bias", group = "Model 2022 Filters (added)")
m22HoursFilter = input.bool(defval = true, title = "Model 2022: Only Trade 3-4, 10-11 And 14-15 New York", group = "Model 2022 Filters (added)")
// The 15-minute bias, Silver Bullet's zigzag rule: on the chart's bars, the direction flips
// when price pulls back 2 x ATR(14) of the last finished 15-minute bar from its running
// extreme (1 = up, -1 = down)
m22Atr15 = request.security(syminfo.tickerid, "15", ta.atr(14)[1], lookahead = barmerge.lookahead_on)
var int m22Bias = 0
var float m22Point = close
m22Move = m22Atr15 * 2
if not na(m22Move)
if m22Bias == 1
m22Point := math.max(m22Point, high)
if low <= m22Point - m22Move and high != m22Point
m22Bias := -1
m22Point := low
else if m22Bias == -1
m22Point := math.min(m22Point, low)
if high >= m22Point + m22Move and low != m22Point
m22Bias := 1
m22Point := high
else if high >= m22Point + m22Move
m22Bias := 1
m22Point := high
else if low <= m22Point - m22Move
m22Bias := -1
m22Point := low
// true when t falls in 3:00-4:00, 10:00-11:00 or 14:00-15:00 New York time
m22InHours(t) =>
m = hour(t, "America/New_York") * 60 + minute(t, "America/New_York")
(m >= 180 and m < 240) or (m >= 600 and m < 660) or (m >= 840 and m < 900)
// A bar may trade if the bias at the previous bar's close points its way and the bar opens
// inside one of the three hours. The "Next" versions check the bar after this one.
m22LongOK = (not m22BiasFilter or m22Bias[1] == 1) and (not m22HoursFilter or m22InHours(time))
m22ShortOK = (not m22BiasFilter or m22Bias[1] == -1) and (not m22HoursFilter or m22InHours(time))
m22LongNext = (not m22BiasFilter or m22Bias == 1) and (not m22HoursFilter or m22InHours(time_close))
m22ShortNext = (not m22BiasFilter or m22Bias == -1) and (not m22HoursFilter or m22InHours(time_close))- Edit 2. Near the end of the script, inside
calcKeyLevels(), find these two lines:
model2022Long(sweepData, FVGarr)
model2022Short(sweepData, FVGarr)Replace them with this block, keeping the four-space indent:
if m22LongOK
model2022Long(sweepData, FVGarr)
if m22ShortOK
model2022Short(sweepData, FVGarr)
// a waiting Model 2022 order may only fill on a bar that passes the filters
if not m22LongNext
strategy.cancel("Long 2022 Model")
if not m22ShortNext
strategy.cancel("Short 2022 Model")- Save the script, add your copy to the chart and set the inputs from the settings table at the top. The two filters appear in their own group, Model 2022 Filters (added), both switched on.
What the edits do:
- The bias flips direction when price pulls back twice the 15-minute ATR(14), a measure of the typical bar range, from its latest high or low. That is the rule Silver Bullet uses, written out in the edit rather than called from the script’s library, so it doesn’t depend on which library version the script loads. Each bar uses the direction as of the previous bar’s close, so it never looks ahead.
- The hours: a bar may trade only if it opens between 3:00 and 3:55, 10:00 and 10:55, or 14:00 and 14:55 New York time.
- Model 2022 skips every bar that fails either filter, and a limit order still waiting to fill is cancelled before such a bar, so nothing fills outside the windows. One small difference from our code: when the next window opens, the script places a still-valid order again at the end of that window’s first bar, while in our code it could already fill during that bar.
To use the same costs and fills as our test, set these in the Strategy Tester’s Properties tab:
| Property | Our test | Script default |
|---|---|---|
| Order size | 1 contract (the one-contract columns above) | 5% of equity |
| Commission | 2.5 USD per contract, charged on entry and on exit: $5 a round trip | 0.02% |
| Slippage | 0 ticks | 2 ticks |
| Verify price for limit orders | 0 ticks (our orders fill once price touches them) | 2 ticks |
| Bar magnifier | On, if your plan has it (we checked fills on 1-minute bars) | Off |
Don’t expect the Strategy Tester to show our numbers. The script only calculates its last 20,000 bars, about 14 weeks of 5-minute NQ, against our ten years. Its Model 2022 spots liquidity sweeps with a more elaborate rule than the simplified one in our code, and TradingView’s continuous contract and order fills differ from ours. The edits make the script trade under the same two filters; they don’t reproduce our trade list.
How to read the numbers below
- R is the amount risked on a trade, so −0.2R means losing a fifth of the amount risked per trade, on average.
- Profit factor is everything the winning trades made divided by everything the losing trades lost. Above 1 means the setting made money; 1.27 means 1.27 won for every 1 lost.
- Equal risk or one contract. Our main numbers treat every trade as risking the same amount. A fixed quantity in TradingView’s Strategy Tester trades one contract every time instead, so trades with wider stops count for more; where that changes the picture, we show both.
- A number like “how unlikely by chance” is the chance of seeing a result at least this strong if the setting had no real edge at all — the smaller it is, the harder the result is to explain as luck.
- A range in brackets, like [+0.010, +0.031], is the plausible range for the true value; if it crosses zero, the data cannot rule out “no effect.”
- The Holm correction: when several claims are tested at once, each must clear a stricter bar, so one lucky-looking result can’t pass on its own. Below, “held up under a stricter bar” means it cleared that correction.
How we searched ICT Master Suite’s settings
In September we backtested ICT Master Suite [Trading IQ], an open-source TradingView strategy script, on Nasdaq futures. Its best default setup made +17.36% in fourteen weeks, and all of that profit came from 15 trades in one session. Ported to Python and run long-only over 8.5 years at the script’s own default cost setting, it lost money with no profitable year. That article tested the script’s ten default setups. This one searches its other settings, on the full run of Nasdaq futures data we could gather, 2016 through early September 2026.
We searched 398 combinations of the script’s settings across the three models we ported (Silver Bullet, Model 2022, Liquidity Raid): the timeframe, the liquidity-sweep switches and sliders, the take-profit and stop-loss choices, and, for every model, a 15-minute bias filter and a trading-hour window. Only Silver Bullet has those last two in the script, so for Model 2022 and Liquidity Raid we added them in our own code, to compare the models on equal footing. Two models in the script, Unicorn and OTE, were not ported, so this says nothing about their settings.
We picked the single best combination on 2016–2022 by its per-trade Sharpe ratio (return per unit of risk), among combinations with at least 100 trades and a result unlikely to be chance. That is one reasonable rule among others we did not try. Then we reported the winner once, unchanged, on 2023 through September 2026. It is the setting in the box at the top: Model 2022, long only, on 5 minutes, with both added filters on.
| Measure | Later-period result | What it means | Trades (n) |
|---|---|---|---|
| Win rate, later period (2023 – Sept. 2026, never touched while picking the setting) | 68.5% [63.4%, 73.3%] | about two trades in three won | 337 |
| Longest losing streak, later period | 6 trading days | about what chance alone would produce | 337 trades across 285 trading days |
| Average result vs. a matched random-date comparison, later period | +0.084R vs. +0.020R for the comparison | not detectably different from the comparison | 337 |
| Average result, later period, repriced at the script’s own default cost setting instead of our primary cost | −0.329R (vs. +0.084R at our primary cost) | a clear loss at this cost, not just unremarkable | 337 |
The first three rows use the same cost and fill assumptions as throughout; the last row reprices the identical trades at the script’s own default commission (0.02% of the entry price per side) instead, shown here for comparison. The later-period window was fixed before any setting was chosen; the setting itself was fixed before the later period was looked at.
The best setting kept making money on the later period, in every year of it, from +0.3R in 2024 to +15.2R in 2023. But per trade it did no better than the same trades placed on random dates, and once we account for having tried 398 different settings, the same kind of correction applied to every other claim in this article, none of the 398 clears the bar, including the single best one. At the script’s own default commission, the same trades lose clearly.
One check points the other way. Trading one NQ contract per trade, instead of risking the same amount each time, the best setting made +$126,290 on 2023 – Sept. 2026, more than every one of 500 random-date versions of the same trades, each sized at the stop of the trade it replays. Two things limit what that means. Most of the profit came from about ten large winners, and the trades with wider stops did far better per unit of risk (+0.16R on average) than the tighter half (+0.01R), which one-contract sizing rewards. And we added this check after the planned one had come back unremarkable, so it has none of the planned test’s protection against finding a pattern by looking for one. It is a lead to test again on new data, not evidence of an edge.
Switching the two added filters off leaves only settings the script really has. That version traded about two and a half times as often and won three trades in four, but each win averaged about a third the size of each loss. Its profit factor was 1.05 on 2016–2022 (1.00 with a tick of slippage) and 0.98 on 2023–2026. The script’s defaults, Model 2022 long and short, came in at 1.01 and then 0.87.
How closely each port was checked against the real script differs. Silver Bullet’s trade-by-trade logic was checked earlier against a real TradingView trade list (43 of 61 trades landed on the same bar, 40 of those 43 agreed on win or loss); this study’s additions on top of it — the sweep-gate overlay, the wider settings grid, the short side — were checked for internal consistency rather than against a fresh trade list. Model 2022 was checked by reading the Pine code directly and by a self-consistency test, not against a trade list of its own, since none exists for it; its own rule for spotting a liquidity sweep is a documented simplification of the published script’s more elaborate version. Liquidity Raid’s entry condition, a “breaker block,” uses a simpler stand-in for the published script’s own order-block bookkeeping, checked for correctness in the pipeline rather than hand-checked trade by trade against the Pine source — one more reason it carries no weight on its own in the six tweak tests below.
A bug from the last Master Suite study, still there
The earlier ICT Master Suite article found that the script’s shared library reads the long side’s stop-loss setting on the short side’s own code path, so Silver Bullet Short’s Silver Bullet Short Strategy SL setting has no effect; its stop always falls back to the day’s high, regardless of what a trader sets it to. Checked directly against the current library source (version 6.0), that bug is still there.
We measured how much it matters, comparing results as the bug actually behaves against results if the short side’s own setting were respected, across all 72 paired settings, measured on the 2016–2022 portion of the data. The comparison shows a consistent pattern: the bug’s day-high fallback stop produced a higher average result than the trader’s own chosen stop setting would have, in 53 of the 72 paired settings, for an average difference of about three hundredths of a risk unit per trade — not large, but a direction unlikely to be chance.
Six tweaks, tested one at a time
Alongside the settings search, we tested six tweaks to these setups, one at a time: require the liquidity sweep; take direction from the sweep; enter on the 1-minute fair value gap rather than the 5-minute one; trade every qualifying setup, often; drop the 15-minute directional bias; and don’t restrict trading to the famous kill-zone hours.
We mapped each tweak onto ICT Master Suite and tested it on Nasdaq futures minute bars. Where the script has a real setting for a tweak, it’s named below exactly as the TradingView input labels it; where it doesn’t, we built our own clearly labelled stand-in and say so each time.
Before looking at results, we fixed which single number would decide each tweak, and applied a stricter bar for having tested several ideas at once. Silver Bullet and Model 2022 carry most of the weight below; Liquidity Raid is part of the settings search above but did not produce a usable result for any of the six tweaks on its own.
1. Requiring the liquidity sweep
The tweak: only trade fair value gaps that form after a liquidity sweep. The real setting it maps to is Silver Bullet’s Only FVGs Formed After Liquidity Sweep, off by default, together with Liquidity Sweep Aggressiveness, a slider that controls how large a move has to be before it counts as a sweep.
Checked directly against the published Pine code, that real switch does nothing at all to Silver Bullet’s own trades: its entry logic never reads it or any fair-value-gap array keyed to a sweep. To test the idea on Silver Bullet anyway, we built our own on/off overlay that mimics what the switch is supposed to do, and toggled that overlay at three slider settings across NQ futures from 2016 to 2026. It produced no reliable difference in either direction — all six versions of that test, three slider settings, both long and short, came back inconclusive, with no real difference turning up either way. That result describes our own stand-in, not the real setting, which simply has no effect to measure.
Model 2022 is a different story, but a complicated one. In the script, Model 2022 forces the sweep requirement on; there is no real setting that turns it off. To test the idea on Model 2022 anyway, we built a stand-in: it kept Model 2022’s entry rule the same and swapped in a looser pivot detector for its stop and target, standing in for “no sweep requirement.” Requiring the sweep did better, not worse, by about two hundredths of a risk unit per trade than skipping it, pooled across Silver Bullet and Model 2022, long and short combined. That is the direction the tweak predicts, and it is unlikely to be chance: reshuffling the data 1,000 times never once produced a gap this large (that is the limit of how finely this test measures “unlikely,” not a precise odds). It held up at every cost level we tried and on a second, independent Nasdaq-100 feed too.
The catch is the stand-in’s stops. In a spot-check of the first half of 2016 they sat roughly 2.6 times closer to entry than the real gate’s stops. Results here are measured in units of risk, and the stand-in loses a little on average, so a tighter stop makes that small loss look bigger per unit of risk. That widens the gap in favor of requiring the sweep, and trading costs widen it further for the same reason. So part of the difference comes from how the stand-in was built, and this comparison is not a clean test of a real, selectable setting.
| Comparison | What happened | Difference | Trades (n) |
|---|---|---|---|
| Silver Bullet, our own on/off overlay standing in for the idea (the real "Only FVGs Formed After Liquidity Sweep" switch changes nothing in the Pine source), three strictness levels | no reliable change either way | −0.011R to +0.019R (long), +0.008R to −0.007R (short), every range includes zero | 3,297–6,619 per setting |
| Pooled Silver Bullet + Model 2022, using a stand-in setting for Model 2022 (it has no real on/off switch for this) | requiring the sweep did better by about two hundredths of a risk unit per trade | +0.020R [+0.010, +0.031] | 305,844 (270,287 without the requirement, 35,557 with it) |
Every trade above: no restriction to a trading-hour window, 15-minute bias off, Liquidity Sweep Aggressiveness at 5 (and the matching Model 2022 slider at 5); when a bar’s path could have hit either the stop or the target, the stop counts; orders fill only once price actually reaches the level; no added cost; NQ futures minute bars 2016–2026. Both rows use this study’s own research overlays, not a real TradingView input: the top row is our stand-in for Silver Bullet’s real switch (which does nothing to its trades), and the bottom row is our stand-in for a Model 2022 “off” state that doesn’t exist as a setting. The difference grows, rather than shrinks, once a realistic per-trade cost is added — a side effect of the Model 2022 stand-in’s tighter stops, not independent confirmation.
2. Taking direction from the sweep
The tweak: take the trade’s direction from the sweep. This isn’t a separate toggle in the script; it’s the direction Silver Bullet and Model 2022 already trade in, by design: after a sweep below a level, look for a long from the fair value gap that follows. To test whether that direction is actually doing any work, we compared it against two controls that share everything else: a version where each trade’s direction label is reshuffled, and a mirror trade taken in the opposite direction at the identical stop and target distance.
Pooled across Silver Bullet and Model 2022 (about a quarter-point of cost per round turn, stop counted first on an ambiguous bar, orders filled only once price actually touched the level), real trades beat 1,000 reshuffled-direction versions of themselves on every single draw — a result very unlikely to be chance under reshuffling. But almost nine in ten of the pooled trades come from Model 2022, whose own stop and target are built from the sweep leg itself, which makes a positive result close to built-in rather than independent confirmation that “fade the sweep” travels as an idea.
Silver Bullet on its own does not confirm the idea cleanly. Its long side’s own mirror comparison favors taking direction from the sweep, by about 0.07R, though that range just touches zero; its short side’s own mirror comparison points the other way, by about −0.03R, a range that also touches zero. Judged against the reshuffled-direction control instead, the two sides disagree again: the short side beats its reshuffled versions, while the long side does clearly worse than its own, which goes against the idea.
Checked cold, with every setting copied unchanged, on a Nasdaq-100 CFD from a different data provider (Dukascopy), this idea does not hold up at all — not even the Model 2022 half, which had looked like the cleanest result in this whole study on NQ futures alone. The pooled result, which beat every one of a thousand reshuffles on NQ futures, lands in the bottom tenth of its own shuffled-direction range on Dukascopy. Model 2022’s own mirror-matched advantage, worth about four hundredths of a risk unit per trade in the tweak’s favor on NQ futures, flips to a small loss on Dukascopy. Silver Bullet short’s edge over the reshuffled-direction control, the one result on NQ futures that did favor the idea, also lands well inside its own null range on Dukascopy — not significant there either.
3. Entering on the 1-minute gap
The tweak: enter on the fair value gap on 1-minute bars instead of 5-minute ones. It maps directly onto the script’s own chart Timeframe input, which decides whether fair value gaps are read on 1-minute or 5-minute bars. For each of four model-and-direction combinations (Silver Bullet and Model 2022, long and short), we measured each timeframe’s own edge over a matched random-entry control, repeated 200 times with different random draws, then compared the 1-minute edge against the 5-minute edge, pooled across all four.
It came back the opposite way from the tweak, if only slightly. Pooled across Silver Bullet and Model 2022, 1-minute entries’ own edge over their matched random-timing control (+0.013R) was a touch smaller than 5-minute entries’ own edge (+0.016R) — a difference unlikely to be chance on its own, but one that does not survive a stricter bar once several ideas are tested together. The fairest summary: this test found no support for entering on the 1-minute gap over the 5-minute one.
4. Trading every setup, and trading often
The tweak: take every qualifying setup and trade often, since the edge per trade is small. We checked that idea across 2,700 different combinations of Silver Bullet’s settings, comparing how often each combination traded per year against how good its average trade was. We found no reliable relationship in either direction: this test did not show settings that traded far more often doing detectably better or worse, per trade, than settings that traded rarely.
A second check looked for a relationship between trading frequency and total profit instead of the average trade, and at first it looked strongly real. It wasn’t: total profit is just the average trade multiplied by the number of trades, so settings that traded more were always going to show bigger totals even if every trade carried the exact same edge. Once that arithmetic was accounted for with a matching comparison built to reproduce it, the observed relationship sat well within the range that arithmetic alone produces. No reliable frequency-to-profit relationship, in either direction, survived that correction.
Most of those 2,700 combinations are the same underlying trades, just re-sliced by cost, fee, and tie-rule choices that don’t change which trades happened — so this “how unlikely by chance” reading treats some closely related slices as if they were fully separate tests, which overstates how much evidence 2,700 combinations really provides. Repeating the comparison on only the 225 genuinely distinct underlying trade lists, with no re-slicing at all, gives the same answer: no reliable relationship either way.
5. Dropping the 15-minute bias
The tweak: switch the 15-minute directional bias off. Silver Bullet ships with exactly this bias: a 15-minute zigzag reading of the day’s direction that, when turned on, restricts trades to that side. Testing it on, versus off, inside Silver Bullet’s own three named kill zones, the bias made the average trade about two and a half hundredths of a risk unit less negative, not more — the opposite of what the tweak predicts. That difference clears an ordinary pass/fail line on its own, but once we account for having tested the bias across 25 different trading-hour windows, plus a few related checks run alongside them, it no longer clears a stricter one — one single hour among those windows does clear that stricter bar, but it isn’t one of Silver Bullet’s own kill zones.
| Test | Result | Did it hold up? | Trades (n) |
|---|---|---|---|
| Silver Bullet’s own three kill zones, bias off vs. the 15-minute zigzag bias on | off −0.0344R, on −0.0093R | the bias makes results +0.0251R less negative, so dropping it hurts | 9,128 off / 4,013 on |
| All 25 trading-hour windows tested the same way | bias helped in 17 of 25, hurt in 8 | only one single hour (not Silver Bullet’s own kill zones) held up once corrected for the 25 windows and a few related checks run alongside them | — |
Both rows: Silver Bullet’s native 15-minute bias, sweep requirement on, an ambiguous bar counts as a stop, orders fill only once price touches the level, roughly a quarter-point of cost per round turn, NQ futures 2016–2026.
A look-ahead bug in our own shared code (the bias was reading the bar’s open instead of its close, handing it a few minutes of foresight) was found and fixed mid-study; every number above is from the corrected version.
6. Were the famous trading windows special?
The tweak: don’t limit trading to the famous kill-zone hours, on the view that they aren’t special. Silver Bullet trades only inside three named one-hour windows, all New York time: 3–4 a.m. (overlapping the London session), 10–11 a.m. and 2–3 p.m. To check whether those specific hours are special, we ran the same sweep-and-fair-value-gap logic as a single-hour strategy, separately, on every hour of the day with enough data to trust (23 of 24 hours; one was dropped for thin coverage), and ranked them by average result.
On this test, the 10 a.m. hour, the middle of Silver Bullet’s three windows, ranked 4th best of 23 hours, with an average result just below breakeven and a win rate of 64.2% (range 62.6% to 65.8%). The rank is not pinned down tightly: resampling the underlying trading days puts the plausible range anywhere from 1st to 16th of 23. So “somewhere in the upper half, not clearly the single best” is a fair summary, and chance alone cannot be ruled out as the explanation for this specific rank.
So which settings work?
On this test, no ICT Master Suite setting held up by the bar we set in advance. The single best of 398 made money on Nasdaq futures in both periods, with a profit factor of 1.53 on the years it was picked from and 1.27 on the later years it never saw. But it needs two filters the script doesn’t have, its result per trade was no better than random dates, none of the 398 settings survives a correction for how many were tried, and at the script’s own default commission it loses. With only the script’s own inputs, the same setup about broke even and then lost, and the defaults lost on recent data. The one result that favours the best setting, its one-contract dollar total beating every random-date version, comes from a check we added afterwards and rests on a handful of large trades.
The six tweaks fared little better. Two held up against the stricter bar, requiring the sweep and taking direction from it, both in the direction the tweaks predict, but neither cleanly. The sweep requirement only works through an invented stand-in setting for Model 2022, which has no real on/off switch for this rule. Direction-from-the-sweep is carried almost entirely by that same model, whose own exits are built from the sweep leg, and when we checked it, with every setting unchanged, on a second Nasdaq-100 feed, it did not hold up there, Model 2022 included. The other four tweaks, entering on the 1-minute gap, dropping the 15-minute bias, treating the famous hours as unremarkable and trading often for its own sake, either pointed the opposite way before correction or showed no reliable relationship at all.
That is not quite the same as saying nothing here is real. Model 2022’s sweep-requirement and direction-from-the-sweep results are real patterns in the Nasdaq futures data, stable across a range of costs. But both are close to built into that one model’s own construction rather than independent evidence that the ideas work on their own, and the direction result does not repeat on a second data feed.
Nothing here is a reason to trade any of these settings, with or without the two added filters. A trader’s own discretionary judgment — which of several candidate setups a trader would actually take on a given morning — was not and could not be tested here; every number above is our own mechanical approximation of the Pine code, built to use only information available at the time of each trade.
Questions people ask
What are the best settings for ICT Master Suite on TradingView?
In our search of 398 setting combinations on Nasdaq futures, the best on 2016–2022 was Model 2022 Long on, Model 2022 Short off, Timeframe 5 minutes, Model 2022 Liquidity Sweep Aggressiveness 5 and Long Entry At FVG Nearest This Fib 0.5, plus two filters the script does not have for Model 2022: longs only when Silver Bullet’s 15-minute bias points up, and entries only from 3 to 4 a.m., 10 to 11 a.m. and 2 to 3 p.m. New York time. It made money in both periods, but no setting in the search survives a fair correction for how many were tried, so treat it as the best performer of this test, not a proven edge.
Is ICT Master Suite profitable, and what is its profit factor?
It depends on the settings, the costs and how trades are sized. At a $5 futures fee per round trip, the best setting from our search had a profit factor of 1.53 on 2016–2022 and 1.27 on 2023 to September 2026, risking the same amount on every trade; with one NQ contract per trade it was 1.70 and 1.83. With only the script’s own inputs, the same setup came in at 1.05 and then 0.98, and the script’s defaults at 1.01 and then 0.87. At the script’s own default commission, 0.02% per side, every one of them falls below 1 when each trade risks the same amount.
Can I add the two extra filters to ICT Master Suite in TradingView?
Yes, with two short edits to your own copy of the open-source script, given in full in this article. The first adds the 15-minute zigzag bias and Silver Bullet’s three New York hours as two on/off inputs; the second makes Model 2022 skip every bar that fails them and cancels a waiting order before such a bar. On 2016 to September 2026 NQ data, the edits let Model 2022 trade on the same 5-minute bars as our backtest. TradingView’s Strategy Tester will still not reproduce our numbers, because the script only calculates its last 20,000 bars, about 14 weeks of 5-minute NQ.
Did the best setting from a 398-setting search hold up on later data?
It kept making money, but the test we planned could not tell it apart from luck. We picked the single best of 398 combinations on 2016–2022 and reported it once, unchanged, on 2023 through September 2026, the fair way to test whether a chosen setting keeps working. It stayed profitable in every year of that later period, with a 68.5% win rate and a longest losing streak of 6 days, but its average result per trade was not detectably different from the same trades placed on random dates, and once corrected for having tried 398 settings, nothing in the search clears the bar. A dollar check we added afterwards, one NQ contract per trade, did beat every random-date version, mostly thanks to about ten large winners; that makes it a lead to retest, not a confirmed edge.
Is the ICT Master Suite short-side stop bug from the earlier Master Suite backtest still in the code?
Yes. In the current library (version 6.0), Silver Bullet Short’s own stop-loss setting is still dead code: the short side reads the long side’s stop setting instead of its own, exactly as the earlier Master Suite article found. Measured across all 72 paired settings on the 2016–2022 portion of the data, the bug’s day-high fallback stop produced a consistently higher average result than the trader’s own chosen stop setting would have.
Does requiring a liquidity sweep improve ICT Master Suite’s results?
Checked directly against the Pine source, Silver Bullet’s real switch for this, "Only FVGs Formed After Liquidity Sweep," does nothing at all to Silver Bullet’s own trades — its entry logic never reads that setting. To still test the idea on Silver Bullet, we built our own on/off overlay that mimics it, and that overlay showed no detectable difference in either direction at any of three strictness levels, on NQ futures from 2016 to 2026. A separate comparison that does find a large, repeatable difference — and holds up on a second, independent Nasdaq-100 feed too — only works by inventing a substitute setting for Model 2022, which has no real "off" switch for this rule, and part of that gap is a side effect of how tight that stand-in’s stops are, not a clean read of the rule alone.
Does taking trade direction from the side of the liquidity sweep work?
It lined up with better results pooled across Silver Bullet and Model 2022, but the result is driven almost entirely by Model 2022, whose own stop and target are built directly from the sweep leg, which makes much of the result close to automatic rather than independently portable. Silver Bullet’s own long and short sides disagreed with each other, and when we checked the whole pooled result on a second, independent Nasdaq-100 feed, it did not hold up there either — including the Model 2022 half, which is the part that looked cleanest on NQ futures alone.
Does dropping the 15-minute directional bias help Silver Bullet?
Not on Silver Bullet’s own three trading hours. Removing the bias made results slightly worse, not better; that difference clears an ordinary pass/fail line on its own but does not survive a stricter check that covers 25 different trading-hour windows plus a few related checks run alongside them. One single hour among those does clear that stricter check, but it isn’t one of the hours Silver Bullet trades.
Are the Silver Bullet kill zones better than other hours of the day?
Not clearly. The 10 a.m. hour, the middle of Silver Bullet’s three windows, ranked 4th best of 23 trading hours tested on NQ futures, with an average result just below breakeven and a 64.2% win rate (range 62.6% to 65.8%). The uncertainty band on that rank is wide (resampling the underlying trading days puts it anywhere from 1st to 16th of 23), so it is somewhere in the upper half, not clearly the best hour or an unremarkable one.
Does trading more often increase or shrink the edge per trade?
We found no reliable relationship in this test, in either direction. Across 2,700 combinations of settings, how often a setting traded showed no reliable relationship with its average result per trade. An apparent relationship between trading frequency and total profit turned out to be a simple arithmetic artifact (more trades multiplied by the same average result always sums to a bigger number) rather than a real pattern, and it vanished once that artifact was corrected for.
Does entering on the 1-minute fair value gap beat the 5-minute version?
No — if anything, slightly the other way. Pooled across Silver Bullet and Model 2022, 1-minute entries’ edge over a matched random-timing control was slightly smaller than 5-minute entries’ own edge. That difference clears an ordinary pass/fail line on its own but does not survive a stricter check for having tested several ideas at once, so it is best read as "no support for 1-minute over 5-minute here," not a confirmed reversal.
The Rest of the ICT Series
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.
Seasonality screener
FreeThe next yearly windows with a perfect record
- ICG.LICG PLCLongOct 21 → Nov 25 · won 10 of 10 years · +13.3% avg
- PHParker HannifinLongOct 21 → Nov 22 · won 10 of 10 years · +11.4% avg
- ODFLOld Dominion Freight LineLongOct 22 → Dec 2 · won 10 of 10 years · +9.0% avg
Price cycle screener
FreeCycle models with an entry in the next two weeks
- LITELumentum Holdings Inc.Shortentry Oct 29 · +302.9% net · 100% won
- XMR-USDMoneroLongentry Oct 27 · +278.2% net · 80% won
- AMDAdvanced Micro Devices Inc.Shortentry Oct 27 · +217.1% net · 80% won
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.