Login Page - Create Account

Support Board


Date/Time: Sun, 05 May 2024 06:56:36 +0000



[User Discussion] - Fair Value Gap indicator

View Count: 13290

[2023-05-16 00:54:03]
awakef - Posts: 53
gcUserStudies Can you add a setting to filter when the fair value gap has been filled?
[2023-05-23 20:58:10]
gcUserStudies - Posts: 91
gcUserStudies Can you add a setting to filter when the fair value gap has been filled?

Can you explain further what you mean? There is a setting to hide them once they are filled. Not sure if you are asking something different.
[2023-05-23 21:21:19]
awakef - Posts: 53
As you can see on the image the price went to the fair value gap and went long but the fair value gap is still there.
Is still there because it hasn't been filled completely.
Ict teaches that when that happens is filled already that no need to be fullied completely.
What I mean is a setting that you can put when if filled halfway or just 2 ticks the fair value gap goes filled and disappears.
Thanks for an awesome study!! ;)))
imagefair value.png / V - Attached On 2023-05-23 21:16:15 UTC - Size: 111.5 KB - 550 views
[2023-05-24 11:29:20]
wildpanther1945 - Posts: 46
@awakef,@gcUserStudies; Is it okay if you can share the study for the Fair Value Gap? Is there also a study Order block? Thanks..
[2023-05-27 15:58:41]
gcUserStudies - Posts: 91
As you can see on the image the price went to the fair value gap and went long but the fair value gap is still there.
Is still there because it hasn't been filled completely.
Ict teaches that when that happens is filled already that no need to be fullied completely.
What I mean is a setting that you can put when if filled halfway or just 2 ticks the fair value gap goes filled and disappears.
Thanks for an awesome study!! ;)))

I see what you mean. I will take a look and see if I can add this.
[2023-05-27 16:00:04]
gcUserStudies - Posts: 91
@awakef,@gcUserStudies; Is it okay if you can share the study for the Fair Value Gap? Is there also a study Order block? Thanks..

The study is here if you need to find it or share it: https://gcuserstudies.github.io/#download


Regarding order block. Is there a solid definition of what one is?
[2023-05-27 16:25:08]
awakef - Posts: 53
Thanks gcUserStudies. Would be super awesome if you add it.
I can pay for that is too much hassle for you.
Thanks again for that awesome study!!!
[2023-05-27 19:20:04]
divinasion - Posts: 6
Regarding order block. Is there a solid definition of what one is?

I don't believe there is. Sometimes ICT will use the last candle before an impulsive move/displacement, sometimes he'll use a series of candles. Even when there a series of candles he might still pick the last one.😅

What's more, sometimes he'll use the body and sometimes he'll include the wicks.

Because of this variance in SMC trading, it makes me question the request of hiding any FVG after half is filled (consequent encroachment) , as the market will often still go and fill that gap in its entirely... multiple times... even weeks later...
[2023-05-27 22:13:22]
wildpanther1945 - Posts: 46
I think as per what I read so far, its's the last Up bar on an Imbalance candle before the price moves down and last down candle before price moves up with Imbalance candle.
[2023-05-27 23:32:59]
User573977 - Posts: 8
this script may help you
LuxAlgo has vast experience with ICT concepts scripts
The script is open source

https://www.tradingview.com/script/piIbWMpY-Order-Blocks-Breaker-Blocks-LuxAlgo/


// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5
indicator("Order Blocks & Breaker Blocks [LuxAlgo]", overlay = true
, max_lines_count = 500
, max_labels_count = 500
, max_boxes_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(10, 'Swing Lookback' , minval = 3)
showBull = input.int(3, 'Show Last Bullish OB', minval = 0)
showBear = input.int(3, 'Show Last Bearish OB', minval = 0)
useBody = input(false, 'Use Candle Body')

//Style
bullCss = input(color.new(#2157f3, 80), 'Bullish OB' , inline = 'bullcss', group = 'Style')
bullBreakCss = input(color.new(#ff1100, 80), 'Bullish Break', inline = 'bullcss', group = 'Style')

bearCss = input(color.new(#ff5d00, 80), 'Bearish OB' , inline = 'bearcss', group = 'Style')
bearBreakCss = input(color.new(#0cb51a, 80), 'Bearish Break', inline = 'bearcss', group = 'Style')

showLabels = input(false, 'Show Historical Polarity Changes')

//-----------------------------------------------------------------------------}
//UDT's
//-----------------------------------------------------------------------------{
type ob
float top = na
float btm = na
int loc = bar_index
bool breaker = false
int break_loc = na

type swing
float y = na
int x = na
bool crossed = false

//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
swings(len)=>
var os = 0
var swing top = swing.new(na, na)
var swing btm = swing.new(na, na)

upper = ta.highest(len)
lower = ta.lowest(len)

os := high[len] > upper ? 0
: low[len] < lower ? 1 : os

if os == 0 and os[1] != 0
top := swing.new(high[length], bar_index[length])

if os == 1 and os[1] != 1
btm := swing.new(low[length], bar_index[length])

[top, btm]

method notransp(color css) => color.rgb(color.r(css), color.g(css), color.b(css))

method display(ob id, css, break_css)=>
if id.breaker
box.new(id.loc, id.top, id.break_loc, id.btm, css.notransp()
, bgcolor = css
, xloc = xloc.bar_time)

box.new(id.break_loc, id.top, time+1, id.btm, na
, bgcolor = break_css
, extend = extend.right
, xloc = xloc.bar_time)

line.new(id.loc, id.top, id.break_loc, id.top, xloc.bar_time, color = css.notransp())
line.new(id.loc, id.btm, id.break_loc, id.btm, xloc.bar_time, color = css.notransp())
line.new(id.break_loc, id.top, time+1, id.top, xloc.bar_time, extend.right, break_css.notransp(), line.style_dashed)
line.new(id.break_loc, id.btm, time+1, id.btm, xloc.bar_time, extend.right, break_css.notransp(), line.style_dashed)
else
box.new(id.loc, id.top, time, id.btm, na
, bgcolor = css
, extend = extend.right
, xloc = xloc.bar_time)

line.new(id.loc, id.top, time, id.top, xloc.bar_time, extend.right, css.notransp())
line.new(id.loc, id.btm, time, id.btm, xloc.bar_time, extend.right, css.notransp())

//-----------------------------------------------------------------------------}
//Detect Swings
//-----------------------------------------------------------------------------{
n = bar_index

[top, btm] = swings(length)
max = useBody ? math.max(close, open) : high
min = useBody ? math.min(close, open) : low

//-----------------------------------------------------------------------------}
//Bullish OB
//-----------------------------------------------------------------------------{
var bullish_ob = array.new<ob>(0)
bull_break_conf = 0

if close > top.y and not top.crossed
top.crossed := true

minima = max[1]
maxima = min[1]
loc = time[1]

for i = 1 to (n - top.x)-1
minima := math.min(min[i], minima)
maxima := minima == min[i] ? max[i] : maxima
loc := minima == min[i] ? time[i] : loc

bullish_ob.unshift(ob.new(maxima, minima, loc))

if bullish_ob.size() > 0
for i = bullish_ob.size()-1 to 0
element = bullish_ob.get(i)

if not element.breaker
if math.min(close, open) < element.btm
element.breaker := true
element.break_loc := time
else
if close > element.top
bullish_ob.remove(i)
else if i < showBull and top.y < element.top and top.y > element.btm
bull_break_conf := 1

//Set label
if bull_break_conf > bull_break_conf[1] and showLabels
label.new(top.x, top.y, 'â–¼', color = na
, textcolor = bearCss.notransp()
, style = label.style_label_down
, size = size.tiny)

//-----------------------------------------------------------------------------}
//Bearish OB
//-----------------------------------------------------------------------------{
var bearish_ob = array.new<ob>(0)
bear_break_conf = 0

if close < btm.y and not btm.crossed
btm.crossed := true

minima = min[1]
maxima = max[1]
loc = time[1]

for i = 1 to (n - btm.x)-1
maxima := math.max(max[i], maxima)
minima := maxima == max[i] ? min[i] : minima
loc := maxima == max[i] ? time[i] : loc

bearish_ob.unshift(ob.new(maxima, minima, loc))

if bearish_ob.size() > 0
for i = bearish_ob.size()-1 to 0
element = bearish_ob.get(i)

if not element.breaker
if math.max(close, open) > element.top
element.breaker := true
element.break_loc := time
else
if close < element.btm
bearish_ob.remove(i)
else if i < showBear and btm.y > element.btm and btm.y < element.top
bear_break_conf := 1

//Set label
if bear_break_conf > bear_break_conf[1] and showLabels
label.new(btm.x, btm.y, 'â–²', color = na
, textcolor = bullCss.notransp()
, style = label.style_label_up
, size = size.tiny)

//-----------------------------------------------------------------------------}
//Set Order Blocks
//-----------------------------------------------------------------------------{
for bx in box.all
bx.delete()

for l in line.all
l.delete()

if barstate.islast
//Bullish
if showBull > 0
for i = 0 to math.min(showBull-1, bullish_ob.size())
get_ob = bullish_ob.get(i)
get_ob.display(bullCss, bullBreakCss)

//Bearish
if showBear > 0
for i = 0 to math.min(showBear-1, bearish_ob.size())
get_ob = bearish_ob.get(i)
get_ob.display(bearCss, bearBreakCss)

//-----------------------------------------------------------------------------}

[2023-06-14 20:54:11]
awakef - Posts: 53
gcUserStudies any news about adding the setting I talked you about?
[2023-06-15 17:57:16]
divinasion - Posts: 6
Just wanted to make a slight correction; in an earlier comment I said that a wick could be considered a gap - I now believe a wick could be considered an inefficiency (provided the wick is not merely rebalancing something).
A gap is a kind of inefficiency but an inefficiency is not necessarily a gap.. inefficiencies can be gaps(actual gaps in price), imbalances OR wicks.

And if we're going to be thorough, a good FVG indicator should probably highlight ALL inefficiencies... otherwise, the trader should manually identify them so as to not miss any important signals in the chart.

I could still be incorrect about the wicks (SMC is very complex) but I think this is closer to the truth.

Regarding fair value gaps; for the sake of any future indicators, I have been studying price action and as it stands I am inclined to believe that a fair value gap is considered balanced even if price immediately retraces only 50% then moves away from that price range. It is these kinds of nuances that an indicator might not take into consideration that explain why ICT is against their use.
Date Time Of Last Edit: 2023-06-18 16:07:36
[2023-06-17 15:03:47]
wildpanther1945 - Posts: 46
Is there a way to only highlight the wide range bar or wider to really show the inefficiency between bars? What I noticed is that it highlight almost every gap which make the chart messy. Just a thought...
[2023-06-18 00:39:29]
User708541 - Posts: 56
What is a 'wide range bar or wider'? It seems like you are talking about a candle with an unusually big difference between its high and low compared to other candles, or as ICT would call it a candle with a significant displacement. But if that's the case, how would you define what is considered 'wide range'? Some percentage of ATR?
[2023-06-22 17:41:28]
divinasion - Posts: 6
Second and hopefully final update,

I've spent hours watching ict videos and studying charts, and I now belive wicks are not even inefficiencies in price; they are simply price being offered twice - up and down, or down and up. A third pass before or after the wick is printed turns them into a BPR (balanced price range).

This is why they are revisited, when price has only been delivered two ways, but three is needed to make a range. When wicks are traded completely through, it is to take stop losses. That's why you often see wicks' highs or lows get taken out. The end.

(Actually I could talk about this topic at length because there are multiple nuances like the 50% point of a range or wick but I want to put it to bed now I've corrected my mistake and I'm not misinforming anyone. 😉)
Date Time Of Last Edit: 2023-06-22 17:55:03
[2023-06-29 16:36:56]
User708541 - Posts: 56
This ICT stuff is literally like the weather. It's always changing, never consistent. The rules are never the same. Take ICTs viral 'Silver Bullet'. This was discussed briefly by ICT in twitter chat and again in a video. It seemed to have a fairly simple, rule-based, approach. But the entire internet just couldn't agree on what the Silver Bullet trade was. It was like a game of telephone. No two people could agree on what the, supposedly simple, trade was (and it was 'guaranteed' to happen every f'ing day in a certain time interval). Then when ICT goes on to further explain it in later videos, he himself contradicts what he said in the original video. It's an endless path of nonsense. Yes, there are some nuggets of gold in there. But everything is so 'purposely' confusing that if you have 100 traders in a room, all 100 traders will give you different answers to any given ICT topic.
Take your wick example and how nuanced the wick is. Do you realize that within every wick is an order-block? Mind blown. Now what do you do with that information?
[2023-06-29 20:14:09]
awakef - Posts: 53
That's so true!

Anyways @gcUserStudies any updates about the feature we spoke about?
[2023-08-16 21:12:23]
gcUserStudies - Posts: 91
Anyways @gcUserStudies any updates about the feature we spoke about?

So sorry and apologize for no reply. Honestly a while back I started working on it and made some progress but then introduced an issue that I had yet to resolve. Before I could finish resolving the issue, real life started dropping non stop blow after blow on me. Thus, I haven't been able to spend any time on this. I haven't forgotten about it. Will get back to working on it as soon as I can.
[2023-08-16 21:38:25]
awakef - Posts: 53
Don't worries take your time.
Hope everything is good on your life.
Take care!
[2023-08-30 16:06:15]
Ed C. - Posts: 98
Do you realize that within every wick is an order-block? Mind blown. Now what do you do with that information?

Much of the ICT stuff is not original. For example, the idea of "order blocks" as areas between a wick and a body has been well-known to institutional traders for decades. The idea of a "fair-value gap" is invented nonsense - look at how many times it forms and then disappears on a chart. How do you use that to trade?

As to your question, the idea is to draw those so-called "order blocks" on a higher timeframe chart, then lower the timeframe and isolate those drawn areas to what the market respected on the lower timeframe. You can go down as far as you want, to isolate those areas that the market is likely to respect.

I would suggest that you draw those zones only on candles with the highest volume - that's where institutional traders are active.
[2023-10-11 05:28:44]
maxm1987 - Posts: 104
Hi guys,

can anyone share the study with me? I realized that the github link doesnt work anymore.

Thanks!
[2023-10-11 06:26:07]
ticinotrader - Posts: 378
https://gcuserstudies.github.io/
[2023-10-13 22:33:34]
TropicalTrader - Posts: 35
Thankyou @gcUserStudies , your fair value gap indicator is awesome! Its one of the top tools I use.

Have you thought about making an inversion indicator?

>> inversions create really nice trades plus help in developing context.

If you want to check it out, here is an example and an indicator that plots it correctly.

image link:
https://cdn.shopify.com/s/files/1/0598/6757/files/inversions.jpg

indicator details:
https://www.tradingview.com/script/arQP5Q2f-Inverse-FVG-with-Rejections-TFO/

The indicator has settings for both fvg and inverse (fvg-i), I recommend:
1. Show regular FVG off
2. Show inverse fvg on
3. extend boxes on
4. bottom 3 off
[2023-10-26 14:22:55]
maxm1987 - Posts: 104
Hi guys.

would appreciate if you could have a look at the screenshot, i am forever grateful for the fvg indicator BUT: maybe I just not getting 1 or 2 things.

I set the indicator to extend the fvg to the right and that it doesnt disappear when it gets filled in.

the FVG marked 1 gets filled in and then disappears, the fvg marked 2 doesnt get extended to the far right of the window.

Is this what it´s supposed to do?

TY

EDIT: reading through my post I stumbled upon the disappearing part of it. The fvg doesnt disappear but is there a way to leave the fvg extended to the right until the session ends even though it got filled in? like a fvg cutting through candles
Date Time Of Last Edit: 2023-10-26 14:29:02
imagefvg.PNG / V - Attached On 2023-10-26 14:16:46 UTC - Size: 446.55 KB - 157 views
[2023-10-26 15:11:26]
maxm1987 - Posts: 104
and while we are at it maybe you could have a look at the second screenshot as well.

I concerns the order of the studies .. first, the FVG were hidden under the VP, so in the drawings settings I set "Draw highlight drawings underneath main graph and studies" to "No" .. so now the FVG are on top of the VP however the fvg are on top of the candles as well .. is there a way to display the VP in the background, on top of that come the fvgs and then the candles?
imagefvg2.PNG / V - Attached On 2023-10-26 15:06:44 UTC - Size: 120.16 KB - 506 views

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account