BloodHound is capable of performing its analysis on multiple time-frames, allowing you to derive a final result from observations outside the chart that is running BloodHound. For instance, your trade system rules may require a larger time-frame chart to determine the overall trend of the market. Or perhaps you need to observe small movements on a lower time-frame to time your entry. BloodHound is proficient at incorporating multiple time-frames or charts within your calculations, allowing you to pool data from many sources that would otherwise be difficult to track manually. For the purposes of this documentation, we will use the term time-frame and chart interchangeably.
BloodHound allows you to assign any of your solvers to any time-frame (or chart). Time-frames are added to BloodHound in setup mode by opening the BHT interface in the NinjaTrader Indicator panel.
Under the solver tab, you can select the button, and specify the chart type in the right-hand pane. When BloodHound starts up, the charts you have specified will load internally when BloodHound is activated. Note: this action does not open up new NinjaTrader charts on your screen, but instead will ensure that the charts are loaded and factored into BloodHound’s calculations internally. Therefore in order to visualize the charts you must open a new chart (matching the chart selected in your BHT) as you would normally with NinjaTrader. Also note that custom chart types (that is, any chart type that isn’t a NinjaTrader system chart) isn’t supported by BloodHound and cannot be added to your BHT with predictable results.
Once you have added a time-frame, you now can associate any number of solvers with it. All solvers included under the defualt time-frame will run under the context of the underlying chart that BloodHound is running on. Otherwise, solvers added to any custom time-frame added to your BHT will run under the context of that time-frame. For example, if you add a Bar Length Solver under a 5 min. chart, BloodHound will measure the length of the bars at any given time on the 5 minute bars chart, incorporating the 5 min bar length into the calculations. Similarly, if you have any solvers that depend on indicators, BloodHound will observe those indicators as if they were running under that chart type.
Historical Data On Time-Frames
One caveat to be aware of is the accuracy of historical data. Historical prices on other time-frames (other than the default time-frame) are an approximation of the actual price at close of the default time-frame’s bar. This known limitation has to do with how NinjaTrader presents historical bar information on additional time-frames to custom indicators. For example, suppose your default time-frame is a 150 tick chart. Historically the closing price of a bar on the 150 tick chart may not be the same closing price of the nearest bar on a 5 minute chart. In a real-time situation, when a 150 tick bar closes, the 5 minute chart would typically still be in the middle of forming a bar, and so its current closing price mid-bar would not necessarily represent the actual closing value of the bar after it finishes forming. In contrast, for historical prices on separate time-frames, NinjaTrader will assume the current price is the closing price of the current bar, and present this information to BloodHound (all NinjaTrader indicators suffer from the same assumption). This again, would not necessarily represent the true value of the closing price when the 150 tick bar closed in a real-time situation, where the 5 minute bar would still have been in mid-formation. Rest assured however, that unlike historical data, prices are always accurate (and not approximate) in real-time trading situations. Because of this limitation, we strongly recommend that any trading system you have developed that utilizes multiple time-frames should always be rigorously forward tested in simulated real-time situations (or with NinjaTrader’s market replay feature) before being employed in real world trading.
Here is a brief explanation of the Ninja issue: Think of BloodHound as the parent indicator, and SiChameleon or any other indicator you load into BloodHound as the child indicators. The issue occurs when the child indicator loads its own secondary/alternate time-frame data (i.e., such as a custom SMA indicator that uses 5 minute chart data to display a 5 Minute SMA on any chart you want). NinjaTrader may not load the SMA’s 5 minute data correctly inside the child indicator. When this happens NinjaTrader will not calculate the child indicator, and therefore skips bars.