Download the PDFThe scriptEvery trade
Alpha Charts
48-Hour Strategy Build · Sample report
Our own strategy
run through the same build as a paid one
Tested 14 Nov 2026
ICT power of three on NQ
The Asia range, a London sweep of one side, a trade the other way at 09:30 New York, the target the Asia range's far side. 1 micro (MNQ), 5-minute bars, 15 Nov 2021 to 22 Oct 2026.
Answer: Weak evidence

On the years nobody chose anything on, it made +$3,195 on 338 trades, and entering at a random time on the same days did as well only 3.6%-4.0% of the time. It stops at weak evidence: MES, the deflated Sharpe and the evaluation fail.

Net profit by day, 1 micro, after costs15 Nov 2021 to 22 Oct 2026; the shaded band is where its settings were chosen, so it is never used for the answer
settings chosen herelockeduntouched years$0k$2k$4k$6k20222023202420252026
Out-of-sample trades
338
the untouched years and the locked months
Out-of-sample net, 1 micro
+$3,195
after costs; profit factor 1.18
Untouched years
+$1,659
291 trades, 15 Nov 2021 to 22 Oct 2024
Luck did as well
3.6%-4.0%
of 6,000 runs with random entry times
Why this report is public

This is a 48-Hour Strategy Build run on a strategy of our own, so you can read every page before you send us yours. The test plan was written down and sealed before any result, and every test that failed is printed. 6 of the 9 checks pass.

Past results on historical data, with costs taken off. They don't forecast anything and they aren't advice to trade, or about what size to trade. Futures can lose more than an account holds.
Alpha Charts · 48-Hour Strategy Build · Sample reportSummary
Summary

On years nobody chose anything on, the power of three made +$3,195 on 1 micro and beat random entry times in about 96 runs of 100, but the gain is small and 3 checks fail

Answer: Weak evidence

Its trades on unseen bars beat chance, and it held up with costs doubled and with every nearby setting. It stops short of evidence of an edge: once the tries behind its settings are counted, the deflated Sharpe is 0.52, under the 0.90 bar, and it lost money on the S&P (MES).

  1. It trades exactly as tested. Our tester ran the script on the same 349,780 bars, and all 458 of its trades matched the research engine trade for trade.
  2. The untouched years: +$1,659 on 291 trades, 15 Nov 2021 to 22 Oct 2024, before its settings were chosen. The locked months: +$1,536 on 47 trades. Together, out of sample: +$3,195, profit factor 1.18.
  3. Luck did as well 3.6%-4.0% of the time. Entering at a random time on the same days, same side, same stop and target, matched it in about 4 runs of 100.
  4. Costs doubled: +$2,528. All 54 nearby settings made money out of sample.
  5. What fails: the deflated Sharpe (0.52, counting 100 tries), MES (−$524 over two years), and a typical 50K evaluation, which it doesn't pass more often than it fails at any size tested.
  6. It is small. About 8 trades a month and an average out-of-sample trade of +$9 at 1 micro.

What was tested. Our library's power of three, exactly as published on 7 Nov 2026: its rules, its settings, nothing changed.

How. 5-minute bars, 15 Nov 2021 to 22 Oct 2026 (1,277 trading days). After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

What it is not. A forecast, a recommendation, or a size to trade.

Contents

1. The answer1
2. Summary2
3. It trades as tested3
4. Where the settings came from4
5. The untouched years5
6. Against luck6
7. The nine checks7
8. An evaluation8
9. A normal month9
10. Three real days10
11. What would change the answer11
A. Glossary12
B. Disclosures13
C. The script14
ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20262
Alpha Charts · 48-Hour Strategy Build · Sample report3 · It trades as tested
3 · It trades as tested

The script and the research engine agree on all 458 trades, so every number in this report is the script's own

The rules, exactly as the script has them

  • Asia: the high and low from 20:00 to midnight New York.
  • London: from 02:00 to 05:00, price takes out one side of the Asia range. If it takes out both, there is no trade that day.
  • New York: at the close of the 09:30 bar the trade goes the other way: long after a sweep of the Asia low, short after a sweep of its high. Filled at the next bar's open.
  • Stop a tick beyond the night's extreme on the swept side; target the Asia range's far side. Flat by 16:00.
  • Filters: no trade if the stop is closer than 0.05 or wider than 0.4 of the daily average range, or if the Asia range is wider than 0.3 of it.

The trade-for-trade check

Before any result was used, our tester ran the script on the same 349,780 bars and its trades were compared with the research engine's: entry and exit time, side, both prices and the contracts. 458 of 458 match.

Why this page comes first. A test of a script that trades differently on the chart proves nothing about the chart. The check runs before any result is read.

Costs in every result: $0.61 a contract each side, 1 tick of slippage on market and stop fills, none on the target.

The full script is Appendix C.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20263
Alpha Charts · 48-Hour Strategy Build · Sample report4 · Where the settings came from
4 · Where the settings came from

Its settings were chosen on 16 months in the middle; the answer comes only from the years before them and the months after

Exhibit 1Net profit by day, 1 micro, after costs15 Nov 2021 to 22 Oct 2026; shaded: the months its settings were chosen on
settings chosen herelockeduntouched years$0k$2k$4k$6k20222023202420252026

458 trades in all. After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

PeriodDatesTradesNetWinnersProfit factorRole
The untouched years15 Nov 2021 to 22 Oct 2024291+$1,65950%1.12Nothing was chosen on these. The main test.
Settings chosen here23 Oct 2024 to 23 Feb 2026120+$3,29953%1.51The library tuned its filters on these months. Never used for the answer.
The locked months24 Feb 2026 to 22 Oct 202647+$1,53657%1.47One run, after the settings were fixed.
Out of samplethe first and the last together338+$3,19551%1.18The answer's set.

The library's own page priced the locked months with different cost settings; here every number carries the build's costs.

Why the split matters. Settings fit to months always look good on those months. Only bars they were not fit to can say anything.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20264
Alpha Charts · 48-Hour Strategy Build · Sample report5 · The untouched years
5 · The untouched years

Nobody had looked at 15 Nov 2021 to 22 Oct 2024 when the settings were chosen; on those years it made +$1,659

Exhibit 2Net profit by month, 1 micro, after costsNov 2021 to Oct 2024
−$1,000$0$1,000202220232024

After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

YearTradesNetWinnersProfit factorDeepest drop
2021 (from 15 Nov)5+$20080%2.14$176
2022103−$13547%0.98$2,170
2023103+$1,25552%1.32$952
2024 (to 22 Oct)80+$33850%1.09$1,029

Check 3 passes: the untouched years are above zero on their own.

2022 was flat (−$135). The deepest drop of the five years, $2,170 from 4 Aug 2022 to 7 Nov 2022, came in it and took until 5 Sep 2023 to make back.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20265
Alpha Charts · 48-Hour Strategy Build · Sample report6 · Against luck
6 · Against luck

Entering at a random time on the same days did as well only 3.6%-4.0% of the time

Exhibit 3What random entry times made out of sample, against the strategy2,000 runs (seed 11): the untouched years (15 Nov 2021 to 22 Oct 2024) and the locked months (24 Feb 2026 to 22 Oct 2026); the same days, side, stop and target, entered at a random 5-minute close from 09:30 to 15:50; dark bars did at least as well
−$5k−$2.5k$0k$2.5k$5kthe strategy +$3,195

After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill. Three seeds, 2,000 runs each.

SeedRunsAs good as the strategyMiddle runTop tenth from
112,0004.0%+$806+$2,542
122,0004.0%+$732+$2,497
132,0003.6%+$689+$2,482

What this tests. If the 09:30 entry after a London sweep carries information, it should beat entering at a random time with everything else the same. Check 6 needs random entries as good in under 10% of runs; they are as good in 3.6%-4.0%. Check 6 passes.

Random entries still made money (a middle run of +$806): the stop and target levels themselves carry part of the result.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20266
Alpha Charts · 48-Hour Strategy Build · Sample report7 · The nine checks
7 · The nine checks

6 of the 9 checks pass; MES, the deflated Sharpe and the evaluation fail

#Check, as the plan wrote it before any runResultVerdict
1It runs and trades458 tradesPasses
2Out of sample above zero+$3,195, 338 tradesPasses
3The untouched years alone above zero+$1,659, 291 tradesPasses
4Neighbours: 60% of 54 nearby settings above zero54 of 54 above zeroPasses
5Costs doubled, out of sample still above zero+$2,528 at $1.22 a side and 2 ticksPasses
6Random entries as good in under 10% of runs3.6%-4.0% of 6,000 runsPasses
7The same rules on MES above zero (reported only)−$524, 23 Oct 2024 to 22 Oct 2026Fails
8Deflated Sharpe 0.90 or more, counting 100 tries0.52Fails
9A typical 50K evaluation: passes more often than it fails0.6% pass, 1.2% fail at 1 microFails

Neighbouring settings (check 4), shown and never used to choose

Entry at 09:30 or 09:45, and each of the three filters at its value and 0.05 either side: 54 settings, out of sample. Lowest +$2,217, middle +$5,185, highest +$7,311.

How the answer is set

Evidence of an edge: checks 2, 3, 5, 6 and 8 all pass. Weak evidence: 2, 3 and 5 pass and random entries are as good in under 20% of runs. Otherwise Unproven. Here 2, 3, 5 and 6 pass and 8 fails: Weak evidence.

Deflated Sharpe asks how likely the result is to beat zero once the number of settings tried is counted. No log of the library's search survives, so the plan counts 100 tries; the spread between tries is taken from the 54 neighbours. It scores 0.52.

MES has 23 Oct 2024 to 22 Oct 2026 on file, so check 7 covers two years, and part of them is the months the settings were chosen on.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20267
Alpha Charts · 48-Hour Strategy Build · Sample report8 · An evaluation
8 · An evaluation

On a typical 50K evaluation it passed more often than random entries at every size, but never more often than it failed

MicrosPassesFailsNeither in 120 daysMiddle days to passRandom: passRandom: fail
10.6%1.2%98.3%1030.0%1.0%
218.0%25.8%56.2%846.1%25.6%
335.7%47.8%16.5%6217.4%56.1%

The evaluation simulated

  • A $3,000 profit target; a $2,000 end-of-day trailing drawdown that stops rising at the starting balance; a $1,000 daily loss limit, read on each day's closed result.
  • 10,000 attempts at each size, each built from the out-of-sample days in 5-day blocks, drawn at random, until the target, a breach, or 120 trading days.
  • Beside it, the same attempts built from one run of random entry times (seed 11).

Check 9 fails: it needs passes to outnumber fails. At 1 micro most attempts reach neither the target nor a breach in 120 days: the strategy is too small at that size for a $3,000 target.

No size is picked here. The table shows what 1, 2 and 3 micros did, each beside random entries. The size you trade is your decision.

Your firm's rules differ; a paid build runs this on yours.

Intraday drawdown is not simulated here: a day is judged on its close.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20268
Alpha Charts · 48-Hour Strategy Build · Sample report9 · A normal month
9 · A normal month

A normal month is about 8 trades and a small result; 32 of 60 months made money

Exhibit 4Net profit by month, 1 micro, after costsNov 2021 to Oct 2026, all five years
−$1,000$0$1,00020222023202420252026

After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

A monthValue
Trades a month7.6
Winners52%
Average winner, average loser+$129, −$108
The middle month+$82
The best month+$1,211 Apr 2022
The worst month−$1,015 Oct 2022
Longest run of losing trades10 5 Oct 2022 to 7 Nov 2022
Deepest drop−$2,170 4 Aug 2022 to 7 Nov 2022

What living with it is like. About half the trades win, and a winner (+$129 on average) is a little larger than a loser (−$108). The middle month is +$82 at 1 micro.

How trades end: 230 at the target, 213 at the stop, 15 flat by the close.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 20269
Alpha Charts · 48-Hour Strategy Build · Sample report10 · Three real days
10 · Three real days

Three days from the locked months: the middle winner, the middle loser, and a day it sat out

Exhibit 5A winner: 14 Aug 20265-minute candles, 09:00 to 16:00 New York; shaded: the Asia range; red: the stop; green: the target
30,10030,20009:0010:0011:0012:0013:0014:0015:00

Short at 30205.75, 09:35; out at 30124.25 on the target: +$162

Exhibit 6A loser: 2 Oct 2026The same view
30,80031,00031,20009:0010:0011:0012:0013:0014:0015:00

Short at 31145.25, 09:35; out at 31224.00 on the stop: −$159

Exhibit 7A day it sat out: 11 Jun 2026The same view
28,50029,00029,50009:0010:0011:0012:0013:0014:0015:00

London took out the Asia high, so the day's trade would have been a short, but the Asia range was wider than 0.3 of the daily average range, so there was no trade.

Why the middle ones. The best and worst days are rare by definition; the middle winner and loser are what most days look like.

Days without a trade: London took both sides of the Asia range or neither, or one of the three filters ruled the night out.

Entries and exits: the filled dot is the entry, the open dot the exit.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202610
Alpha Charts · 48-Hour Strategy Build · Sample report11 · What would change the answer
11 · What would change the answer

New months with the rules unchanged are the only way to evidence of an edge; re-tuning would start the count again

  • Stronger: if new months, run with the script exactly as it is, add up above zero and still beat random entries, the answer can move. The test is re-run on the new trades alone.
  • Weaker: a drop deeper than $2,170 (4 Aug 2022 to 7 Nov 2022) would be outside anything in five years.
  • Not a way forward: changing the settings to make these years look better. Every nearby setting already made money (check 4); a better-looking past would not be new evidence.

Running it exactly as tested

  • MNQ on 5-minute bars, the session's full hours, New York time.
  • The script's inputs as they are: entry 09:30, target the Asia range, the three filters at 0.05, 0.4 and 0.3.
  • Results here are at 1 micro with the costs above; the size you trade is your decision.

What a paid build adds. Your script instead of ours, matched trade for trade on your own chart, three versions of yours tested and counted, and your firm's evaluation rules instead of the typical ones on page 8.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202611
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix A · Glossary
Appendix A · Glossary

Glossary

The Asia range. The highest high and lowest low from 20:00 to midnight New York.

A London sweep. Price trading beyond one side of the Asia range between 02:00 and 05:00 New York.

Daily average range. The 14-day average of each session's true range, updated at the session's close.

Net. Profit after costs, in dollars, at 1 micro (MNQ, $2 a point) unless a line says otherwise.

Costs. $0.61 a contract each side, plus 1 tick ($0.50 on MNQ) of slippage on every market and stop fill; none on a target.

Winners. The share of trades that made money after costs.

Profit factor. Money made on winners divided by money lost on losers.

Deepest drop. The largest fall from a high point of the running total, day by day.

The untouched years. 15 Nov 2021 to 22 Oct 2024: bars nobody had looked at when the settings were chosen.

The locked months. 24 Feb 2026 to 22 Oct 2026: run once, after the settings were fixed.

Out of sample. The untouched years and the locked months together.

Random entries. The same days, side, stop and target, entered at a random 5-minute close from 09:30 to 15:50 instead of at 09:30.

Deflated Sharpe. The probability that the result's Sharpe ratio is above zero once the number of settings tried is counted (Bailey and López de Prado).

Block bootstrap. New sequences of days built by drawing 5-day blocks of the strategy's own days at random, to simulate many evaluations.

Weak evidence. Out of sample above zero, with costs doubled too, and random entries as good in under 20% of runs, without passing every check that evidence of an edge needs.

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202612
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix B · Disclosures
Appendix B · Disclosures

Disclosures

ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202613
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix C · The script
Appendix C · The script
power_of_three.pine, exactly as tested (106 lines). The web version has the file beside it.
//@version=6
// Suggested timeframe: 5-minute
strategy("ICT power of three (Asia range, London sweep, New York 9:30)", overlay=true, initial_capital=50000, default_qty_type=strategy.fixed, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=2.5, slippage=1, margin_long=0, margin_short=0)

// Accumulation: the Asia range, 20:00 to 00:00 New York. Manipulation: London, 02:00 to 05:00,
// takes out one side of it. Distribution: at the New York entry time the trade goes the other way,
// long after a sweep of the Asia low and short after a sweep of its high (both sides taken: no
// trade). The stop sits a tick beyond the night's extreme on the swept side; the target is the far
// side of the Asia range, or a fixed multiple of the risk. Flat at 15:55 New York.
entryAt = input.int(930, "Entry time (HHMM, New York)")
tgtMode = input.string("Asia range", "Target", options=["Asia range", "1R", "2R", "3R"])
// Fixes from the tuning-month diagnosis; the defaults are the optimised pick (all 0 / false = the textbook)
minRiskAtr = input.float(0.05, "Skip stops closer than x daily ATR (0 = off)", minval=0, step=0.05)
maxRiskAtr = input.float(0.4, "Skip stops wider than x daily ATR (0 = off)", minval=0, step=0.05)
maxAsiaAtr = input.float(0.3, "Skip Asia ranges wider than x daily ATR (0 = off)", minval=0, step=0.05)
midOpenRule = input.bool(false, "Longs only below, shorts only above the midnight open")

nyMins = hour(time, "America/New_York") * 60 + minute(time, "America/New_York")
entryMins = math.floor(entryAt / 100) * 60 + entryAt % 100
inAsia = nyMins >= 1200
inLondon = nyMins >= 120 and nyMins < 300

var float asiaHi = na
var float asiaLo = na
var bool tookLow = false
var bool tookHigh = false
var float nightLo = na
var float nightHi = na
var bool armed = false
var float midOpen = na

// The daily ATR (14, Wilder) from each futures session's bars, set on the session's last bar, so a morning only
// reads days already closed
var float dHigh = na
var float dLow = na
var float dPrevClose = na
var float dAtr = na
var int dCount = 0
dHigh := na(dHigh) ? high : math.max(dHigh, high)
dLow := na(dLow) ? low : math.min(dLow, low)
if session.islastbar
    tr = na(dPrevClose) ? dHigh - dLow : math.max(dHigh - dLow, math.abs(dHigh - dPrevClose), math.abs(dLow - dPrevClose))
    dAtr := na(dAtr) ? tr : (dAtr * 13 + tr) / 14
    dPrevClose := close
    dCount := dCount + 1
    dHigh := na
    dLow := na
warm = dCount >= 14 and not na(dAtr)

if inAsia and not inAsia[1]
    asiaHi := high
    asiaLo := low
    tookLow := false
    tookHigh := false
    nightLo := low
    nightHi := high
    armed := true
    midOpen := na
else if inAsia
    asiaHi := math.max(asiaHi, high)
    asiaLo := math.min(asiaLo, low)
    nightLo := math.min(nightLo, low)
ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202614
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix C · The script (continued)
Appendix C · The script, continued
    nightHi := math.max(nightHi, high)
if not inAsia and nyMins < entryMins and not na(asiaHi)
    nightLo := math.min(nightLo, low)
    nightHi := math.max(nightHi, high)
if not inAsia and nyMins < 120 and na(midOpen) and not na(asiaHi)
    midOpen := open
if inLondon and not na(asiaLo)
    if low < asiaLo
        tookLow := true
    if high > asiaHi
        tookHigh := true

atEntry = nyMins >= entryMins and nyMins[1] < entryMins
// the fixes, checked at the entry bar: the stop's distance and the Asia range against the daily ATR, and where
// price sits against the midnight open (ICT: buy in discount, sell in premium)
longRisk = close - (nightLo - syminfo.mintick)
shortRisk = nightHi + syminfo.mintick - close
asiaOk = maxAsiaAtr == 0 or (warm and asiaHi - asiaLo <= maxAsiaAtr * dAtr)
longOk = (minRiskAtr == 0 or (warm and longRisk >= minRiskAtr * dAtr)) and (maxRiskAtr == 0 or (warm and longRisk <= maxRiskAtr * dAtr)) and asiaOk and (not midOpenRule or (not na(midOpen) and close < midOpen))
shortOk = (minRiskAtr == 0 or (warm and shortRisk >= minRiskAtr * dAtr)) and (maxRiskAtr == 0 or (warm and shortRisk <= maxRiskAtr * dAtr)) and asiaOk and (not midOpenRule or (not na(midOpen) and close > midOpen))
if atEntry and armed and strategy.position_size == 0
    armed := false
    if tookLow and not tookHigh
        stp = nightLo - syminfo.mintick
        risk = close - stp
        tgt = tgtMode == "Asia range" ? asiaHi : close + str.tonumber(str.replace(tgtMode, "R", "")) * risk
        if risk > 0 and tgt > close and longOk
            strategy.entry("Long", strategy.long)
            strategy.exit("Long exit", "Long", stop=stp, limit=tgt)
    else if tookHigh and not tookLow
        stp = nightHi + syminfo.mintick
        risk = stp - close
        tgt = tgtMode == "Asia range" ? asiaLo : close - str.tonumber(str.replace(tgtMode, "R", "")) * risk
        if risk > 0 and tgt < close and shortOk
            strategy.entry("Short", strategy.short)
            strategy.exit("Short exit", "Short", stop=stp, limit=tgt)

if strategy.position_size != 0 and nyMins >= 955 and nyMins < 965
    strategy.close_all(comment="Flat by the close")

plot(asiaHi, "Asia high", color.new(#A3A39E, 20), style=plot.style_linebr)
plot(asiaLo, "Asia low", color.new(#A3A39E, 20), style=plot.style_linebr)
bgcolor(inLondon ? color.new(#E3A008, 92) : na, title="London")
ICT power of three on NQ · 1 micro · 15 Nov 2021 to 22 Oct 202615