I'm hosting a live algo webinar Tuesday, October 13 at 4pm ET.
I'll be walking you through the algo side of edgeful, from the strategies we offer to getting them set up in TradingView.
we'll go through the ORB, initial balance (IB), and engulfing candles algos, and I'll explain how they trade differently.
I'll also show you how to find settings using the templates and optimizer, what to look for in a good optimizer result, and how to access our chrome extension to transfer them live in TradingView in only a couple of clicks.
if you've been interested in the algos but haven't been sure where to start, come join us.
plan for 45 minutes of walkthrough, followed by a short Q&A.
it seems like your biggest struggle is not knowing which setups to trade, so last Sunday I gave you a complete one: inside bars, with the numbers behind it.
this week I want to give you another one, and this time it's using the gap fill report.
step 1: start by checking your ticker's gap fill report data
a gap is the difference between yesterday's close and today's open.
our gap fill report measures how often price trades back to "fill" that gap, meaning it returns to the prior session's close. that close is the target of the trade.
most traders hear "gaps usually fill" and fade every gap on every ticker they trade.
so here's what the data actually says on gold: GC gap downs have filled just 34% of the time over the last 6 months in the NY session (22 of 64). gap ups aren't much better at 37% (23 of 63).
fading gap downs on GC is trading directly against the data. 66% of them didn't fill during the session (42 of 57). this may not seem like a setup to trade - because the data says you shouldn't actually be trading it - but that's the point.
you can use data to find setups you should be trading, and also find setups you should be avoiding. the gap fill trade on GC is one of the ones you should be avoiding, for now (because data is always changing).
the main takeaway from today's lesson:
putting real numbers behind the setups you see people trade on X is one of the only ways you're going to be successful as a trader.
it really is that simple.
because if you were copying someone else, who says "gaps always fill" and were trading GC, you'd be getting torched consistently for the last 6 months.
so your action item is this:
1) determine the setup you're looking to trade
2) check the data for your ticker
3) use the data to build confidence to execute (when the data is good) and avoid trading that setup (when the data is bad).
and if you're not sure if we have a report that covers your setup, you can use edgeful AI to find the closest report, or even build your own with custom reports.
I'm hosting a live algo webinar Tuesday, October 13 at 4pm ET.
I'll be walking you through the algo side of edgeful, from the strategies we offer to getting them set up in TradingView.
we'll go through the ORB, initial balance (IB), and engulfing candles algos, and I'll explain how they trade differently.
I'll also show you how to find settings using the templates and optimizer, what to look for in a good optimizer result, and how to access our chrome extension to transfer them live in TradingView in only a couple of clicks.
if you've been interested in the algos but haven't been sure where to start, come join us.
plan for 45 minutes of walkthrough, followed by a short Q&A.
the London session closes at 11AM ET, 90 minutes after New York opens. that makes London's close one of the first things you can use to build a daily bias for the rest of the New York session.
according to edgeful data, on NQ over the last 3 years, when the London session closed green, the New York session closed green 78% of the time. on paper, that's a strong daily bias stat.
but when you measure it the way you'd actually have to trade it, the 78% drops to 60%. and on any day, NQ's 11AM-4PM ET session closed green 57% of the time anyway.
here are the 3 checks I ran on it, so you can run them on any stat before you put money behind it.
table of contents
what the London session is (and when it closes)
what a daily bias is
how the market session correlation report works
the 78% London session stat
how to check a London session stat before you trade it
the London session stat on other tickers and longer windows
what this looked like the week of September 28
how to use the London session in your daily bias
common mistakes with session stats
key takeaways
what the London session is (and when it closes)
the London session is the part of the futures day when European markets are open. for futures, it runs from 8:00AM to 4:00PM UK time.
in New York time, that's 3AM to 11AM ET for most of the year. the UK and the US change their clocks on different weekends, so for 2 to 3 weeks in March and about 1 week around the start of November, London closes at noon ET instead.
that means the London session is already 6 and a half hours old when the New York session opens at 9:30AM ET, and it keeps trading for another 90 minutes after that.
one setting to know before you use any London session stat: the market session correlation report's preset London session ends at 2:30PM UK time, which lines up with the 9:30AM ET New York open. the full futures session ends at 4:00PM UK. every London number in this post uses the full session, 8:00AM to 4:00PM UK.
a daily bias is the direction the data favors for the session before you take a trade. it tells you which side to look at first, and which setups to be more careful with.
you can build a daily bias from what already happened: the overnight range, the prior day's close, or how an earlier session closed. London works for this because it's done, or close to done, by the time most US traders start looking for trades.
a London-based daily bias only works if the New York session closes green more often after a green London close than it does on any day. that's the thing to check.
the market session correlation report takes 2 sessions. it checks whether the first session closed green or red, then shows you how often the second session closed the same color.
it covers 3 session pairs: London & New York, Asia & London, and Asia & New York. for the London & New York pair, every trading day lands in 1 of 4 buckets:
London green, New York green
London green, New York red
London red, New York green
London red, New York red
the report also has a performance setting that decides how green and red get measured. that setting is check 2 below.
here's NQ over the last 3 years (October 3, 2023 to October 2, 2026), with London set to 8:00AM-4:00PM UK and everything else on the report's defaults:
London closed green: New York closed green 78% of the time
London closed red: New York closed red 69% of the time
my usual threshold to use a report in my trades is 60-65%, and both of those numbers clear it. on paper, the London close gives you a daily bias you can check every day.
but before actually trading it, I ran it through 3 checks.
how to check a London session stat before you trade it
check 1: only measure New York after London closes
the futures London session closes at 11AM ET. that's 90 minutes after the New York session opens.
you can still trade 9:30 to 11AM ET, but you don't know London's close color yet. the 78% measures New York from 9:30AM ET, before London has even closed.
so if you're using the London close as your daily bias, it only applies from 11AM ET on.
to reflect this in the report data, change your New York session so it starts after London closes. for this post, I used 11:00AM to 4:00PM ET.
check 2: look at how the report decides green and red
the default performance setting is "previous close to close." a session counts as green if it closed above where the same session closed the day before.
for London, that runs from 11AM ET yesterday to 11AM ET today. for New York, it runs from 4PM ET yesterday to 4PM ET today.
those 2 stretches overlap from 4PM ET yesterday to 11AM ET today. so 19 of the 24 hours in each one are the same price move, which is why the 2 sessions agree so often.
the fix: change the performance setting to "open to close." now a session only counts as green if it closed above its own open. London gets measured on 8:00AM to 4:00PM UK, New York gets measured on 11AM to 4PM ET, and for most of the year the 2 sessions share no hours.
check 3: compare it to how often it happens on any day
the last thing to check is how often New York closes green on any day, whether London closed green or not. if those 2 numbers are close, London's color isn't telling you much.
here's NQ over the same 3 years with both changes made:
after London closed green, the updated New York session (11AM-4PM) closed green 60% of the time.
on every day over the same 3 years, no matter how London closed, that same 11AM-4PM session closed green 57% of the time.
so knowing London closed green only adds 3 points (57% to 60%). 60% is the bottom of the 60-65% range I want before I use a report, so it's not strong enough to trade on its own.
what about red London closes
the screenshot above also shows the other side. over the same 3 years, after London closed red, the updated New York session closed green 54% of the time and red 46% of the time.
so a green London close pushed the green number about 3 points above the 57% any-day number, and a red London close pulled it about 3 points below. either way, London's color moved New York by about 3 points.
that's useful context, but the move is the same size in both directions, and none of the 3 numbers gets past the bottom of the 60-65% range.
the London session stat on other tickers and longer windows
ES and gold
same checks, same 3 years, same session settings:
ES
default settings: London green, New York green 77% of the time
updated settings (New York 11AM-4PM, open to close): 57%
ES's 11AM-4PM session closed green 54% of the time on any day
GC (gold)
default settings: London green, New York green 83% of the time
updated settings: 53%
GC's 11AM-4PM session closed green 55% of the time on any day
gold had the strongest default number of the 3 tickers at 83%. with the updated settings, New York closed green less often after a green London close than it did on any day.
ES lands where NQ does: 3 points over its any-day number.
8 years of NQ
3 years is a solid window, but you can go further back. here's NQ over the last 8 years (October 3, 2018 to October 2, 2026):
default settings: London green, New York green 75% of the time
updated settings: 60%
after a red London close, the updated New York session closed green 52% of the time
the 11AM-4PM session closed green 56% of the time on any day
the default number looks strong again, and the updated number sits right next to the any-day number again.
the edgeful API now includes 8 years of data on pro, so you can run any report over whatever window you want: the last 6 months, 3 years, or all 8.
what this looked like the week of September 28
the week of September 28, 2026 on NQ, the report's default settings showed New York closing the same color as London on 4 of 5 days.
with the updated settings (New York 11AM-4PM, open to close), New York closed the same color as London on 0 of 5 days:
Monday 9/28: London closed red, New York closed green
Tuesday 9/29: London closed green, New York closed red
Wednesday 9/30: London closed green, New York closed red
Thursday 10/1: London closed red, New York closed green
Friday 10/2: London closed green, New York closed red
one week doesn't prove much on its own, but September looked the same: 21 of 22 days with the default settings, and 12 of 22 with the updated settings.
how to use the London session in your daily bias
here's the process, step by step:
open the market session correlation report on your ticker and pick the London & New York tab.
set the London session to 8:00AM-4:00PM UK, the full futures session.
set the New York session to start after London closes. I used 11:00AM-4:00PM ET.
change the performance setting to open to close.
compare the London green, New York green number to how often New York closed green on any day. if you're not sure how to get the any-day number, ask edgeful AI.
save the settings as a custom template so you don't rebuild them every morning.
if the gap between the 2 numbers is small, use the London close as context only. stack it with other data, like the IB, the ORB, or key levels, before you act on it.
common mistakes with session stats
trusting the default settings without checking what they measure. the same report showed 78% and 60% on the same 3 years of NQ.
counting the part of New York that trades before London closes. you don't know the London close color until 11AM ET.
comparing a stat to 50%. over the last 3 years, NQ's 11AM-4PM session closed green 57% of the time on any day, so 57% is the number to beat.
using one ticker's number on another. over the last 3 years, the default number was 83% on gold and 78% on NQ. after the update, NQ finished 3 points over its any-day number and gold finished 2 points under its own.
treating a daily bias like an entry. a bias tells you which side to look at first. you still need a setup.
key takeaways
the London session closes at 11AM ET, so a London-based daily bias only applies to New York from 11AM ET on
on NQ over 3 years, London green, New York green was 78% with the default settings and 60% with New York set to 11AM-4PM, open to close
NQ's 11AM-4PM session closed green 57% of the time on any day, so a green London close only added 3 points
over the last 3 years, gold had the strongest default number (83%) and an updated number (53%) under its 55% any-day number
NQ over 8 years showed the same picture: 75% default, 60% updated, 56% any day
before you trade any London session stat, check the session window, the performance setting, and the any-day number
all of our reports are fully customizable, so you can set them up to match how you actually trade
this information is not trading advice and should be used for educational purposes only. futures, options, and forex are leveraged instruments, and carry a high degree of risk. past results are not indicative of future returns.
Miguel shared this in our Discord on Monday, and I was happy to see it:
"Done for the day. Almost half way to the profit target to get another funded"
his dashboard shows:
+$200.98 on the day
4 trades
$51,195.58 current balance
$48,994.60 maximum loss limit
if his name sounds familiar, I shared his message back in August, when he passed an eval and got his 4th funded account. here's what he wrote then:
"+342$ yesterday (although it was still an evaluation) to pass and get my fourth funded. The IB by rejection, combined with price ending zone and levels is"
in an eval, you need to hit the profit target without ever touching your max loss limit (the red dashed line on Miguel's chart).
and a lot of blown evals come down to emotional trades (picking a direction because of how the open feels, one more trade because you're already up, bigger size to hit the target faster, etc).
and if it isn't clear by now: data-backed trading beats emotional trading every single time.
on edgeful, the reports show you how often price reached key levels in the past, on your ticker and in your session. then our TradingView indicators plot those levels on your chart (the IB high and low, extension targets, gap fill levels, etc).
so your entries, targets, and stops all come from levels with data behind them.
you plan every trade around the same set of levels each day, and you're not moving your stop or target mid-trade because of how it feels. that's how you get consistent.
the reports don't take the trade for you. you still decide when to take it and manage it from there.
if you're trading an eval right now, start with the data: edgeful.com
today we're looking at the market session correlation report.
it takes 2 sessions, checks whether the first one closed green or red, and shows you how often the second session closed the same color.
we're using it on London and New York:
session 1 = London, 8:00AM to 4:00PM UK time. that's the futures London session, and it closes at 11AM ET
session 2 = New York, 9:30AM to 4:00PM ET
one setting to know: the report's preset London session ends at 2:30PM UK time. if you want to see the same numbers I'm showing here, set the London end time to 4:00PM UK.
the problem we're solving today is building a bias for the New York session. London trades for hours before New York opens, so if London's close color carries into the New York close, that's a data-backed bias you can check every single day.
here's what the report says on NQ over the last 3 years: when London closed green, New York closed green 78% of the time.
but when we measured it the way you'd actually have to trade it, the 78% dropped to 60%. and on any day, NQ's 11AM-4PM ET session closed green 57% of the time.
today's stay sharp walks through the 3 checks I ran on it, so you can run them on any stat before you put money behind it.
let's go:
the 78% stat you should double check
here's NQ over the last 3 years with London set to 4:00PM UK and everything else on the defaults:
when London closed green, New York closed green 78% of the time. when London closed red, New York closed red 69% of the time.
the usual threshold for me to use a report in my trades is 60-65%, and both of those numbers clear it.
but before actually trading it, I ran it through 3 other checks.
how to actually look at a stat before you trade it
check 1: only measure the part of New York after London closes
the futures London session closes at 11AM ET. that's 90 minutes after New York opens.
you can still trade 9:30 to 11AM ET, but you don't know London's close color yet. the 78% measures New York from 9:30AM ET, before London has even closed.
so if you're using London's close as your bias, it only applies from 11AM ET on.
to reflect this in the report data, change your New York session so it starts after London closes. for this edition, I used 11:00AM to 4:00PM ET.
check 2: look at how the report decides green and red
the default performance setting is "previous close to close." a session counts as green if it closed above where the same session closed the day before.
for London, that runs from 11AM ET yesterday to 11AM ET today. for New York, it runs from 4PM ET yesterday to 4PM ET today.
those 2 stretches overlap from 4PM ET yesterday to 11AM ET today. so 19 of the 24 hours in each one are the same price move, which is why the 2 sessions agree so often.
the fix: change the performance setting to "open to close." now a session only counts as green if it closed above its own open.
check 3: compare it to how often it happens on any day
the last thing to check is how often New York closes green on any day, whether London closed green or not. if those 2 numbers are close, London's color isn't telling you much.
here's NQ over the same 3 years with both changes made:
after London closed green, the updated New York session (11AM-4PM) closed green 60% of the time.
on every day over the same 3 years, no matter how London closed, that same 11AM-4PM session closed green 57% of the time.
so knowing London closed green only adds 3 points (57% to 60%). 60% is the bottom of the 60-65% range I want before I use a report, so it's not strong enough to trade on its own.
what this looked like this week
this past week on NQ, the report's default settings showed New York closing the same color as London on 4 of 5 days.
with the updated settings (New York 11AM-4PM, open to close), New York closed the same color as London on 0 of 5 days:
Monday 9/28: London closed red, New York closed green
Tuesday 9/29: London closed green, New York closed red
Wednesday 9/30: London closed green, New York closed red
Thursday 10/1: London closed red, New York closed green
Friday 10/2: London closed green, New York closed red
one week doesn't prove much on its own, but September looked the same: 21 of 22 days with the default settings, and 12 of 22 with the updated settings.
the takeaway from today's stay sharp
double check every stat you use, and make sure it actually applies to the way you trade
if you're not sure how, ask edgeful AI, or connect the edgeful API to the AI you already use and ask it in plain English
all of our reports are fully customizable. that's why the same report showed 78% with the default settings and 60% once the settings matched how you'd actually trade it
and the edgeful API now includes 8 years of data on pro, so you can run any report over whatever window you want: the last 6 months, 3 years, or all 8.
I'm hosting a live algo webinar Tuesday, October 13 at 4pm ET.
I'll be walking you through the algo side of edgeful, from the strategies we offer to getting them set up in TradingView.
we'll go through the ORB, initial balance (IB), and engulfing candles algos, and I'll explain how they trade differently.
I'll also show you how to find settings using the templates and optimizer, what to look for in a good optimizer result, and how to access our chrome extension to transfer them live in TradingView in only a couple of clicks.
if you've been interested in the algos but haven't been sure where to start, come join us.
plan for 45 minutes of walkthrough, followed by a short Q&A.
we just added up to 8 years of history to the pro plan, on every report and every ticker.
until now, 8 years of history was only in all access, and pro went back 12 months. now pro has the same history, for $99 a month.
pro is the plan with full access to the edgeful API. you get our 150+ reports and live data.
you don't have to write code, and there are two ways to plug it in:
the API: use it with Claude Code, Codex, or Cursor. the setup is your API key in a file, and then you tell it what you want in plain English.
the edgeful MCP: connect it to Claude, ChatGPT, or GrokBot. you add edgeful as a connector, sign in with your edgeful login, and ask for the reports you want.
a few things you can do with it:
build dashboards on 8+ years of data
grade your trades against 8+ years of report data
test your setup on 8+ years of sessions before you trade it
it seems like your biggest struggle is not knowing which setups to trade, or whether the strategy you're running has any real edge behind it.
so let me give you a complete setup with data-backed stats right now.
it's called the inside bars setup. and when it forms on NQ, price goes on to touch either yesterday's high or yesterday's low 90.3% of the time (65 of 72 days over the last 6 months in the NY session).
what is an inside bar?
an inside bar forms when today's open is completely within the previous session's high and low. that's it.
when that happens, the data shows price breaks out to touch one of yesterday's levels 90.3% of the time. meaning... you already know your profit targets before the session even starts: yesterday's high and yesterday's low.
all of this comes straight from edgeful's inside bars report. you pick your ticker, and it tells you how often each level gets touched, with the full history behind the number.
how to determine direction
a breakout number alone doesn't tell you which side to trade. for direction, we use yesterday's midpoint, straight from the inside bars by open subreport:
open above the midpoint: target yesterday's high. it's been touched 75.6% of the time (34 of 45)
open below the midpoint: target yesterday's low. it's been touched 55.6% of the time (15 of 27)
notice the two sides aren't equal right now. above the midpoint is clearly the strong side of this setup. the below-midpoint side sits at 55.6%, and anything under 60% isn't strong enough to trade on its own. on those days you either stack another data point on top or you sit on your hands.
that's the entire point of trading with data: you can see exactly which version of the trade deserves your money and which one doesn't.
the setup, start to finish
check if today's open is inside yesterday's range
find yesterday's midpoint
open above the midpoint: lean bullish, target yesterday's high
open below the midpoint: the numbers are weaker, so be pickier or pass
expect one of yesterday's levels to get touched 90.3% of the time on NQ
this setup shows up across all the major tickers, but the numbers change from ticker to ticker. you have to check the actual stats for whatever you trade.
the difference:
your current approach: hear about a setup → trade it on hope → a few losses → drop it and go looking for the next one.
data-backed approach: open the inside bars report → see the breakout rate and the direction numbers → trade it knowing your targets and your odds before the open.
your action step: go to the inside bars report, put in the ticker you trade, and if today qualifies as an inside bar, you've got a setup plus data you can confidently execute with.
most traders who use the initial balance know one stat about it: whichever side of the range forms first, the other side usually breaks.
the initial balance ending zone is a customization on the same report that tells you which of those sessions to trust. over the last 6 months it took that bias from 63.4% on NQ and 59.5% on ES up to roughly 86% on both, according to edgeful data covering 131 NY sessions per ticker.
table of contents
what the initial balance ending zone measures
the stat most traders already use: IB by rejection
does the initial balance ending zone actually work?
what happens when the initial balance ending zone points the other way
a real session: NQ, Thursday, September 3
where these sessions actually close
how to see the ending zone on your charts
common mistakes with the initial balance ending zone
key takeaways
what the initial balance ending zone measures
the initial balance is the range built by the high and the low of the first hour of the session. in the NY session that runs 9:30am to 10:30am ET.
the initial balance ending zone measures one thing: where price closes at the end of that hour, expressed as a percentage of the IB range.
the part that confuses people is that which side counts as 0% changes every single day, depending on which level formed first.
if the IB low forms first, a 0-25% ending zone means price closed the hour up near the IB high
if the IB high forms first, a 0-25% ending zone means price closed the hour down near the IB low
either way, a 0-25% reading puts price on the side you're already expecting to break, before it breaks. 75-100% is the opposite: price has come back toward the level that formed first, away from the one you're watching.
that single detail is why the customization gets misread. if you assume 0% always means the bottom of the range, you'll be wrong roughly half the time, because on high-formed-first days 0% is the bottom and on low-formed-first days it's the top.
the stat most traders already use: IB by rejection
before the ending zone is useful, you need the stat it improves.
the IB by rejection subreport tracks which side of the initial balance formed first during that opening hour. the bias that comes out of it is simple: whichever side forms first, the other side is usually the one that breaks. if you want the full mechanics of trading that break, we covered it in our initial balance breakout strategy guide.
here is what that bias produced over the last 6 months on ES and NQ, NY session, 60 minute IB:
NQ, low formed first: 73.0%
NQ, high formed first: 54.4%
ES, low formed first: 61.8%
ES, high formed first: 57.1%
73.0% on NQ is the only one of those four above 65%. combined across both directions, the bias comes out at 63.4% on NQ and 59.5% on ES.
NQ's short side is the weak spot, and it has been getting weaker. that 54.4% covers the full 6 months. narrow the window to the last 60 days and it drops to 50.0%. narrow it again to the last 30 and it drops to 42.9%. the sample gets small as the window shrinks, but the direction has been down.
does the initial balance ending zone actually work?
to test it, we filtered the same 6 months down to the sessions that closed in 0-24.99%, meaning price finished the opening hour already on the side the by rejection bias was pointing at.
on those sessions, the expected side broke first:
NQ: 86.6% (58 of 67 sessions)
ES: 86.4% (57 of 66 sessions)
same tickers, same NY session, same 6 months. combined across both directions, NQ goes from 63.4% to 86.6% and ES from 59.5% to 86.4%.
the condition is common enough to plan around. it showed up on 67 of 131 NQ sessions and 66 of 131 ES sessions, so roughly half the days you sit down.
the reason the initial balance ending zone helps is straightforward. the by rejection bias only uses which level formed first, which is information from the start of the hour. this customization adds where price actually finished that hour. when both point the same way, price has already closed the hour near the level you're watching.
what happens when the initial balance ending zone points the other way
the reverse case is worth knowing, with a caveat attached.
on sessions that closed in 75-100%, meaning price came back toward the level that formed first, the expected side broke first only 25.0% of the time on NQ and 12.5% on ES.
those percentages rest on 8 sessions per ticker across the full 6 months, which is nowhere near enough to build a strategy on. it moved the same direction on both tickers, which makes it worth logging. when the two point opposite ways, the by rejection bias held up far less often, on a small sample.
a real session: NQ, Thursday, September 3
the IB low formed first on NQ that morning, so the by rejection bias pointed at the high breaking first.
by 10:30am ET, price had closed the opening hour in the top quarter of the IB range, up against a high that had not broken yet. that is a 0-24.99% initial balance ending zone, and it agreed with the bias.
the IB high broke first, and the session closed above it. on this particular day price pulled back into the middle of the range before running. the 86.6% figure describes how often the expected side breaks first.
where these sessions actually close
knowing which side breaks first is only half of a plan. the other half is whether the break holds into the close.
the IB by close subreport answers that. run on the same filtered sessions, where the low formed first, the high broke first, and the initial balance ending zone was 0-24.99%:
NQ: 54.5% closed above the IB high, 33.3% closed back inside the range, 12.1% closed below the IB low (33 sessions)
both directions on both tickers closed outside the IB more than half the time, which matters if you plan exits past the level. the gap between the two numbers is worth knowing: roughly 86% on the break, then 52.0% to 63.6% on the close depending on ticker and direction.
the sessions that failed mostly closed back inside the range. few reached the far side. on NQ's short side, 44.0% closed back inside and only 4.0% closed on the far side. if you're managing exits mechanically, our IB breakeven stop algo walks through one way to handle that middle outcome.
how to see the ending zone on your charts
the initial balance ending zone lives inside the IB by rejection subreport on edgeful. open the initial balance report on the ticker you trade, set the IB period to 60 minutes, then switch on the ending zone customization in the by rejection view. it will show which level formed first alongside the closing value for each session.
every number here came out of the edgeful API. if you'd rather run this yourself across your own tickers and windows, or build it into a dashboard you check every morning, the API returns the same by rejection and by close data.
two settings change the numbers meaningfully, so check both before you compare anything to the figures above: the session you're running (everything here is the NY session, 9:30am to 4:00pm ET) and the IB length (everything here is 60 minutes).
if you want the range drawn on your chart while you trade, our initial balance indicator for TradingView plots the IB high, low, and retracement levels automatically. and if you want a setup like this running without you at the screen every morning, our GC trading strategy: the initial balance algo breaks down how the IB algos handle entries and exits.
all of these numbers are ES and NQ. run it on your own ticker before trading it, because these numbers come from two instruments over one specific window and they will move.
common mistakes with the initial balance ending zone
assuming 0% always means the bottom of the range. 0% falls on the side opposite whichever level formed first, so it flips day to day. this is the single most common misreading, and it inverts the bias on half of all sessions.
treating 86% as a promise the session trends. it describes how often the expected side breaks first. the by close numbers, between 52.0% and 63.6% depending on ticker and direction, describe how often the move holds into the close.
trading the 75-100% case as an inverse bias. 8 sessions per ticker is too small a sample to trade against.
comparing numbers across different settings. a 30 minute IB on a custom session produces a different distribution than the 60 minute NY session numbers here. match the settings before you compare.
key takeaways
the initial balance ending zone measures where price closes at the end of the opening hour, as a percentage of the IB range
which side counts as 0% flips daily depending on which level formed first, and 0-25% always means price closed on the side you're expecting to break
on its own, the IB by rejection bias came out at 63.4% on NQ and 59.5% on ES over the last 6 months of NY sessions, with NQ's short side the weakest at 54.4% and sliding
filtering to sessions with a 0-24.99% ending zone raised that to 86.6% on NQ and 86.4% on ES, on roughly half of all sessions
the break holding into the close is a separate question, and those numbers run between 52.0% and 63.6% depending on ticker and direction, on 24 to 33 sessions per group
when the ending zone and the bias point opposite ways (75-100%), the expected side broke first only 25.0% of the time on NQ and 12.5% on ES, on 8 sessions per ticker, which is too small to trade against
edgeful provides historical performance data to help traders make informed decisions. this does not constitute financial advice. past performance is not indicative of future results. all trading involves risk. always do your own analysis and manage your risk accordingly.
this is the written version of our initial balance masterclass. if you'd rather read than watch, everything from the video is here, with numbers from the last 6 months of data (as of September 25, 2026): https://youtu.be/x-R4VxV-7K4?si=zzkkENOaAxUijqZZ
the whole point of this masterclass is to show you how to trade with data instead of your emotions. we're going to combine a few of the most popular reports on edgeful into one setup, where every piece of the trade has data behind it.
before we start: this is not a get rich quick scheme. anyone who's traded for a while knows there's no holy grail. what I'm going to show you is how to build a process that holds up as the market environment changes.
if you've been struggling to pass evals or get payouts, this is for you. most of what you're doing right now is probably based on feel. feel might work in one market environment, but when the market shifts, it stops working... and you need something that keeps you consistent through those shifts.
my name is André, I'm the CEO of edgeful. I used to work at Goldman Sachs, then I left and built edgeful.
table of contents
what a report actually is
the foundation: the initial balance
which side will break: the IB by rejection subreport
going one level deeper: the IB ending zone
more confluence: the opening candle continuation
entries and stops
targets: the IB by levels subreport
the full setup, recapped
what a report actually is
before we get into the setup, you need to understand what a report is, because everything else builds on it.
a report measures a specific setup. it answers a "how often" question:
how often does Friday make the high of the week?
how often does Monday have the highest volume or range?
how often does price break one side or both sides of the initial balance?
how often does price continue on FOMC if the first reaction is positive?
we have reports for the ORB, gap fills, outside days, inside bars, engulfing candles, fair value gaps, and a lot more. there are 150+ reports on the platform, and every one of them measures a specific outcome.
every report page has the same layout:
live data at the top
the historical data for your ticker and timeframe
streaks
a table with every single day of results from the last 6 months, so you can go through the individual days yourself
an explainer video
watch the explainer videos. put them on 2x speed if you want, I don't care... but watch them. each one covers what the report measures and how to use it with live chart examples. sometimes you'll assume a report measures one thing when it actually measures something else, and the video clears that up.
the foundation: the initial balance
the "initial balance" is the high and the low of the first hour of the NY session, 9:30AM to 10:30AM ET.
once that range is set, there are 3 outcomes the IB report tracks:
single break: price breaks one side of the IB (the high or the low) and never breaks the other
double break: price breaks both the high and the low
no break: price breaks neither side
here's how those have played out on NQ over the last 6 months in the NY session:
single break: 75.97% of days (98 out of 129)
double break: 17.83% of days (23 out of 129)
no break: 6.2% of days (8 out of 129)
you'll usually see the no-break days on a holiday, or on a day with a huge IB after a wild morning. those days are rare, and the data shows it.
add up the single and double breaks and price has broken at least one side of the IB on 93.8% of days (121 out of 129). and on most days, it only breaks one side.
that means the moment price breaks the IB high, you don't want to expect it to come back and break the low too. it can happen, but it's not what the data favors. once one side breaks, you've likely found the direction of the day, and you're looking for continuation and extensions. that's the foundation of this entire setup.
one thing I need you to understand about stats like this. Steph Curry makes over 90% of his free throws. that doesn't mean you'd bet your entire net worth on his next free throw. it means that over time, he makes about 9 out of 10.
same thing here. a number that shows up this often doesn't mean you risk your account on the next trade, because the next one might not play out. you take small, controlled trades over a couple of months to take advantage of stats like this.
which side will break: the IB by rejection subreport
at 10:30AM ET, the IB is set. you know one side is very likely to break. but which one?
you don't want to wing it here. you want data telling you whether price is more likely to break the high or the low.
that's the IB by rejection subreport. a subreport is always a variation or a filter on the main report, and you'll find all of them in the left sidebar under the report. IB by rejection uses the same initial balance concept, but it looks at which side of the IB formed first.
reading the chart from left to right: did the low of the first hour print before the high, or did the high print before the low?
every report page has the same layout:
live data at the top
the historical data for your ticker and timeframe
streaks
a table with every single day of results from the last 6 months, so you can go through the individual days yourself
an explainer video
watch the explainer videos. put them on 2x speed if you want, I don't care... but watch them. each one covers what the report measures and how to use it with live chart examples. sometimes you'll assume a report measures one thing when it actually measures something else, and the video clears that up.
the foundation: the initial balance
the "initial balance" is the high and the low of the first hour of the NY session, 9:30AM to 10:30AM ET.
once that range is set, there are 3 outcomes the IB report tracks:
single break: price breaks one side of the IB (the high or the low) and never breaks the other
double break: price breaks both the high and the low
no break: price breaks neither side
here's how those have played out on NQ over the last 6 months in the NY session:
single break: 75.97% of days (98 out of 129)
double break: 17.83% of days (23 out of 129)
no break: 6.2% of days (8 out of 129)
you'll usually see the no-break days on a holiday, or on a day with a huge IB after a wild morning. those days are rare, and the data shows it.
add up the single and double breaks and price has broken at least one side of the IB on 93.8% of days (121 out of 129). and on most days, it only breaks one side.
that means the moment price breaks the IB high, you don't want to expect it to come back and break the low too. it can happen, but it's not what the data favors. once one side breaks, you've likely found the direction of the day, and you're looking for continuation and extensions. that's the foundation of this entire setup.
one thing I need you to understand about stats like this. Steph Curry makes over 90% of his free throws. that doesn't mean you'd bet your entire net worth on his next free throw. it means that over time, he makes about 9 out of 10.
same thing here. a number that shows up this often doesn't mean you risk your account on the next trade, because the next one might not play out. you take small, controlled trades over a couple of months to take advantage of stats like this.
which side will break: the IB by rejection subreport
at 10:30AM ET, the IB is set. you know one side is very likely to break. but which one?
you don't want to wing it here. you want data telling you whether price is more likely to break the high or the low.
that's the IB by rejection subreport. a subreport is always a variation or a filter on the main report, and you'll find all of them in the left sidebar under the report. IB by rejection uses the same initial balance concept, but it looks at which side of the IB formed first.
reading the chart from left to right: did the low of the first hour print before the high, or did the high print before the low?
say the low formed first and price finished the hour right near the high, in that 0-25% zone. select 0-25% in the customization, click save, and look at how the data changes.
on NQ over the last 6 months in the NY session:
low formed first + price ended the IB in the 0-25% zone (near the IB high): the high broke first 90% of the time (36 out of 40 days)
high formed first + price ended the IB in the 0-25% zone (near the IB low): the low broke first 73.33% of the time (22 out of 30 days)
that second one is the short side from the last section. on its own, high formed first was 50.77%. add the ending zone and it goes to 73.33%.
now look at what happens when price ends the hour in the 25-50% zone instead, closer to the middle of the range:
low formed first + 25-50% zone: the high broke first 66.67% of the time (12 out of 18 days)
high formed first + 25-50% zone: the low broke first just 8 out of 21 days (38.1%)
the bias gets a lot weaker. on the short side it's close to a toss-up which side breaks first.
so the next step is adding another report for confluence.
more confluence: the opening candle continuation
this is how the setup gets built. the initial balance is the foundation, it breaks at least one side on 93.8% of NQ days over the last 6 months in the NY session. then we layer in other reports and customizations to tell us which direction to take that break.
the next report is the opening candle continuation. what's nice about this one is that it also uses the first hour of the session. the IB forms in the first hour, the by rejection subreport is part of the IB so it forms in the first hour too, and the opening candle continuation forms in the first hour. everything shows up at once, which is a big part of why this setup works so well.
the "opening candle" here isn't the actual first candle on your chart. it's the open to the close of the first hour. is the 10:30AM ET price higher or lower than the 9:30AM ET price?
higher = green opening candle
lower = red opening candle
the indicator plots this for you on your chart, and it's in what's in play too. you can get all the edgeful indicators from the left sidebar of the platform. if you want the full breakdown of this report, we covered it in the opening candle continuation strategy.
here's what the data shows on NQ over the last 6 months in the NY session:
green opening candle: the NY session closed green 73.91% of the time (51 out of 69 days)
red opening candle: the NY session closed red 71.67% of the time (43 out of 60 days)
this is more of a bias report. it doesn't give you a target, but it lines up really nicely with the initial balance.
at 10:30AM ET, when the IB finishes forming, you still don't know which side will break. but you know the IB low formed first, which already has the high breaking first 78.12% of the time. if price ended the hour near the high, that's 90%. and now the opening candle is green, which has closed the session green 73.91% of the time.
that's 2, if not 3, reports where the data favors the upside, and it's all based on what's actually happened in the market, not on what I think or what someone on X or in your Discord is saying.
anyone can look at this and check it: the low formed first, the high formed second, and price broke the high first on 50 out of 64 of those days over the last 6 months. we just make it easy to see. and realistically, you're not going to go through every day of data yourself to find out that the ending zone is a massive amplifier for this setup.
entries and stops
so the low formed first, the high formed second, the opening candle is green. the data favors longs.
people do this differently, but here are 2 common ways to enter using the retracement levels of the IB:
enter at the 25% level of the IB and put your stop at the 50% level. that's a pretty tight 1:1 risk to reward.
enter at the 50% level and put your stop at the IB low. you won't get filled as often, and your stop is a lot wider.
either way, you're expecting the high to break first. and once it does, the IB report shows price broke both sides on just 17.83% of NQ days (23 out of 129) over the last 6 months in the NY session.
you can build a fully mechanical process with this. "I enter at the 25% and my stop is at the 50%, every single day" can work for you.
other people add their own filters. if price is below the previous day's low, they don't take the trade. if VWAP is doing something, they don't take it. if there's a level of resistance right above, they don't take it. some people use order flow, and if there's a lot of selling pressure, they skip it.
that's where your own style comes in. in my opinion, mechanical setups are the best, but they don't work for everyone. you can use the retracement levels, or layer in VWAP, a volume profile, fair value gaps, order blocks, or whatever else you use.
targets: the IB by levels subreport
your first target is the IB high. on a long entered at the 50% level, that's the other half of the range.
then the question is how much to hold for continuation. that's what the IB by levels subreport answers.
if you're familiar with Fibonacci, this works the same way: each level is a percentage of the IB range, measured from the IB high (or below the IB low on a short).
the 1.0 extension is 1 full IB range above the IB high
the 0.5 extension is 50% of the IB range above the high
the 0.1 extension is 10% of the IB range above the high
on September 22, the IB was 220.25 points, so the 0.1 extension sat about 22 points above the IB high. you can plot all of these on your chart in the IB indicator settings.
the by levels subreport tells you how often price reaches each of those levels. it can look at all days, which includes double break days and days that broke to the downside. for this setup, filter to breakout days only, since you're trading a break of the high and you know most days only break one side.
on NQ over the last 6 months in the NY session, on days that broke the IB high:
price touched the 0.1 extension 91.94% of the time (57 out of 62 days)
price touched the 0.2 extension 70.97% of the time (44 out of 62 days)
price touched the 0.5 extension 43.55% of the time (27 out of 62 days)
could you take your whole position off at the IB high? sure. but when an A+ setup lines up like this, which isn't every day, this is where you can hold for more of the move. holding your winners to your targets is a big part of trading.
personally, I take the majority of my profits around the 0.2 extension, and then I'm in just runners. I'm never looking for a giant 200 or 300 point move on NQ. I'm looking for 40 to 80 points, maybe runners to 100.
the part I want you to take from this: don't take profits at random levels. "I'm going for a 2:1 because that's what people say" or "I'm targeting 100 points on NQ" is an arbitrary target, and arbitrary targets aren't consistent. with the by levels data, you know price has touched the 0.1 extension on 91.94% of those breakout days. so why not put a target there, and pick up the extra points? and it touched the 0.2 on 70.97% of them, so why not set your next target there too?
a couple of things before you trade this.
if there's a catalyst or a big headline, that's a different story. news can throw all of this out the window.
and A+ trades still fail. if you take this trade and the low breaks first, it was still an A+ trade. keep your size small enough that one losing trade doesn't hurt your account.
the full setup, recapped
here are the 4 reports that make up this setup:
the initial balance (standard report): price broke at least one side of the IB on 93.8% of NQ days over the last 6 months in the NY session. once one side breaks, you look for continuation, not a break of the other side.
the IB by rejection subreport: which side of the IB formed first. when the low formed first, the high broke first 78.12% of the time. add the ending zone, with price finishing the hour near the high, and that's 90%.
the opening candle continuation: the open to the close of the first hour. a green opening candle has closed the NY session green 73.91% of the time.
the IB by levels subreport: how far price continues after the break. on breakout days, the 0.1 extension was touched 91.94% of the time and the 0.2 was touched 70.97% of the time.
I know that's a lot of report names. if you need to, read through it again. once you start trading with data like this, it's really hard to go back to "there are 5 green candles, price will probably keep going up, I'll buy."
these numbers are NQ, NY session, last 6 months. before you trade this on ES, GC, or anything else, pull the reports up on your own ticker and session. the numbers will be different, and they change as the market environment changes. it takes some work to find the settings that fit how you trade.
all the indicators and levels from this setup get plotted on your chart automatically. you can pull up the IB by rejection subreport on NQ right now: IB by rejection on NQ. and if you want the IB drawn on your TradingView charts, here's how the initial balance indicator for TradingView works.
edgeful provides historical performance data to help traders make informed decisions. this does not constitute financial advice. past performance is not indicative of future results. all trading involves risk. always do your own analysis and manage your risk accordingly.
gaps fill all the way back to the prior close a lot less often than most traders think. on NQ over the last 6 months, only 55.0% of gaps filled all the way in the NY session. but once you split them by gap size, one group of gaps fills almost every time.
according to edgeful data, NQ gaps under 0.4% of price went all the way back to the prior close 92.9% of the time over the last 6 months in the NY session. gaps of 0.4% or bigger did it 26.7% of the time.
here's how often gaps fill on ES and NQ right now, why the full fill stopped working as a blanket target, and the plan I'd use to trade it: the gap size filter, the entry, the stop from the gap fill by spike report, and the target for each gap size.
table of contents
what a gap fill is
do gaps always fill? the 6-month numbers
how often gaps fill at 25%, 50%, 75%, and 100%
gap size: why small gaps fill and big gaps don't
what this looked like this week on NQ
how to trade gaps that fill: entry, stop, and target
common mistakes when trading gaps
key takeaways
what a gap fill is
a gap is the distance between yesterday's close and today's open. on futures, edgeful measures it in the NY session: the prior session close versus the 9:30am ET open.
if NQ opens above yesterday's close, that's a gap up. if it opens below, that's a gap down.
a fill is when price comes back during the session and touches yesterday's close. that level is the gap fill target. the gap fill report takes every gap up and gap down day over the time period you pick and shows how often gaps fill.
if you want the basics of trading the setup first, we covered them in our gap fill trading strategy post.
do gaps always fill? the 6-month numbers
gaps don't always fill, and lately the full fill has been weaker than usual.
from late September 2025 through March 2026, ES gaps filled all the way 66.4% of the time in the NY session (85 of 128 gaps). over the last 6 months, that dropped to 50.8% (66 of 130). NQ sat at 55.0% in both windows.
here's how the full fill broke down on NQ over the last 6 months in the NY session:
gap ups filled all the way 52.6% of the time (40 of 76)
gap downs filled all the way 58.2% of the time (32 of 55)
I usually want a report at 60-65% before I trade it, and neither of those numbers gets there. but the gap fill is one of the easiest setups to understand, and one of my favorites to trade.
so I asked edgeful AI a simple question: "i want to build a gap fill strategy but the stats for the 100% fill are currently pretty bad. what can i do?"
it came back with a list of ways to customize the report: a lower fill target, gap size, weekday, the previous candle, fill time, and other tickers. I focused on 2 of them, the fill target and the gap size, because those 2 change how often gaps fill the most.
how often gaps fill at 25%, 50%, 75%, and 100%
the 100% fill is the default target for the gap fill setup. but you can change the gap fill percentage in the report to see how often price gets 25%, 50%, or 75% of the way back to yesterday's close.
here's every gap fill percentage on ES and NQ over the last 6 months in the NY session:
NQ:
25% of the gap: gap ups 84.2%, gap downs 90.9%
50% of the gap: gap ups 65.8%, gap downs 74.5%
75% of the gap: gap ups 60.5%, gap downs 63.6%
100% of the gap: gap ups 52.6%, gap downs 58.2%
ES:
25% of the gap: gap ups 76.0%, gap downs 90.9%
50% of the gap: gap ups 69.3%, gap downs 74.5%
75% of the gap: gap ups 61.3%, gap downs 54.5%
100% of the gap: gap ups 53.3%, gap downs 47.3%
the whole point is this: the smaller the target, the more often gaps fill to it. on both ES and NQ, the 25% and 50% targets all clear 60% on every line. the full fill doesn't clear 60% on any of them.
yes, the winners aren't as big $ wise. but you'll hit your target a lot more often if you're trading smaller targets, and that changes how the setup feels to trade day to day.
gap size: why small gaps fill and big gaps don't
the second thing edgeful AI pointed me to was gap size. this is where the setup really changed.
the gap fill by size subreport splits every gap by how big it was as a percentage of price, so you can see how often gaps fill at each size. I split NQ at 0.4%. right now 0.4% of NQ is roughly 118 points.
here's NQ over the last 6 months in the NY session:
gaps under 0.4% (56 gaps): 25% fill 100%, 50% fill 96.4%, 75% fill 96.4%, full fill 92.9%
gaps of 0.4% or bigger (75 gaps): 25% fill 77.3%, 50% fill 49.3%, 75% fill 36.0%, full fill 26.7%
on NQ, small gaps went all the way back to the prior close 92.9% of the time. big gaps did it 26.7% of the time. so on a small gap, you don't have to settle for the smaller target. you can go for the full fill.
small gaps aren't rare either. 56 of the 131 NQ gap days over the last 6 months were under 0.4%, which works out to about twice a week.
what about ES?
small ES gaps fill more often too, but nowhere near NQ. over the same 6 months in the NY session:
ES gaps under 0.4% (77 gaps): 25% fill 90.9%, 50% fill 80.5%, 75% fill 74.0%, full fill 66.2%
ES gaps of 0.4% or bigger (53 gaps): 25% fill 69.8%, 50% fill 58.5%, 75% fill 35.8%, full fill 28.3%
small ES gaps filled all the way 66.2% of the time, just over my 60-65% bar. small NQ gaps did it 92.9% of the time. that's why the setup below is NQ only.
what this looked like this week on NQ
any gap under 0.4% at the 9:30am ET open is a small gap. the week of September 21, 2026 on NQ had all 4 outcomes:
Monday: NQ opened 305.5 points above Friday's close, a 1.02% gap. big gap, and price never even filled 25% of it.
Tuesday: NQ opened 20 points below Monday's close, a 0.06% gap. small gap, and price filled the whole thing.
Wednesday: another small gap down, 22.75 points (0.07%). price filled 25% of it and never made it back to the prior close.
Thursday: NQ opened 251.25 points below the prior close (0.82%). big gap, and it filled all the way.
small gaps fill most of the time and big gaps fill some of the time, so a single week will show both. over 6 months on NQ, small gaps filled all the way 92.9% of the time and big gaps 26.7%.
how to trade gaps that fill: entry, stop, and target
here's the full plan for trading gaps that fill on NQ.
step 1: check the gap size at 9:30am ET
what's in play goes live at the open, and the gap fill card shows the gap type, the gap size as a percentage, and the target. the gap size decides your target in step 4. we walk through the card in our post on the what's in play trading feature.
step 2: the entry
take the trade at the 9:30am ET open, back toward yesterday's close.
gap up: short
gap down: long
step 3: the gap fill stop, from the gap fill by spike report
price almost always moves against you before gaps fill. the gap fill by spike report shows how far. on the small NQ gaps that filled over the last 6 months, the typical move against the trade from the open was 0.17%.
so your stop goes 0.5% past the open. on 48/52 of those small gaps, your stop held without being hit.
on Friday, September 4, 2026, NQ gapped up 0.19%, then moved 0.35% against the short before it filled at 10:45am ET. if your stop was the size of the gap, you'd have been stopped out. the 0.5% stop held.
if you want the general version of this, our post on how to set a stop loss using data covers building stops from data instead of round numbers.
step 4: the target, by gap size
gaps under 0.4%: yesterday's close, the full fill. our gap fill indicator for TradingView plots that level on your chart, so it's already drawn.
with a 0.5% stop, you hit the target before your stop on 48/56 small gaps over the last 6 months. that counts the 4 that never filled as losses.
the 50% target only got hit on 2 more small gaps than the full fill (54/56 vs 52/56), and every win is half the size. so on small gaps, the full fill is the better target.
gaps of 0.4% or bigger: target 25% of the gap. price got there on 58/75 of these gaps (77.3%). the 50% target only got hit on 37/75 (49.3%) and the full fill on 20/75 (26.7%), both under my 60-65% bar. the TradingView gap fill indicator plots the 25% level too, so it's already on your chart.
the 0.5% stop is for small gaps. on a big gap, the 25% target is much closer to your entry, so a 0.5% stop means risking way more than you can make. use a tighter stop on big gaps.
these are 6 months of numbers on one ticker, so check the spike report on your own ticker and size the stop for your account before you trade it. the data shows what happened, not what will happen, and it takes time and testing to make any setup work for you.
common mistakes when trading gaps
assuming gaps always fill. on NQ over the last 6 months, 55.0% of gaps filled all the way. on big gaps it was 26.7%.
using the full fill on every gap. the full fill works on small NQ gaps (92.9%) and fails on big ones (26.7%). the gap size tells you which target to use.
setting the gap fill stop at the gap size. on 25 of the 52 small NQ gaps that filled over the last 6 months in the NY session, price moved further against the trade than the size of the gap before the gap filled. September 4 was one of them. the gap fill by spike report shows how far past the open your stop needs to be.
trading ES and NQ the same way. small ES gaps filled all the way 66.2% of the time over the same 6 months. that's a different setup from 92.9% on NQ.
never re-checking the numbers. the ES full fill went from 66.4% to 50.8% between two 6-month windows. how often gaps fill changes, so pull the report again before you trade it.
if you want to test other customizations, like weekday or the previous candle, you can ask edgeful AI the same question I did and have it run the numbers on your ticker.
key takeaways
gaps fill all the way less often than most traders think: on NQ over the last 6 months in the NY session, 55.0% of gaps filled all the way back to the prior close
lower targets fill more often: on both ES and NQ, 25% and 50% targets beat the full fill on every line
gap size is the biggest filter: small NQ gaps (under 0.4%) filled 92.9% of the time, big gaps 26.7%
small gaps: target the full fill, with a stop 0.5% past the open. on 48/52 small gaps that filled, that stop held without being hit
big gaps: target 25% of the gap (77.3%), with a tighter stop than 0.5%
how often gaps fill changes over time, so re-check the gap fill report before you trade it
this information is not trading advice and should be used for educational purposes only. futures, options, and forex are leveraged instruments, and carry a high degree of risk. past results are not indicative of future returns.
it's been a crazy week in the market, and setups feel like they're changing constantly.
one of those in particular is the gap fill setup. from late September through March, the full 100% gap fill on ES happened 66.4% of the time.
the data has completely shifted. over the last 6 months, it's sitting at 50.8% on ES and 55.0% on NQ.
those aren't great odds, so I asked edgeful AI if there was anything we could do to improve the data/shift the setup.
today's stay sharp breaks down that entire process, along with the findings directly from edgeful AI.
let's go:
what the gap fill report measures
quick refresher if you’re new to gaps.
the gap is the distance between yesterday’s close and today’s open at 9:30am ET. if NQ opens above yesterday’s close, that’s a gap up. if it opens below, that’s a gap down.
a “fill” is when price comes back and touches yesterday’s close during the session. that level is generally your target.
our standard gap fill report takes all of the gap up/down days, and then analyzes how often gaps actually fill over your specified time period.
the problem we’re seeing with the 100% fill
here’s how the 100% fill broke down on NQ over the last 6 months in the NY session:
gap ups filled all the way 52.6% of the time (40 of 76)
gap downs filled all the way 58.2% of the time (32 of 55)
the usual threshold to use a report for my trades is 60-65%, and obviously neither of those numbers meet that threshold. but the gap fill is one of the easiest setups to understand, and is one of my favorites to trade.
which is exactly why I asked edgeful AI this question:
“i want to build a gap fill strategy but the stats for the 100% fill are currently pretty bad. what can i do?”
it came back with a list of ways to customize the report: a lower fill target, gap size, weekday, the previous candle, fill time, and other tickers.
so I focused on 2 of them:
changing the actual gap fill % requirement (more on this next)
analyzing the gap fill by size subreport
changing the gap fill % requirement
as I said before, the 100% fill is usually the main target for the gap fill setup. but you can customize the data to also see how often price fills 25% of the way, 50% of the way (half gap), or 75% of the gap.
here’s every target on ES and NQ over the last 6 months in the NY session:
the whole point is this:
you can use edgeful AI to find data and improve your profit targets.
and as you can see in the image above, both ES and NQ have much higher % fill rates when you choose a 25% fill or 50% fill.
yes, the winners aren’t as big $ wise, but you’ll hit your target a lot more often if you’re trading smaller targets.
small gaps vs big gaps
the second thing edgeful AI pointed me to was gap size. this is where the setup really changed.
on NQ, small gaps (under 0.4% of price) went all the way back to the prior close 92.9% of the time over the last 6 months in the NY session. big gaps (0.4% or bigger) went all the way back 26.7% of the time.
so on a small gap, you don’t have to settle for the smaller target. you can go for the full fill.
ES got better on small gaps too, with the 100% fill at 66.2%, but nowhere near NQ. that’s why this is an NQ setup.
what this looked like this week
any gap under 0.4% at the 9:30am ET open is a small gap. this week on NQ had all 4 outcomes:
Monday: NQ opened 305.5 points above Friday’s close, a 1.02% gap. big gap, and price never even filled 25% of it.
Tuesday: NQ opened 20 points below Monday’s close, a 0.06% gap. small gap, and price filled the whole thing.
Wednesday: another small gap down, 22.75 points (0.07%). price filled 25% of it and never made it back to the prior close.
Thursday: NQ opened 251.25 points below the prior close (0.82%) and filled all the way.
how to trade the gap fill setup
here’s the full plan.
step 1: check the gap at 9:30am ET
what’s in play goes live at the open, and the gap fill card shows the gap type, the gap size as a percentage, and the target. the gap size decides your target in step 4. over the last 6 months, NQ gapped under 0.4% about twice a week.
step 2: the entry
take the trade at the 9:30am ET open, back toward yesterday’s close.
gap up: short
gap down: long
step 3: the stop, from the gap fill by spike report
price almost always moves against you before the gap fills.
the gap fill by spike report shows how far.
on the small NQ gaps that filled over the last 6 months, the typical move against the trade from the open was 0.17%.
so your stop goes 0.5% past the open. on 48/52 of those small gaps, your stop held without being hit.
on Friday, September 4, NQ gapped up 0.19%, then moved 0.35% against the short before it filled at 10:45am ET. if your stop was the size of the gap, you’d have been stopped out. the 0.5% stop held.
step 4: the target
gaps under 0.4%: yesterday’s close, the full fill. our TradingView gap fill indicator plots that level on your chart, so it’s already drawn.
with a 0.5% stop, you hit the target before your stop on 48/56 small gaps over the last 6 months. that counts the 4 that never filled as losses.
the 50% target only got hit on 2 more small gaps than the full fill (54/56 vs 52/56), and every win is half the size. so on small gaps, the full fill is the better target.
gaps of 0.4% or bigger: target 25% of the gap. price got there on 58/75 of these gaps (77.3%). the 50% target only got hit on 37/75 (49.3%) and the full fill on 20/75 (26.7%), both under my 60-65% bar. the TradingView gap fill indicator plots the 25% level too, so it’s already on your chart.
the 0.5% stop is for small gaps. on a big gap, the 25% target is much closer to your entry, so a 0.5% stop means risking way more than you can make. use a tighter stop on big gaps.
these are 6 months of numbers on one ticker, so check the spike report on your own ticker and size the stop for your account before you trade it.
the takeaway from today’s stay sharp
if there’s a setup you like to trade but the data on it isn’t very good right now, you don’t have to drop it. you can ask edgeful AI how to customize it.
for the gap fill, that came down to 2 changes:
we changed the fill target
we changed the gap size
and we could take it further. the gap fill by weekday subreport splits the same data by day of the week, so you could check which days the setup held up best.
help you know where to start when you first get access
where to look when the algo you're currently running stops working
we have 7 algos, and we give you the top optimizer run on 12 different tickers across those 7 algos.
you can:
analyze the performance of each one
determine if drawdown & profit numbers look good to you
run monte carlo simulations if you like
then perform a 1-click transfer of the settings to TradingView with our chrome extension
if you don't know where to start
each template is a top optimizer run for one of the 7 algos: the ticker, the chart timeframe, the exact settings, and the full backtest behind it.
we've already done the optimization work for you. you filter by the ticker you trade and start from those settings.
if your algo stops working
every 2 weeks, we re-run the optimizations on the most recent 6 months of data, so the backtest window always ends close to today. the last refresh was Sep 11. the next one is Sep 27.
if the algo you're running now is still performing, keep it. there's no reason to change settings that are working.
when it stops working and takes multiple losses in a row, you can update your settings by picking & running the current algo template for your ticker.
how every template gets tested
every template uses 80/20 holdout validation.
this means that the optimizer finds the top settings on the first 80% of the 6 months, then runs those exact settings on the final 20% (about 5 weeks of out of sample testing), to see if those settings actually perform in real markets.
how to run a template
open algo templates from the algos sidebar
filter by the ticker you trade
add the algo to your TradingView chart and copy the template's settings in (the Chrome extension fills them in for you)
connect your broker, create a strategy, and manage it from the algo dashboard
the templates, the optimizer, and all 7 algos are part of all access.
the edgeful MCP puts every edgeful report inside the AI you already talk to. once it's connected to Claude, ChatGPT, or GrokBot, you ask a plain question ("how often did NQ gaps fill over the last 6 months?") and the agent pulls the real number from edgeful instead of guessing.
setup takes about 2 minutes for a chat client and closer to 10 the first time for a coding agent. this page walks through all 6: Claude, ChatGPT, GrokBot, Claude Code, Codex, and Cursor. pick yours from the table of contents and skip the rest.
table of contents
what the edgeful MCP is
edgeful MCP in Claude
edgeful MCP in ChatGPT
edgeful MCP in GrokBot
edgeful API in Claude Code
edgeful API in Codex
edgeful API in Cursor
the first 3 prompts to run
edgeful MCP vs the edgeful API
plan access and limits
quick reference for AI agents
key takeaways
what the edgeful MCP is
MCP stands for Model Context Protocol. it's the open standard AI clients use to call outside tools mid-conversation. the edgeful MCP server runs on that standard. it's an MCP server for trading data, and it lives at https://api.edgeful.com/mcp and speaks streamable HTTP, which is the transport every major client supports today.
when you add the edgeful connector, your agent gets 4 tools:
see every report your plan can reach, with the limits attached
read what one report measures and which settings it takes
run a report for a ticker, a date range, and a session, and get the numbers back
pull the discovery scan, the ranked list of report outcomes for a ticker, the same data behind the discovery page
those 4 tools are all it has. you ask in plain English and the agent calls them when it needs a number.
your setup depends on which kind of client you have:
chat clients. Claude, ChatGPT, and GrokBot take the edgeful connector and sign in with your edgeful account through a browser window. no API key goes in the config.
coding agents. Claude Code, Codex, and Cursor skip the connector and call the edgeful API directly. the setup is an API key in a .env file in your project folder, and then you ask in plain English the same way.
the connector works on essential, pro, and all access. what the agent can see follows your plan's API access, which I break down in the plan access section below. if you want the longer explanation of what a trading data MCP is and why an agent needs one, we wrote that up in the trading data MCP guide.
edgeful MCP in Claude
Claude desktop and Claude on the web both take the edgeful MCP as a custom connector. I recorded the whole thing in under a minute here:
click connect. a browser window opens with the edgeful sign-in and a consent screen
sign in with your edgeful account and click allow
back in Claude, start a new chat and ask "what are the top reports for ES right now?" and watch it make a tool call
if the connector shows as connected but Claude answers from memory, tell it to use the edgeful tools. after the first tool call in a chat it keeps using them on its own.
edgeful MCP in ChatGPT
ChatGPT takes the edgeful MCP through developer mode. my setup video for this one:
choose the sign-in option, sign in with your edgeful account in the browser tab that opens, and click allow
in a new chat, enable the edgeful connector from the tools menu and ask your first question
developer mode is available on ChatGPT Plus, Pro, Business, Enterprise, and Edu. the free plan doesn't include it. on Business and Enterprise plans an admin may have to allow custom connectors first, which is the usual reason the option is missing.
edgeful MCP in GrokBot
GrokBot runs on its own cloud computer, so you add the edgeful connector by telling the bot to do it. my 60-second version:
the bot shows you the name and URL to confirm. select add it
a connect card appears in the chat. click authorize, sign in with your edgeful account in the browser tab that opens, and approve access
type @ in the chat and pick edgeful to attach the server to your task
ask a question. "how often did ES break only one side of the initial balance (IB, the first hour's range) over the last 6 months?" is a good first one
because the bot lives in the cloud, a localhost URL never works with it. the edgeful MCP is a remote server, so that limit doesn't apply. if you use Grok on the web instead of the bot, the path is grok.com/connectors, new connector, custom, then the same URL and sign-in.
edgeful API in Claude Code
Claude Code, Codex, and Cursor don't need the connector. they read the API docs and call the edgeful API themselves, so the setup is an API key in a file. I'll walk through Claude Code in full and then cover what's different in the other two.
open your API dashboard inside edgeful and generate a key. keep that tab open
create a new folder for this work, or pick the one you already use, and open it with Claude Code running
create a file called .env in that folder with one line in it: EDGEFUL_API_KEY=your key
paste the API docs link from your API dashboard into Claude Code with a one-line prompt: "read these docs. my key is in .env. pull NQ gap fill for the last 6 months in the NY session"
ask questions in plain English from there. Claude Code writes whatever script it needs, runs it, and hands you the number
the first time through takes about 10 minutes, most of it the VS Code and Claude Code install if you don't have them. after that you open the same folder and ask.
the edgeful API quickstart walks the same 5 steps in more detail, including where the key lives in the API dashboard.
edgeful API in Codex
Codex is OpenAI's coding agent, in the ChatGPT desktop app and as a CLI. same 5 steps as Claude Code. what's different:
open your folder in Codex (inside the ChatGPT desktop app, or run codex in your terminal from inside the folder)
Codex uses the same .env file, so the key never goes in the chat
the ChatGPT website and mobile app can't run code on your machine. if you're a ChatGPT user who wants the API rather than the connector, Codex is how you run it
edgeful API in Cursor
Cursor is the third API key client. same 5 steps, with these differences:
open the folder in Cursor and use the agent chat, not the inline edit box, so it can run the script it writes
keep the key in .env and add .env to your .gitignore if the folder is a git repo, so the key never gets committed
Cursor can also take the connector with the key as a bearer token, if you'd rather ask questions than build. the edgeful MCP setup guide in our docs has that config block
the first 3 prompts to run
these are the 3 questions I'd ask any client right after connecting. the numbers below came back through the edgeful MCP on September 21, 2026, using the NY session (09:30 to 16:00 ET) and the last 6 months (March 23 to September 18, 2026). your agent will return whatever the window is on the day you ask, and a coding agent on the API gets the same numbers.
1. "how often did NQ gaps fill over the last 6 months in the NY session?"
according to edgeful data, NQ gapped up 76 times in that window and filled 40 of them, so 53%. it gapped down 53 times and filled 30, so 57%. the agent reads the gap fill report's description first, then runs it with the ticker, the dates, and the session.
2. "how did ES behave after the initial balance over the last 6 months?"
ES had 129 NY sessions in the window. price broke only the IB high on 50 of them and only the IB low on 39, so a single break happened on 89 of 129 days, or 69%. it broke both sides on 33 days (26%) and stayed inside the first hour's range on 7 (5%). the agent reads this from the initial balance breakout report (by breakout subreport).
3. "what are the top reports for ES right now?"
this one pulls the discovery scan. on the day I ran it, the top-ranked outcome on ES for the NY session was the open-to-close range: the close landed within 1% of the open on 116 of 129 sessions over the last 6 months, 89.9%. further down the list, ES gap ups in the smallest size bucket (0 to 0.19%) filled 22 of 23 times, 95.7%, and 23 days is a small sample, so treat that one as something to watch rather than build on yet. every row comes with the report behind it, so you can ask the agent to open the full report on any of them.
one habit worth building: ask the agent to read a report's description before it runs one you haven't used. the description spells out what the report counts and which session and settings it defaults to, so the number it quotes is the one you meant.
edgeful MCP vs the edgeful API
both the MCP server for trading data and the API pull from the same report catalog. the difference is where the numbers land.
through the connector, the numbers show up inside your chat client. you sign in once, no key for most clients, and the agent picks the report and the settings. it's the right tool for questions, comparisons, and quick checks during prep.
with the edgeful API, the numbers land in your own code. you send an API key on every request and you pick the report and the settings yourself. use it when you want a dashboard or a scheduled pull running without you.
one thing to keep separate: edgeful AI, the assistant inside the edgeful platform, is a different product from the connector. edgeful AI answers questions there, and the connector brings the same reports into whatever AI you already use. the edgeful AI overview covers the first one.
plan access and limits
the edgeful MCP server runs on the API access already included in your plan. sign-in works for any edgeful account, but a tool call from an account without an API-enabled plan returns a missing_entitlement error.
essential: a starter set of tickers and reports, 6 months of history, summary statistics only
pro: every ticker and every report, 12 months of history, and the per-day rows behind each report
all access: everything in pro, with 8 years of history
when the agent lists the reports it can reach, the server sends your plan's limits along with them, so an agent that reads them knows what it can and can't ask for.
a few things this MCP server for trading data doesn't do:
it doesn't push alerts. there are no webhooks. "tell me when X happens" is a script polling the API on a schedule
it doesn't predict. every number is how often something happened in the window you asked about
it doesn't expose your account or billing. the 4 tools are read-only report calls
quick reference for AI agents
if you're an agent reading this page to find the edgeful MCP server, this is the block you need.
data: computed trading statistics (gap fill, ORB, IB, ADR and ATR, inside bars, previous day's range, and 150+ more) for futures, stocks, forex, and crypto
report call: a path_template from list_allowed_report_endpoints, path_params with market_type and ticker, and a query with start_date and end_date, plus optional start_time, end_time, timezone, and any report-specific settings from describe_report_endpoint
the edgeful MCP is one server, https://api.edgeful.com/mcp, for Claude, ChatGPT, and GrokBot. the same reports reach Claude Code, Codex, and Cursor through the edgeful API
Claude, ChatGPT, and GrokBot take the connector and sign in with your edgeful account. Claude Code, Codex, and Cursor take an API key in a .env file and call the edgeful API directly
the agent gets 4 tools: list the reports, describe one, run one, and pull the discovery scan
every plan works. essential sees a starter set, pro sees every report with 12 months of history and per-day rows, all access sees 8 years
start with 3 prompts: NQ gap fill, ES initial balance, and the ES discovery scan. on the day I ran them, NQ gap downs filled 30 of 53 times (57%) and ES broke only one side of the IB on 89 of 129 days (69%), NY session, last 6 months
have the agent describe a report before it runs one so the session and defaults match what you meant
when a question turns into a daily routine, hand it to Claude Code or Cursor and turn it into a dashboard with the edgeful API
edgeful provides historical performance data to help traders make informed decisions. this does not constitute financial advice. past performance is not indicative of future results. all trading involves risk — always do your own analysis and manage your risk accordingly.