Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

ICT Fair Value Gap

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Hi gemify, nice indicator.
    Shouldn't the upperFVG be closed as it is pierced?
    Click image for larger version

Name:	pierced.png
Views:	1945
Size:	37.9 KB
ID:	1227040

    Comment


      #17
      Originally posted by Milton Menendez View Post
      hello gemify, very good indicator, thanks for sharing, I just have a question, because if I use a time frame above 4 minutes, it stops marking the FVG, I can only use it from 4 minutes down, as I indicated, just a doubt, greetings, and thanks again.
      Hey Milton Menendez, since this indicator depends on ATR to determine if a move is an impulse move or not, you may need to adjust the "ATR Period" and the "ATRs in Impulse Move" parameters to better detect FVGs in your desired timeframe. Hope this helps.

      Click image for larger version

Name:	image.png
Views:	2203
Size:	7.3 KB
ID:	1227434

      Comment


        #18
        Originally posted by Creamers View Post
        Hi gemify, nice indicator.
        Shouldn't the upperFVG be closed as it is pierced?
        Hey Creamers, the indicator is built to close an FVG if price either:
        - fully pierces through the gap, through the upper/lower bounds, or
        - closes through the upper/lower bounds.

        If price doesn't pierce the gap all the way through, it keeps the FVG open. Hope this helps.
        Last edited by gemify; 12-13-2022, 05:22 PM.

        Comment


          #19
          Hi gemify​, thanks for all the work.

          Just wondering if it is possible to have a choice to reduce the gap following the price action, even if the price hasn't pierced the gap thoroughly. The reason is that the opening gap (esp. if it is huge) of the day often overlaps with my 5-min chart like the one below. For example, the opening gap may show as the yellow box instead. It would be great if this does not apply to opening gap only, but all the gaps so as to make the chart cleaner. Thanks a lot!

          Click image for larger version

Name:	image.png
Views:	1942
Size:	24.8 KB
ID:	1227550

          Comment


            #20
            [QUOTE=gemify;n1227433]

            Hey Milton Menendez, since this indicator depends on ATR to determine if a move is an impulse move or not, you may need to adjust the "ATR Period" and the "ATRs in Impulse Move" parameters to better detect FVGs in your desired timeframe. Hope this helps.

            Click image for larger version  Name:	image.png Views:	14 Size:	7.3 KB ID:	1227434


            thanks for replying, you are absolutely right, but if you take into account that when you modify the TF of the chart, the ATR remains in the same plane and moves with the same settings, it should not affect, but I will be testing and when I have a good statistic, I will let you see the data.

            additional, as a suggestion and if it can be carried out, it would be excellent.

            to be able to modify in the "Bearish FVG Color" and "Billish FVG Color", the type of line of the box and thickness of the same one, even if it can be eliminated and only leave the opacity of the box, that would also make a cleaner graphic.


            Click image for larger version

Name:	image.png
Views:	1988
Size:	4.4 KB
ID:	1227570

            Comment


              #21
              Thx a lot gemify

              I have a question: is there anyway to set the default to the FVG box with a smaller outline?
              I always have to select each box one by one and change the outline.

              thx again!

              Comment


                #22
                Originally posted by morong0414 View Post
                Hi gemify​, thanks for all the work.

                Just wondering if it is possible to have a choice to reduce the gap following the price action, even if the price hasn't pierced the gap thoroughly. The reason is that the opening gap (esp. if it is huge) of the day often overlaps with my 5-min chart like the one below. For example, the opening gap may show as the yellow box instead. It would be great if this does not apply to opening gap only, but all the gaps so as to make the chart cleaner. Thanks a lot!

                Click image for larger version

Name:	image.png
Views:	1942
Size:	24.8 KB
ID:	1227550
                Would indeed be nice to give a limit to the unfilled/unpierced gaps. For example a length value of x bars.
                Also another feature request would be to add the option Touched next to pierced and closed

                Comment


                  #23
                  Gemify I just want to publicly thank you for your work on this indicator. It has helped me out tremendously with my entries! If you ever find yourself in Charlotte NC dinner is on me (:

                  Comment


                    #24
                    Originally posted by gemify View Post

                    Hey Milton Menendez, since this indicator depends on ATR to determine if a move is an impulse move or not, you may need to adjust the "ATR Period" and the "ATRs in Impulse Move" parameters to better detect FVGs in your desired timeframe. Hope this helps.

                    Click image for larger version

Name:	image.png
Views:	2204
Size:	7.3 KB
ID:	1227434
                    Hi Gemify, thank you very much for your work and creating this great indicator. Do you have an example of parameter for the ATR period and ATRs in Impulse Move that will make the ICTFVG appear on a daily chart. I know that i can try to extend the period on the ATR but i dont know what parameter to try on the ATRs in Impulse Move.

                    Thanks again

                    Comment


                      #25
                      gemify Can you add an option to switch between ATR and a minimum GAP value so if all gaps are desired we can switch to minimum gap value and enter .25 (for example as min gap value)? I'm happy to create mods and upload it here for your submittal if that helps.

                      I have been adding a second, higher timeframe Data Series to the same chart windows, setting all the candle options to transparent to make it hidden. For example add a 5 min data series for ES on a 1 min chart. Then you are able to get the 5 min FVGs but watch 1 min price action. You can add this indicator to both data series (and use different colors) but that gets a little busy. I like to watch micro-Nasdaq (MNQ) with a 95 tick chart with 5 min FVG overlay.

                      If you want to see different FVG timeframes (i.e. 15min or 30min) you open dataseries and modify the time period of the second/hidden series.

                      The timeframe of candles (closing time) drives me crazy when I compare to other platforms or listen to ICT point out candles so I submitted a MinuteOpen BarType that shifts the timeframe to match all other platforms.
                      Last edited by tickets2themoon; 02-14-2023, 01:53 PM.

                      Comment


                        #26
                        gemify

                        I'm only just looking in to ICT and wanted to thank you for the FVG indicator you've created.

                        I came across Volume Gap (VG) as an addition to the Fair Value Gap (FVG) .
                        It's a gap between the Close[1] and Open[0].

                        I've created a myversion copy of your indicator and added the attached code that draws the VG's (see attached image Black and White lines)

                        I was interested in seeing how price reacted to past VG's. The attached code does plot the filled VG's but in the same colour as the FVG's and not in the Black and White active VG colours. Also I can't change filled VG opacity or get only the filled VG's to plot without filled FVG's also plotting when "Hide Filled FVG" is ticked and "Hide Filled VG" is unticked.

                        If you have the time and the inclination to add the filled VG's to colour as the active colour I would be most grateful, or any other readers that's able to. Hopefully the code I've so far added can help in that.

                        On the attached image the Black and White lines are the active VG's. They are rectangles in the same manner as the FVG but look like a line because the chart isn't expanded enough. I've also added the ability to Hide Filled VG, change VG colours and active VG opacity in Settings but I'm unable, as mentioned to display the filled VG's with active VG colour or get filled VG opacity to work or only display VG's when Hide Filled VG is unticked.



                        Click image for larger version  Name:	Volume Gaps_b.jpg Views:	0 Size:	137.7 KB ID:	1235514

                        Here are some examples of filled VG's and the colour is still as a down FVG (red) instead of Black. Also the start bar for my filled VG's is incorrect being one bar back at Close[2] instead of at Close[1] bar. The active Black and White VG's do plot from the correct Close[1] bar. Help appreciated.



                        Click image for larger version  Name:	Volume Gaps_c.jpg Views:	0 Size:	137.6 KB ID:	1235529





                        Here's the code I've added so far to OnBarUpdate for the VG's :-


                        Code:
                        ///added for Volume Gap
                        if (ShowVolG)
                        {
                        //Volume gap while going UP
                        if (Open[0] > Close[1] && Close[0] > Open[0] && Close[1] > Open[1])
                        {
                        string tag = "VGUP" + CurrentBar;
                        Draw.Rectangle(this, tag, false, 1, Open[0], -100000, Close[1], VGUpBrush, VGUpBrush, VGActiveAreaOpacity, true);
                        fvgList.Add(new FVG(tag, FVGType.S, Close[1], Open[0], Time[2]));
                        }
                        // volume gap while going DOWN
                        if (Open[0] < Close[1] && Close[0] < Open[0] && Close[1] < Open[1])
                        {
                        string tag = "VGDOWN" + CurrentBar;
                        Draw.Rectangle(this, "VGDOWN" + CurrentBar, false, 1, Close[1], -100000, Open[0], VGDownBrush, VGDownBrush, VGActiveAreaOpacity, true);
                        fvgList.Add(new FVG(tag, FVGType.R, Close[1], Open[0], Time[2]));
                        
                        //
                        }
                        }
                        }



                        Ps: Thanks also to @ticketstothemoon for the idea of adding a 2nd data series.
                        Last edited by dj22522; 02-15-2023, 05:59 PM.

                        Comment


                          #27
                          Good idea. thank you
                          Once the Indicator is adjusted, can you please post the file?

                          Comment


                            #28
                            Originally posted by Robertoxgiam View Post
                            Good idea. thank you
                            Once the Indicator is adjusted, can you please post the file?
                            Hi Robertoxgiam

                            I'm hesitant to post another version of gemify indicator. I wouldn't want it to interfere with the original.


                            In my post above I was trying to incorporate the VG in to the FVG indicator but you can created a separate Volume Gap (VG) only version.

                            Create a copy of the original - open the original in Editor and right click in Editor and chose "SaveAs " and give it a different name.


                            Then replace the the OnBarUpdate section with this which gives the conditions to draw the VG's:-

                            Code:
                            protected override void OnBarUpdate()
                            {
                            if (CurrentBar < (Bars.Count - MaxBars)) return;
                            
                            CheckFilledFVGs();
                            
                            if (ShowVolGap)
                            
                            
                            {
                            //Volume gap while going UP
                            if (Open[0] > Close[1] && Close[0] > Open[0] && Close[1] > Open[1])
                            {
                            string tag = "VGUP" + CurrentBar;
                            Draw.Rectangle(this, tag, false, 1, Close[1], -100000, Open[0], UpBrush, UpBrush, ActiveAreaOpacity, true);
                            fvgList.Add(new FVG(tag, FVGType.S, Open[0], Close[1], Time[2]));
                            }
                            // Volume gap while going DOWN
                            if (Open[0] < Close[1] && Close[0] < Open[0] && Close[1] < Open[1])
                            {
                            string tag = "VGDOWN" + CurrentBar;
                            Draw.Rectangle(this, "VGDOWN" + CurrentBar, false, 1, Close[1], -100000, Open[0], DownBrush, DownBrush, ActiveAreaOpacity, true);
                            fvgList.Add(new FVG(tag, FVGType.R, Open[0], Close[1], Time[2]));
                            }
                            
                            }
                            }
                            
                            private void CheckFilledFVGs()
                            {
                            List<FVG> filled = new List<FVG>();
                            
                            foreach (FVG fvg in fvgList)
                            {
                            if (fvg.filled) continue;
                            
                            if (fvg.type == FVGType.R && (FillType == FVGFillType.CLOSE_THROUGH ? (Close[0] >= fvg.upperPrice) : (High[0] >= fvg.upperPrice)))
                            {
                            if (DrawObjects[fvg.tag] != null)
                            {
                            fvg.filled = true;
                            fvg.fillTime = Time[0];
                            filled.Add(fvg);
                            }
                            }
                            else if (fvg.type == FVGType.S && (FillType == FVGFillType.CLOSE_THROUGH ? (Close[0] <= fvg.lowerPrice) : (Low[0] <= fvg.lowerPrice)))
                            {
                            if (DrawObjects[fvg.tag] != null)
                            {
                            fvg.filled = true;
                            fvg.fillTime = Time[0];
                            filled.Add(fvg);
                            }
                            }
                            
                            }
                            
                            foreach (FVG fvg in filled)
                            {
                            
                            if (DrawObjects[fvg.tag] != null)
                            {
                            var drawObject = DrawObjects[fvg.tag];
                            Rectangle rect = (Rectangle)drawObject;
                            
                            RemoveDrawObject(fvg.tag);
                            
                            if (!HideFilledFVGaps)
                            {
                            int startBarsAgo = CurrentBar - Bars.GetBar(fvg.gapStartTime);
                            Brush BorderBrush = fvg.type == FVGType.R ? DownBrush : UpBrush;
                            rect = Draw.Rectangle(this, "FILLEDVG" + CurrentBar, false, startBarsAgo, fvg.lowerPrice, 0, fvg.upperPrice, BorderBrush, FillBrush, FilledAreaOpacity, true);
                            rect.OutlineStroke.Opacity = Math.Min(100, FilledAreaOpacity * 4);
                            }
                            }
                            if (HideFilledFVGaps)
                            {
                            fvgList.Remove(fvg);
                            }
                            }
                            }


                            ​​
                            In OnStateChange section add this line any where between lines 77 and 100 for example:-

                            Code:
                            ShowVolGap = true;
                            Also in OnSTateChange to not have the ATR multiplier in indicator settings (which isn't needed to plot the VG) comment out these two lines:-

                            Code:
                            //ATRPeriod = 10;
                            //ImpulseFactor = 1.1;


                            and in State Configure comment out this line:- atr = ATR(ATRPeriod);

                            Code:
                            else if (State == State.Configure)
                            {
                            // atr = ATR(ATRPeriod);
                            }


                            Then replace the Properties section with this which will change the display names in Settings from FGV to VG and I added ability to show VG's "Show VolG":-

                            Code:
                             #region Properties
                                    [NinjaScriptProperty]
                                    [Range(3, int.MaxValue)]
                                    [Display(Name="Max Lookback Bars", Order=100, GroupName="Parameters")]
                                    public int MaxBars
                                    { get; set; }
                            
                                    [NinjaScriptProperty]
                                    [Display(Name = "Gap Fill Condition", Order = 325, GroupName = "Parameters")]
                                    public FVGFillType FillType
                                    { get; set; }
                            
                                    [NinjaScriptProperty]
                                    [Display(Name = "Hide Filled VG", Order = 4, GroupName = "Display")]
                                    public bool HideFilledFVGaps
                                    { get; set; }
                            
                                    [NinjaScriptProperty]
                                    [XmlIgnore]
                                    [Display(Name="Bearish VG Color", Order=100, GroupName="Colors FVG")]
                                    public Brush DownBrush
                                    { get; set; }
                            
                                    [Browsable(false)]
                                    public string DownBrushSerializable
                                    {
                                        get { return Serialize.BrushToString(DownBrush); }
                                        set { DownBrush = Serialize.StringToBrush(value); }
                                    }
                            
                                    [NinjaScriptProperty]
                                    [XmlIgnore]
                                    [Display(Name="Bullish VG Color", Order=200, GroupName = "Colors FVG")]
                                    public Brush UpBrush
                                    { get; set; }
                            
                                    [Browsable(false)]
                                    public string UpBrushSerializable
                                    {
                                        get { return Serialize.BrushToString(UpBrush); }
                                        set { UpBrush = Serialize.StringToBrush(value); }
                                    }
                            
                                    [NinjaScriptProperty]
                                    [Range(1, 100)]
                                    [Display(Name = "Active Volume Gap Opacity", Order = 300, GroupName = "Colors FVG")]
                                    public int ActiveAreaOpacity
                                    { get; set; }
                            
                                    [NinjaScriptProperty]
                                    [Range(1, 100)]
                                    [Display(Name = "Filled Volume Gap Opacity", Order = 400, GroupName = "Colors FVG")]
                                    public int FilledAreaOpacity
                                    { get; set; }
                            
                            
                            ///added Show Vol Gap
                            
                                    [NinjaScriptProperty]
                                    [Display(Name="Show VolG", Description="", Order=3, GroupName="Display")]
                                    public bool ShowVolGap
                                    { get; set; }
                            
                             #endregion
                            ​
                            It should look like this with only the VG version of the indicator on the chart.
                            You could then add the gemify original to also get the FVG's.

                            Click image for larger version  Name:	Volume Gaps_d.jpg Views:	0 Size:	137.3 KB ID:	1235540


                            Hope that helps
                            Last edited by dj22522; 02-16-2023, 03:54 AM.

                            Comment


                              #29
                              Thank you.
                              I'm not a developer and don't know how to script, but do you have the full code so i can copy and paste it to make your indicator?

                              Comment


                                #30
                                Does anyone have CHoCH and BOS indicators?

                                Comment

                                Latest Posts

                                Collapse

                                Topics Statistics Last Post
                                Started by Geovanny Suaza, 02-11-2026, 06:32 PM
                                0 responses
                                579 views
                                0 likes
                                Last Post Geovanny Suaza  
                                Started by Geovanny Suaza, 02-11-2026, 05:51 PM
                                0 responses
                                334 views
                                1 like
                                Last Post Geovanny Suaza  
                                Started by Mindset, 02-09-2026, 11:44 AM
                                0 responses
                                101 views
                                0 likes
                                Last Post Mindset
                                by Mindset
                                 
                                Started by Geovanny Suaza, 02-02-2026, 12:30 PM
                                0 responses
                                554 views
                                1 like
                                Last Post Geovanny Suaza  
                                Started by RFrosty, 01-28-2026, 06:49 PM
                                0 responses
                                551 views
                                1 like
                                Last Post RFrosty
                                by RFrosty
                                 
                                Working...
                                X