Dale
Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
Bar Numbering
Collapse
X
-
Dale, you could certainly create your own indicator that numbers the bars. Just stick this line of code inside OnBarUpdate() of an indicator (perhaps a new indicator to keep stuff separate) and you'll be good to go:
Code:DrawText("bar number" + CurrentBar, CurrentBar.ToString(), 0, High[0] + 3 * TickSize, Color.Black);
AustinNinjaTrader Customer Service
-
Hi again Austin, I discovered the problem, I use 6.5 for my trading, I haven't switched to 7 for live trading yet. When I created the indicator in 7 it worked, however there is already an indicator called Bar Numbers created by someone else which does the same thing. Could you tell me how to set it so the count starts with the first bar of the day? Right now it starts with the first bar of the first day of the chart series.
DB
Comment
-
Dale, you'll have to create some sort of a counter that resets upon each new session. We aren't allowed to write code for customers, but I knew this would be hard to explain and it would result in much back-and-forth between you and us, so I just coded it out for you. Please take a look and study the code so you can see how and when the numbers reset. Of primary interest is the property Bars.FirstBarOfSession - this property returns true if and only if the bar is the first bar of a new session.
Code:public class SessionBars : Indicator { private int sessionBar = 0; private int difference = 0; protected override void Initialize() { Overlay = false; } protected override void OnBarUpdate() { if (Bars.FirstBarOfSession) { sessionBar = 0; difference = CurrentBar; } if ((sessionBar + difference) != CurrentBar) { sessionBar = sessionBar + 1; } DrawText("bar number" + CurrentBar, sessionBar.ToString(), 0, High[0] + 3 * TickSize, Color.Black); } }
Code:if (CurrentBar % 2 == 0) { // place the draw text code here }
AustinNinjaTrader Customer Service
Comment
-
Originally posted by NinjaTrader_Austin View PostDale, you'll have to create some sort of a counter that resets upon each new session. We aren't allowed to write code for customers, but I knew this would be hard to explain and it would result in much back-and-forth between you and us, so I just coded it out for you. Please take a look and study the code so you can see how and when the numbers reset. Of primary interest is the property Bars.FirstBarOfSession - this property returns true if and only if the bar is the first bar of a new session.
Code:public class SessionBars : Indicator { private int sessionBar = 0; private int difference = 0; protected override void Initialize() { Overlay = false; } protected override void OnBarUpdate() { if (Bars.FirstBarOfSession) { sessionBar = 0; difference = CurrentBar; } if ((sessionBar + difference) != CurrentBar) { sessionBar = sessionBar + 1; } DrawText("bar number" + CurrentBar, sessionBar.ToString(), 0, High[0] + 3 * TickSize, Color.Black); } }
Code:if (CurrentBar % 2 == 0) { // place the draw text code here }
Comment
-
Thank you. I tried that, and now the first bar is numbered 2. Here's the full script; is there something else in there throwing it off? Thanks again.
public class SessionBars : Indicator
{
private int sessionBar = 0;
private int difference = 0;
protected override void Initialize()
{
Overlay = false;
}
protected override void OnBarUpdate()
{
if (Bars.FirstBarOfSession)
{
sessionBar = 1;
difference = CurrentBar;
}
if ((sessionBar + difference) != CurrentBar)
{
sessionBar = sessionBar + 1;
}
if (CurrentBar % 2 == 0)
{
DrawText("bar number" + CurrentBar, sessionBar.ToString(), 0, High[0] + 3 * TickSize, Color.White);
}
}
}
}
Comment
-
I believe I may have edited it while you were working? At any event, what you have is not what I last wrote.
difference = CurrentBar - 1;
Funnily enough, once you use that line, it will not matter if you set sessionBar to zero or one: you should get the same result.
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by nicthe, 08-23-2023, 07:53 AM
|
7 responses
196 views
0 likes
|
Last Post
by nicthe
Today, 09:26 AM
|
||
Started by nicthe, Today, 09:24 AM
|
0 responses
5 views
0 likes
|
Last Post
by nicthe
Today, 09:24 AM
|
||
Started by stalt, 12-28-2015, 01:36 PM
|
6 responses
1,536 views
0 likes
|
Last Post
by giulyko00
Today, 09:16 AM
|
||
Started by Tburg1073, Today, 08:36 AM
|
0 responses
7 views
0 likes
|
Last Post
by Tburg1073
Today, 08:36 AM
|
||
Started by alexstox, 10-16-2018, 03:29 PM
|
10 responses
334 views
0 likes
|
Last Post
by Tburg1073
Today, 08:32 AM
|
Comment