PDA

View Full Version : Range bar vertical gaps ?


supertrader
01-07-2009, 06:17 AM
On a range bar chart---- SP500 set to (1) or 1 bar = .25 , I get a gap ( or invisable bar ) between bars ??? Is this normal for Ninja or is there a way to set it to show all bars (all .25 bars) ??? I am new to Ninja and I also use QT-----on QT all range bars show up (or you might say--stairstep)

NinjaTrader_Bertrand
01-07-2009, 06:29 AM
Hi supertrader, welcome to the NinjaTrader forums! Please post us a screenshot of your chart, just to make sure we are on the page. You can also try the RangeBarAlt charttype for yuor needs, you can download it here - http://www.ninjatrader-support2.com/vb/local_links_search.php?action=show&literal=1&search=range+bar+alt&desc=1

supertrader
01-07-2009, 07:50 AM
the bars are not there? sceen shot is attached

NinjaTrader_Bertrand
01-07-2009, 08:44 AM
Thanks, not sure about your other charts underlying definition, but you can clearly see when the set range (1 tick in your case) is exceeded the chart shows a new bar, which is the normal Range Bar expected outcome.

supertrader
01-07-2009, 09:57 AM
This is the same chart on QT (same setting as Ninja) notice that QT bars all touch each other ----------each bar is .25 (1 tick SP500) The bars on Ninja do not touch (there is a missing bar tick between each bar , a missing .25 bar )------------my question--- is there a way to get Ninja to fill in all the bars??? (each bar should be .25 ) 4 of them should add up to 1 point like on QT----------------on ninja it only shows 2 bars per 1 point ?

NinjaTrader_Bertrand
01-07-2009, 10:26 AM
Please see my shot here from today's ES 03-09 1 Tick Range bar chart, 4 tick bars adding up to exactly 1 point and 'touching' each other. For a different range bar implementation you can check our sharing section and look for 'Range Bar Alt'.

supertrader
01-07-2009, 11:13 AM
Your's are drawn correctly----my ninja will not draw the bars like that?(that touch each other while set to 1 range bar) (i have a bar missing in between each bar ?) My setting is .25------------
I do not have ES on my feed -----could it be my feed (TDAmeritrade)? It does not work right on Sp500 or any other stock I select.
Also here is 1 point chart set at Range (4) notice there is a .25 bar gap between each 1 point bar -----it is doing this on all range bars --JUST NOTICED THIS ---what is wrong? Plus just ran the SIM with range bars and it's wrong also----Help ?

NinjaTrader_Bertrand
01-08-2009, 02:12 AM
Hi supertrader, the issue will most likely be the TDA connection does not support historical tick data of which the range bars are created. For the ES you could take the ZenFire trial offer and check if the range bars are to your liking, here are all your data choices with NinjaTrader - http://www.ninjatrader-support.com/HelpGuideV6/HistoricalData.html

MJT
01-08-2009, 04:35 AM
supertrader, the image posted by Bertrand (post #6) is a bit misleading. Look at it again and notice that in all cases the open of a new bar is always one tick away from the previous bar close. The bars appear to match up as you want them to, but in fact they do not.
Range bars in Ninja are designed so that the new bar always opens one tick away from the prior close. To achieve what you want, a custom bar type would have to be coded, which is outside of the capabilities that NinjaTrader will support.

supertrader
01-08-2009, 05:20 AM
You are saying that all range bars are gaped 1 tick apart (ES range bars have a .25 gap)------------I just ran my ES simulator on range bar 4 and there is a .25 tick gap between each range bar -------do your charts (or anyone else) look the same as these two ??? ( I ran a line at 1257.75 on one chart and ran one at 1258.00 on the other = this is the .25 gapping------my main queston is --------------is this right for Ninja???

MJT
01-08-2009, 06:54 AM
supertrader,
Yes to all three questions.
The new bar starts when price goes at least one tick outside of the range of the old bar.

NinjaTrader_Bertrand
01-08-2009, 06:56 AM
Yes supertrader, those chart outcomes are expected.

supertrader
01-08-2009, 02:39 PM
Thanks everyone!!! I would like it to stairstep ---but I can't have everything -----------I will put it on my wish list

RJay
01-12-2009, 11:07 AM
Please see my shot here from today's ES 03-09 1 Tick Range bar chart, 4 tick bars adding up to exactly 1 point and 'touching' each other. For a different range bar implementation you can check our sharing section and look for 'Range Bar Alt'.

NinjaTrader_Bertrand,

I have to disagree with your assesment of your attached chart.

Bar to bar, NT is opening each bar one tick beyond the close of the previous bar on your chart.

If you are trading at market on open of next bar, NT is docking you one tick in and one tick out on every trade. :eek:

It is also causing a time delay in opening up each new bar. :eek:

This needs to be confirmed and fixed ASAP.

Thanks,

RJay

NinjaTrader_Bertrand
01-12-2009, 11:33 AM
Hi RJay, thanks for the input - not sure I follow: the set range has to be exceeded to form a new range bar, so if you have it for example at a 4 Range on the ES (1 full point) and a close of 871.50 the market needs to trade at 871.75 to create a new range bar...

RJay
01-12-2009, 11:52 AM
Here is how I see it. I have to agree with supertrader. QT has it right.

On a 4 range chart, once a bar completes a 4 range spread, a new bar should begin where the last bar left off.

Lost tick values on the ES mini "trading range charts" ( NT vs QT )

8 trades a day = $ (200.00)
5 days a week = $ (1,000.00)
50 weeks a year = $ (50,000.00)

It shouldn't be this way. :(:(:(

Could you please have support look in to this.

Thanks,

RJay

MJT
01-12-2009, 12:44 PM
RJay,
I am sure every range bar trader has their own view, but mine is that the current implementation is best. I want a new bar only when the Range is exceeded, not when it is reached.
To address your concern about lost ticks, could you not enter/exit a trade when the bar reaches it's full range, without waiting for the new bar to form?

RJay
01-12-2009, 01:30 PM
RJay,
I am sure every range bar trader has their own view, but mine is that the current implementation is best. I want a new bar only when the Range is exceeded, not when it is reached.
To address your concern about lost ticks, could you not enter/exit a trade when the bar reaches it's full range, without waiting for the new bar to form?

MJT,

That would be nice except how do I break the cycle. Every bar opens a tick late and begins its 4 count from there (Range 4) . I would have to create a completely new range chart to trade with if things stay as they are right know. :(

It would also be nice to have both. then everyone would be happy. :)

I also believe the current AltRangeBars Chart Just covers up the gaps once they have been created. ie Close[1] does not equal Open[0]. :(

I am curious, not looking for specifics but how are you able to trade around the tick penalty on the range bar charts? ;)

RJay

MJT
01-12-2009, 02:11 PM
RJay,
I agree, the chart will be different, and yes it would be nice to have both options available. The RangeAlt bar type was provided to appease those who disliked the fact that Range bars always fill in any price gaps (apart from the 1 tick between bars of course). A new custom bar type could be made to perform the way you want, but that is outside of the boundaries of NinjaTrader's normal support.

I don't see the 1 tick gap as a penalty - it is just the way the chart is constructed. My system as back tested uses this, and the event that triggers a trade is the open of a new bar. I don't want to enter at the close of the prior bar, as I don't consider the trigger to occur until price goes one tick past that.

I hope that helps, MJT

VTtrader
01-12-2009, 02:25 PM
Why would there ever be a new bar, if the opening tick is the same as the closing/previous tick? By definition it has to be a tick lower/higher to start a new bar. Otherwise, it would be within the range of the previous bar, and no new bar would form. As for a 1 tick penalty, that seems more of a question in backtesting or on historical bars and not a real world event.

Just my opinion,
VT

RJay
01-13-2009, 07:30 AM
Why would there ever be a new bar, if the opening tick is the same as the closing/previous tick? By definition it has to be a tick lower/higher to start a new bar. Otherwise, it would be within the range of the previous bar, and no new bar would form. As for a 1 tick penalty, that seems more of a question in backtesting or on historical bars and not a real world event.

Just my opinion,
VT

VT,


My thoughts are that this would be true if the markets stayed inside the same 4 tick range all day(Range=4). It would also be true for the current Range charts that you are now using.

Thanks for the feedback.

RJay

-----------------------------------------------------------------------


NT,

I've had some time to think about this. The indicators I'm using also update at bar close. This means all my indicators are also one tick behind the market as well.

Also, since most indicators are built off the OHLC bar values, How is the tick value of the gap between each bar suppose to be calculated into each indicator?

Am I losing my mind!!! :eek::eek::eek:

Can you please explain to me why I am wrong about the current Range Chart configuration.

Thanks,

RJay

NinjaTrader_Bertrand
01-13-2009, 08:21 AM
Hi RJay, your indicators using the 'Close' do not differ from the behavior seen on other chart types...when the bar closes the OnBarUpdate() is called which updates your indicator values (with CalculateOnBarClose set to true). You might be able to get an 'edge' by setting this to false and entering early on the developing bar when the set range is nearly fullfilled...but of course this can create some whipsaws along the way.

VTtrader
01-13-2009, 11:50 AM
RJay,
What I was saying is this. A 4 tick range bar has 4 ticks high to low. Let's say ticks for the bar are (low-high) 867, 867.25, 867.50, 867.75, the bar is now fully formed.
If it stays within that range it will never start a new bar, and Close[0] will show the last traded price, but the actual close will not be "set" since the bar hasn't closed. In order for a new bar to print that range will have have to be exceeded by 1 tick (866.75 or 868).
As soon as it trades at either one of those prices a new bar is triggered and the open price will be that first tick at either 866.75 or 868, and the close of the previous bar will be the low or high of the previous bar, either 867.75 or 867, 1 tick away.

The new bar may or may not trade up to the previous close, but the open price will be 1 tick away. To do it any other way would require arbitrarily cutting off ticks from the bar1 and say they belong to bar2, or by creating a tick that doesn't exist. IOW, if you were waiting for the close of bar1 to trigger a trade at the open of bar2, and you made a range bar that used the closing price of bar1 as the open of bar2, that open price tick doesn't exist in the real world, and you won't get executed at that price unless bar2 retraces by that amount...sometimes it will, but often it wont. As opposed to NT having a 1 tick penalty, doing it the other way would give overly optimistic results.

BTW, the picture early in this thread from QT actually look more like renko bars rather than true range bars.

Hope this clarifies what I was saying.
VT

RJay
01-14-2009, 10:37 AM
VT,

Thank you for your latest response.

First, I would like to say that I like Range bars becouse they plot price action in both axis. I think this is a plus.

If someone can prove to me that I'm wrong about the level of profitibility between the two types of Range bars in question, I would most definfitely want to hear about it.

I believe everyone is entiltled to their viewpoints on any subject. I always try to listen. Its how I learn.

I also tend to think a little outside the box in respect to "conventional wisdom". This means I'm wrong alot until I find the "Truth".

I also seem to have difficulty clearly expressing my thoughts.

I have an image in my mind of what I want to achieve here and the current range bars are not it.

I don't agree with some of your other observations in your latest post but that will make me do more research.

Please do not take any of my remarks the wrong way.

I'm just a little fustrated. The level of programming needed to create what I want is beyond my meager programming skills.

RJay

NinjaTrader_Bertrand
01-14-2009, 10:57 AM
RJay, we appreciate the input and critical thinking from our users. You can always post a suggestion here and our development team will consider those for futures releases - http://www.ninjatrader-support2.com/vb/forumdisplay.php?f=11

VTtrader
01-14-2009, 04:12 PM
Rjay,
Don't worry, I'm not taking any of your remarks the wrong way, and I hope you're not taking any of mine the wrong way either. I was just trying to help with your frustration.

That said, let me approach this from a different angle. First of all, any chart is simply a graphical representation of the stream of market data being fed to it. As a result, any "bar" whether it's minute, weekly, range, tick, volume etc. is an arbitrary break in a contiguous stream of data. The only exception to this is a daily bar, due to the fact that there is a defined break in the data at close, and a defined open the following day.

In order to break this never-ending stream of data into bars, there needs to be an event that "triggers" a new bar. There are time based triggers (minute/second charts), and data based triggers (tick/range/volume charts). Of the second group, in tick and volume charts, the triggers are "close based". IOW, the required number of ticks or volume has occurred, so the bar closes and the software knows the next tick will be a new bar. However, for range bars the trigger is "open based", the software doesn't know in advance whether the next tick is a trigger for a new bar or not until it arrives and is evaluated. As a result, it doesn't know that bar1 has closed until bar2 has already started trading.

So what does all this mean? It's important to realize/remember a couple of things. First, your trades become part of that contiguous data stream, and "bars" are just a convenience to aid in our decision making process. Second, there has to be at least 1 trade/tick at any given price to have even a remote chance of getting filled. Also, backtesting strategies and analyzing charts etc., as valuable as that can be, is at best, an approximation of how your trades will be handled in the real-world data stream.

Here's an example:
each tick is 1 point
using 4 tick range bars.
Bar1 is blue
Bar2 is red
Bar3 is black

the data comes in like this:
11 11 11 12 11 12 12 12 11 12 13 13 12 13 12 12 11 11 12 11 10 10 10 11
bar1 has now reached it's full range of 4 ticks but is still open....
11 10 11 10 10 10 9 8 8 8 8 8 7 7 7 8 8 7 7 6 7 6 6 5 5 6 6 7 6 6 5 5 4 4

You can see from this data that once the 4 tick range was exceeded it triggered a new bar and the open/first tick was 9, and there was never a trade in bar2 that was the same as bar1. Further more, the software never knew to close bar1 until the first tick at 9 so it just uses the low of the range as the close. To create an "open" at the same price as the close, would be a distortion of the data.

I've seen a different implementation of range bars that triggers a new bar when the full range has been reached. It then closes the bar and opens the new one using the same price. That implementation has the same flaws, it creates a tick that doesn't exist in the real world. Say we used this implementation on the data above and a 5 tick range bar. It would trigger a new bar when it traded at 9 and set the close of bar1 and the open of bar2 both at 9, but with only 1 trade at 9 is that the best representation of the data? What would happen if it never traded at 9 at all and went straight to 8?

Having the new bar triggered on an open based event, makes range bars particularly prone to data distortion since the previous bar is closed only after the market has already traded at the next bars open. Tick and volume charts aren't subject to the same data distortion problem, since the close of the bar is known before the first trade of the new bar.

Hope this helps.
VT

NinjaTrader_Josh
01-14-2009, 04:29 PM
NinjaTrader does not know closing of a bar till the open of the next bar. This has always been the case and this is because NT is bar driven.

Your different approach for building a range bar has been noted and been added to our list of future considerations already.

VTtrader
01-14-2009, 05:52 PM
Josh,
I'm curious, I'm not sure if you were saying that to me. I'm not advocating for a different approach to building range bars (certainly not to replace the current one), I think the current way is the best/most accurate method.

I do wonder though, if you were saying that tick and volume bars were also "closed" at the open of the next bar, as opposed to on the last tick/contract of the current bar?
It's not that big of a deal, since it seems that it would be just the point at which the last tick was processed, but it's good to know if that's the case.
Kind of makes that "CalculateOnBarClose" a bit of a misnomer though :)

VT

NinjaTrader_Josh
01-15-2009, 07:27 AM
I will have to confirm with development.

RJay
01-15-2009, 11:39 AM
NinjaTrader_Josh,

I'm the one Who would like to see an additional version of Range bars added to the platform.

(No gaps between bars Close[1] = Open[0])

Who should communicate with about this request?

RJay

RJay
01-15-2009, 01:51 PM
VTtrader,

Thanks again for your input. I woke up early this morning and spent time focused on this issue. I like your analogy about the continous data stream broken down into bars of price data. I visualized that this morning and I completely agree with you.

Here are my thoughts regarding bar gapping for any kind of chart.

Lets say you are watching a 1 minute bar chart. At the beginning of a new bar the price gaps up 3 ticks. The bar starts there and continues up. 20 seconds later the price gaps up another 3 ticks.

Most charts today do not display the first gap up with a bar representation, but the second gap up is represented with a bar.

If you look at the same data on a five minute chart both price gap ups are representated with the same continous up bar.

If the price data is a continous stream, why should there ever be data ( price gap up) without a bar to represent it?

It should not happen, but it does.

Once a bar is opened, price change from current price is always displayed with a bar.

When a new bar is opened, current programming makes the bar think it is a brand new chart that has yet to define a current price. So instead of the bar beginning at the current price, it waits for a change in price to begin the new bar.

I think this is very wrong. Price changes should not be treated differently simply becouse one bar is closing and another is opening. It should be treated the same as all other price changes that occur within each bar.

That means Close[1] should equal Open[0]. No matter what kind of chart you are using.

Current price should be carried forward from one bar to the next so all price data receives the same treatment.

When this true, all price data is represented with bar(s). There is no such thing as "price bar gap on bar open".

Indicators that use OHLC data will always have complete and correct data to process on close of current bar.

---------------------------------------------------------------------------------------

I will not rehash the Range bar thing again. ;) I think we have made our viewpoints clear on that issue.

---------------------------------------------------------------------------------------

I know that I am taking a radical position with this post.

I think some people will agree, my brain may have a few wires crossed.

----------------------------------------------------------------------------------------

I want to thank you again for this open discussion.

RJay

NinjaTrader_Josh
01-15-2009, 03:34 PM
RJay,

I've already forwarded the request to development and it is now on our list of future considerations.

VTtrader
01-15-2009, 07:24 PM
Rjay,
Thanks, I'm glad you're enjoying the conversation, I'm also enjoying it.

When I was referring to the data coming as a continuous stream, I meant it is not segmented into bars. I did not mean to imply that each tick is always equal to, or 1 tick higher or lower than the previous tick. A trade/tick being 2 or 3 or more ticks/(minimum price movements) away from the previous tick is actually quite common, especially in thinly traded instruments. An instrument such as the ES is very liquid and gaps are less likely to happen, but you can find them even there.

The best way to visualize the actual data is with a 1tick "tick" chart (not a 1 tick range bar). That will show you the actual data points that will then get processed into the various types of bar charts. I have attached a picture of one for the YM. the red arrows point to the previous tick and the blue arrows point to the following tick. You can see where there are several gaps of 3-4 ticks. If you make a chart like that and select "line on close" as the bar type the data will appear as a continuous line (the data stream).

Normal bar charts (tick, volume and time based charts) all have a "true" OHLC, there is an actual first trade, last trade, high and low trades. Range bars are a different kind of bar, while they are based on market action, their open and close are not always actual trades. Which is one reason why many people don't like them. I find them useful, but I realize their weaknesses. BTW, this weakness is there regardless of how the bars are built.

Take my example yesterday, say bar1 had traded between 10 and 13, the last trade was at 11 and the next trade was at 9. The bar close would still say 10 even if it wasn't the last trade, it was the bottom of the range. Or to make an even more extreme example, say bar1 traded between 11 and 13, with the last trade at 11 and the next one at 9, having never actually traded at 10 at all, the close would still be 10. That could also happen at the open of bar2, say it traded last at 10 and the next trade had one of those 4 tick gaps in that picture, the open would still be 9, but the first trade would be 6, the low of the bar! 4 tick gaps are never fun (unless they are in your favor :) ) and they can bite you whatever type bar you use, but range bars can accentuate the problem (especially short ones). Again, this is a problem with range bars in general, no matter what method is used to build the bar. It is due to the fact that open/close are not always actual trades.

This weakness can distort your strategy results during backtesting since the "open" is assumed to be an actual traded price, when in reality it is just the first price of the new "range". The moral of this story is to use caution when assuming the open and close of range bars for placing market orders, regardless of how they're built.

To wrap this up, range bars do have some strengths. They help to filter out some of the choppy sideways noise when sized properly. Also, being a set range you can calculate the 2 possible places the bar will close, and the next one will open in advance. this can be very useful in placing limit entries or stops.

Hope all this makes sense.
Take care,
VT

NinjaTrader_Josh
01-16-2009, 07:26 AM
VTtrader,

Development has confirmed that OnBarUpdate will be called at the 10th tick of a 10tick bar.

NinjaTrader_Josh
01-16-2009, 08:01 AM
RJay,

That message was in response to VTtrader's question about how tick bars are built and not about Range bars.

NinjaTrader_Josh
01-16-2009, 08:42 AM
RJay,

We have already added your request for range bars to our list of future considerations. If you go back through the thread and read post #28 you will find VTtrader has asked a question about tick and volume bars. I said I will inquiry with development and I came back with the answer. Please do not be offended.

tomgilb
07-27-2009, 03:53 PM
I recently began looking at range bars to see if they might work for my trading idea. Here is what I've learned:

There are two types of range bars, and (not counting RangeBarAlt) and the one NT uses in the Format Data Series has these characteristics:

1) Each bar is the same height because the range is constant.
2) The close of a bar is always at the high or low of the bar.
3) The open of a bar is always one tick below or above the close of the preceding bar.
4) The time period covered by each bar varies.
5) All gaps are filled with inserted 'phantom' bars.

It was #3 and #5 that had me confused.

Re: #3
The reason every bar open is gapped 1 tick is because the previous bar must exceed the range before it is closed. So, a 4 range bar is really a 5 range bar because it takes the 5th tick of range to force a new bar. In other words, the 4 tick range might be met but the bar is not closed until the 5th tick of range arrives.

Re:#5
Phantom bars are the only real price gaps. All the other gaps are merely display gaps because of the "industry standard" of range bar functionality. This shows up on a chart that excludes overnight price action, where the display of the overnight gap is an ascending or descending series of equal range bars all with the same time stamp. And the phantom bar is either a dragonfly or gravestone doji so it has no real range. The tail/wick is just for display, just like the gaps at every bar open. As such, this type of range bar is not representative of actual price action.

There is a second type of range bar that closes when the range value is met, whether or not price continues to trade in that range. There are no gaps at every open and there are no phantom bars. (There are gaps when there really is one). This type of range bar chart accurately represents actual price action. NT does not offer this option but SierraChart does, if you're interested.

I know there are traders who would want one over the other, and that's fine. We want choices as users and subscribers. I hope to see this option in an upcoming release.

RJay
07-27-2009, 06:05 PM
I recently began looking at range bars to see if they might work for my trading idea. Here is what I've learned:

There are two types of range bars, and (not counting RangeBarAlt) and the one NT uses in the Format Data Series has these characteristics:

1) Each bar is the same height because the range is constant.
2) The close of a bar is always at the high or low of the bar.
3) The open of a bar is always one tick below or above the close of the preceding bar.
4) The time period covered by each bar varies.
5) All gaps are filled with inserted 'phantom' bars.

It was #3 and #5 that had me confused.

Re: #3
The reason every bar open is gapped 1 tick is because the previous bar must exceed the range before it is closed. So, a 4 range bar is really a 5 range bar because it takes the 5th tick of range to force a new bar. In other words, the 4 tick range might be met but the bar is not closed until the 5th tick of range arrives.

Re:#5
Phantom bars are the only real price gaps. All the other gaps are merely display gaps because of the "industry standard" of range bar functionality. This shows up on a chart that excludes overnight price action, where the display of the overnight gap is an ascending or descending series of equal range bars all with the same time stamp. And the phantom bar is either a dragonfly or gravestone doji so it has no real range. The tail/wick is just for display, just like the gaps at every bar open. As such, this type of range bar is not representative of actual price action.

There is a second type of range bar that closes when the range value is met, whether or not price continues to trade in that range. There are no gaps at every open and there are no phantom bars. (There are gaps when there really is one). This type of range bar chart accurately represents actual price action. NT does not offer this option but SierraChart does, if you're interested.

I know there are traders who would want one over the other, and that's fine. We want choices as users and subscribers. I hope to see this option in an upcoming release.


Hi tomgilb,

I did not want to wait for NT to adapt their Range bars.

I do not believe they would anyway. so I attempted the project myself.

I adjusted the code to eliminate the programmed gaps. It also only uses the correct number ticks per bar.

The 5th tick to create the new bar is assigned to the new bar being created and is the first 0f the four ticks in the bar.

This altered Range bar chart cs file is posted here, post #7.

http://forum.bigmiketrading.com/programmers-paradise/70-nogaprangebars.html

Follow the instructions there to import file. Be sure to test before going live.

Good Luck,

RJay

NinjaTrader_Bertrand
07-28-2009, 04:26 AM
Tom, thanks for posting your thoughts and welcome to the forums! The request for a different RangeBar implementation as discussed in this thread is already on our list for future consideration.

JamTheTrader
12-03-2009, 02:21 AM
NinjaTraders range bars are done incorrectly period!!! and "graphically" they are not easy to look at. This needs to be addressed as I can tell you many of my students are frustrated and looking elsewhere.

JamTheTrader
customersupport@signaltrading.net

tomgilb
12-03-2009, 02:38 PM
SierraChart offers Type 2 (no gap) range bars.

Maybe NT7 will also, we'll see....

In the mean time, RJay has created his own script for NoGapRangeBars, available on another forum. Thanks, RJay!

http://forum.bigmiketrading.com/free_downloads/ninjatrader/misc/113-download.html?view