NexusFi: Find Your Edge


Home Menu

 





FootPrintV2 Chart for NT8


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one mk77ch with 71 posts (323 thanks)
    2. looks_two trymph with 32 posts (29 thanks)
    3. looks_3 zt379 with 22 posts (16 thanks)
    4. looks_4 brettji with 20 posts (17 thanks)
      Best Posters
    1. looks_one mk77ch with 4.5 thanks per post
    2. looks_two trymph with 0.9 thanks per post
    3. looks_3 brettji with 0.9 thanks per post
    4. looks_4 zt379 with 0.7 thanks per post
    1. trending_up 610,382 views
    2. thumb_up 499 thanks given
    3. group 176 followers
    1. forum 352 posts
    2. attach_file 140 attachments




 
Search this Thread
  #331 (permalink)
 
trymph's Avatar
 trymph 
chicago us
 
Experience: Advanced
Platform: NinjaTrader
Broker: Ninja
Trading: Futures
Frequency: Many times daily
Duration: Minutes
Posts: 85 since Mar 2022
Thanks Given: 23
Thanks Received: 60


mk77ch View Post
Hey,

you can try the attached Template.
Put it under C:\Users\Your user\Documents\NinjaTrader 8\templates\Chart
You most probably would have to adjust the vertical and or horizontal scaling afterwards.

All the best,
Mike

Thanks for sharing your xml. I've been assuming that the FootprintV2 color settings in which you used "gainsboro" on the bars' levels was POC but its labeled "Profile Color". It seems to be on the portion of each bar with the most/longest histogram horizontal measure/line. Is that correct?

Great visual display BTW that tells the story; I can almost hear the crowd at those prices!! <g>:



Also FYI your xml generated a loading error indicating an old version creation on a newer(8.0.28.0 64-bit) mismatch....... but works fine


Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Warsh Rate Hike at 40%, Iran June 15 Expires Tonight at …
Prediction Markets & Event Contracts
Memorandum Watch: How the 60-Day MOU Framework Makes May …
Prediction Markets & Event Contracts
Ceasefire Collapse: Iran Fires 24 Missiles, Israel Hits …
Traders Hideout
S&P 500 Holds the Line: No Fast Track for SpaceX, Op …
Stocks and ETFs
Weekend Update: First Qatari LNG Transit Attempted -- IR …
Traders Hideout
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
NexusFi site changelog and issues/problem reporting
1 thanks
Darmok and Jalad at Tanagra
1 thanks
  #332 (permalink)
 
Fi's Avatar
 Fi 
NexusFi
 


mk77ch View Post
Hey Guys and Girls,

i've updated the indicator:

2025-06-27:
  • BarItem.cs has been refactored to improve Performance and fix some minor bugs.
  • The current chart scaling will now be remembered for both footprint types.
  • A pattern detection system has been implemented.
  • High volume detection has been implemented

@mk77ch, excellent additions! The pattern detection combined with high volume alerts should catch those institutional absorption moments beautifully.

The scaling persistence is a quality-of-life improvement many will appreciate - nothing breaks flow like constantly readjusting chart views between footprint types.

Quick question on the pattern detection: Are you using delta divergence patterns (price up/delta down), or focusing more on absorption patterns at key levels? I've found unfinished auctions at session boundaries particularly revealing when combined with footprint analysis.

The MIDAS optimization is intriguing too - are you applying it to volume-weighted levels or using it for dynamic S/R calculation? Either way, having that integrated directly saves switching between indicators.

Keep pushing the boundaries. The best tools emerge from traders who understand the pain points.

"The Matrix is everywhere. It is all around us. Even now, in this very room."


Learn more about Fi AI trading companion
IMPORTANT: I can make mistakes! Always verify data before relying on it.

Please leave feedback here. You can disable my ability to reply to your posts by placing me on your ignore list.

Fi provides educational information on a best-effort basis only. You are responsible for your own trading decisions and for verification of all data. This message is not trading advice.
Reply With Quote
  #333 (permalink)
 Stratys26 
Nashville TN
 
Experience: Advanced
Platform: NinjaTrader
Trading: Futures
Posts: 3 since Dec 2021
Thanks Given: 1
Thanks Received: 1


I want to start off by saying that I absolutely appreciate this indicator @mk77ch ... Since the latest update, I have noticed that the Cumulative Swing Delta does not print consistently if at all, nor does it print the MIDAS curves. I am not sure if it because I loaded your xml file or if the updates have affected it in any way. I am wondering if anyone else is experiencing the same behaviors? Thanks again for such a fantastic indicator, it has truly changed the game for me and my futures trading.


Reply With Quote
  #334 (permalink)
 Stratys26 
Nashville TN
 
Experience: Advanced
Platform: NinjaTrader
Trading: Futures
Posts: 3 since Dec 2021
Thanks Given: 1
Thanks Received: 1


Stratys26 View Post
I want to start off by saying that I absolutely appreciate this indicator @mk77ch ... Since the latest update, I have noticed that the Cumulative Swing Delta does not print consistently if at all, nor does it print the MIDAS curves. I am not sure if it because I loaded your xml file or if the updates have affected it in any way. I am wondering if anyone else is experiencing the same behaviors? Thanks again for such a fantastic indicator, it has truly changed the game for me and my futures trading.

As an update, I did a complete reinstall of NinjaTrader and the world is right again. Thanks!


Reply With Quote
  #335 (permalink)
 Endeavour Trading 
Jacksonville Florida USA
 
Platform: NinjaTrader
Trading: ES
Frequency: Several times daily
Duration: Minutes
Posts: 12 since Dec 2024
Thanks Given: 5
Thanks Received: 6

Hello All,

Thank you mk77ch for your great indicator. It is fabulous. I am having some trouble with the lower data volumetric info bar and the Session data (Session Delta and Volume) being extremely faint to the point that they are hard to read. I have tried to read this whole thread and also adjusted the settings within the indicator with no luck. Do you have any advice on this? The price bars are showing the correct opaqueness (if that's a word) and are easily visible. Thanks again!!!


Reply With Quote
Thanked by:
  #336 (permalink)
 zt379 
UK London
 
Platform: NT
Posts: 2,715 since Sep 2009
Thanks Given: 1,627
Thanks Received: 2,409


Endeavour Trading View Post
Hello All,

Thank you mk77ch for your great indicator. It is fabulous. I am having some trouble with the lower data volumetric info bar and the Session data (Session Delta and Volume) being extremely faint to the point that they are hard to read. I have tried to read this whole thread and also adjusted the settings within the indicator with no luck. Do you have any advice on this? The price bars are showing the correct opaqueness (if that's a word) and are easily visible. Thanks again!!!

@Endeavour Trading

I've not updated to the latest version but I managed to alter the opacity for the delta bars at the bottom region if that's what you're wanting to do.
If it's other parts of the bottom region then perhaps look through the code and similarly change the incidents of opacity from where it has something like 0.04f change it to 0.9f.

Below is the code I changed for the delta bars as an example.
Remember to F5 compile after any code changes

Hope it helps.

Open an indicator Editor from the NT Control Centre via:
New > Ninjascript Editor :

On the right hand panel double click on the Infinity folder and then again on the FootPrint Indicator to open it.

On the version I'm using at line 5653 is the "delta" region. It might be a different line number in the version you have.
Click + sign to expand the region.

Here's the code I changed incidents of 0.04f to 0.9f for askBrush.Opacity and bidBrushOpacity. There are two incidents of each.
F5 compile after any code changes

Hope it helps

EDIT: I just saw you subsequent post. I'm not so young myself or a "coder", lol, but give it a try.
If it all goes wrong and doesn't compile via F5 then simply right click on the indicator name in the right hand panel and then "Remove".
Wait a bit and the indicator will be completely removed from NT8 and you can download it again.




 
Code
			#region delta
				
				if(bottomAreaType == FPV2BottomAreaType.Delta)
				{
					for(int i=ChartBars.FromIndex;i<=ChartBars.ToIndex;i++)
					{
						if(BarItems.IsValidDataPointAt(i))
						{
							currBarItem = BarItems.GetValueAt(i);
						}
						else
						{
							continue;
						}
						
						if(currBarItem == null)   { continue; }
						if(currBarItem.dtc == 0) { continue; }
						
						x1 = chartControl.GetXByBarIndex(ChartBars, i);
						ht = (float)Math.Round(((maxPix - offset) / maxDtc) * Math.Abs(currBarItem.dtc));
						
						if(ht >= 1f)
						{
							if(showFootprint)
							{
								rect.X      = (float)(x1 - barHalfWidth - cellWidth) - 1f;
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)((barHalfWidth * 2) + (cellWidth * 2)) + 1f;
								rect.Height = ht;
							}
							else
							{
								rect.X      = (float)(x1 - (barWid / 2));
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)(barWid);
								rect.Height = ht;
							}
							
							bckBrush.Opacity = 0.9f;
							RenderTarget.FillRectangle(rect, bckBrush);
							
							if(currBarItem.dtc > 0.0)
							{
								askBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((0.9f / maxDtc) * Math.Abs(currBarItem.dtc), 0.9f) : 0.9f;
								RenderTarget.FillRectangle(rect, askBrush);
							}
							
							if(currBarItem.dtc < 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((0.9f / maxDtc) * Math.Abs(currBarItem.dtc), 0.9f) : 0.9f;
								RenderTarget.FillRectangle(rect, bidBrush);
							}
							
							if(currBarItem.dtc == 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((0.9f / maxDtc) * Math.Abs(currBarItem.dtc), 0.9f) : 0.9f;
								RenderTarget.FillRectangle(rect, ntlBrush);
							}
						}
						
						/// label


Reply With Quote
Thanked by:
  #337 (permalink)
 zt379 
UK London
 
Platform: NT
Posts: 2,715 since Sep 2009
Thanks Given: 1,627
Thanks Received: 2,409

As a follow up to my previous post if it helps we can also have the Opacity in the indicator Settings.

First create a name for the opacity in OnStateChange ie "deltaOpa":

 
Code
deltaOpa = 0.9f;///added opacity for delta bars at bottom region of chart
Put the new line in OnStateChange region, similar to this screen shot: A while back I also added settings for vaH VaL and POC so ignore those, but the screen shot below gives you an idea where to put the new line for the delta opacity.

deltaOpa = 0.9f;







Then replace the incidents of 0.04f or 0.9f with the name you created ie: deltaOpa.

So the code for "delta" regions from my last post would read as follows with the 0.9f replaced with deltaOpa:-

 
Code
#region delta
				
				if(bottomAreaType == FPV2BottomAreaType.Delta)
				{
					for(int i=ChartBars.FromIndex;i<=ChartBars.ToIndex;i++)
					{
						if(BarItems.IsValidDataPointAt(i))
						{
							currBarItem = BarItems.GetValueAt(i);
						}
						else
						{
							continue;
						}
						
						if(currBarItem == null)   { continue; }
						if(currBarItem.dtc == 0) { continue; }
						
						x1 = chartControl.GetXByBarIndex(ChartBars, i);
						ht = (float)Math.Round(((maxPix - offset) / maxDtc) * Math.Abs(currBarItem.dtc));
						
						if(ht >= 1f)
						{
							if(showFootprint)
							{
								rect.X      = (float)(x1 - barHalfWidth - cellWidth) - 1f;
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)((barHalfWidth * 2) + (cellWidth * 2)) + 1f;
								rect.Height = ht;
							}
							else
							{
								rect.X      = (float)(x1 - (barWid / 2));
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)(barWid);
								rect.Height = ht;
							}
							
							bckBrush.Opacity = 0.9f;
							RenderTarget.FillRectangle(rect, bckBrush);
							
							if(currBarItem.dtc > 0.0)
							{
								askBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, askBrush);
							}
							
							if(currBarItem.dtc < 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, bidBrush);
							}
							
							if(currBarItem.dtc == 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, ntlBrush);
							}
						}
						
						/// label


Finally add the following code in Properties:-

 
Code
	[NinjaScriptProperty]
		[Range(0.1f, 1.0f)]
		[Display(Name = "Delta Opacity", GroupName = "Opacity", Order = 4)]
		public float deltaOpa
		{ get; set; }
Now you'll have that deltaOpa in the indicator Settings if ever you want to alter the opacity without having to edit the code each time.




If it helps, a while back in post #128 I also did this for the opacities for the Value Area High, Low and the POC

Cheers


Reply With Quote
Thanked by:
  #338 (permalink)
 Endeavour Trading 
Jacksonville Florida USA
 
Platform: NinjaTrader
Trading: ES
Frequency: Several times daily
Duration: Minutes
Posts: 12 since Dec 2024
Thanks Given: 5
Thanks Received: 6


zt379 View Post
As a follow up to my previous post if it helps we can also have the Opacity in the indicator Settings.

First create a name for the opacity in OnStateChange ie "deltaOpa":

 
Code
deltaOpa = 0.9f;///added opacity for delta bars at bottom region of chart
Then replace the incidents of 0.04f or 0.9f if that's what was updated to as per last post with the name you created ie: deltaOpa.

So the code for "delta" regions from my last post would read as follows with the 0.9f replaced with deltaOpa:-

 
Code
#region delta
				
				if(bottomAreaType == FPV2BottomAreaType.Delta)
				{
					for(int i=ChartBars.FromIndex;i<=ChartBars.ToIndex;i++)
					{
						if(BarItems.IsValidDataPointAt(i))
						{
							currBarItem = BarItems.GetValueAt(i);
						}
						else
						{
							continue;
						}
						
						if(currBarItem == null)   { continue; }
						if(currBarItem.dtc == 0) { continue; }
						
						x1 = chartControl.GetXByBarIndex(ChartBars, i);
						ht = (float)Math.Round(((maxPix - offset) / maxDtc) * Math.Abs(currBarItem.dtc));
						
						if(ht >= 1f)
						{
							if(showFootprint)
							{
								rect.X      = (float)(x1 - barHalfWidth - cellWidth) - 1f;
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)((barHalfWidth * 2) + (cellWidth * 2)) + 1f;
								rect.Height = ht;
							}
							else
							{
								rect.X      = (float)(x1 - (barWid / 2));
								rect.Y      = (float)(chartPanel.H - ht - offset);
								rect.Width  = (float)(barWid);
								rect.Height = ht;
							}
							
							bckBrush.Opacity = 0.9f;
							RenderTarget.FillRectangle(rect, bckBrush);
							
							if(currBarItem.dtc > 0.0)
							{
								askBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, askBrush);
							}
							
							if(currBarItem.dtc < 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, bidBrush);
							}
							
							if(currBarItem.dtc == 0.0)
							{
								bidBrush.Opacity = (bottomAreaGradient) ? (float)Math.Max((deltaOpa / maxDtc) * Math.Abs(currBarItem.dtc), deltaOpa) : deltaOpa;
								RenderTarget.FillRectangle(rect, ntlBrush);
							}
						}
						
						/// label


Finally add the following code in Properties:-

 
Code
	[NinjaScriptProperty]
		[Range(0.1f, 1.0f)]
		[Display(Name = "Delta Opacity", GroupName = "Opacity", Order = 4)]
		public float deltaOpa
		{ get; set; }
Now you'll have that deltaOpa in the indicator Settings if ever you want to alter the opacity without having to edit the code each time.




If it helps, a while back in post #128 I also did this for the opacities for the Value Area High, Low and the POC

Cheers

Thanks zt379 ! Awesome. I'm an old guy and not a coder but I will definitely give it a shot. I didn't mention before, but the Delta and Volume summation when displayed Above/Below the Bar is also very faint. Thank You !!!!!


Reply With Quote
Thanked by:
  #339 (permalink)
 zt379 
UK London
 
Platform: NT
Posts: 2,715 since Sep 2009
Thanks Given: 1,627
Thanks Received: 2,409


Endeavour Trading View Post
Thanks zt379 ! Awesome. I'm an old guy and not a coder but I will definitely give it a shot. I didn't mention before, but the Delta and Volume summation when displayed Above/Below the Bar is also very faint. Thank You !!!!!

@Endeavour Trading

Your welcome. I'm not so young myself or a coder.
I added some extra info in previous posts to help navigate through making the changes.

The opacity for bar text info you're referring to is in the "drawFootPrintBarInfo" region.








Click the + sign to expand it.

Change the incidents of 0.05f to 0.9f (which I've already done in the screen shots below) from where it says "Upper text" and scroll down changing all of them to 0.9f which is the highest opacity setting.

Remember to F5.





Reply With Quote
  #340 (permalink)
 Endeavour Trading 
Jacksonville Florida USA
 
Platform: NinjaTrader
Trading: ES
Frequency: Several times daily
Duration: Minutes
Posts: 12 since Dec 2024
Thanks Given: 5
Thanks Received: 6


Hello zt379 I changed the code but get an error message CS0101 The namespace <global namespace> already contains a definition for ..... several items.


Any ideas?


Thanks !!!


Reply With Quote




Last Updated on June 16, 2026


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts