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). Please note, all Inputs of the solver are running on the assigned time-frame. Charts (i.e. time-frames) are added to BloodHound from the Solver’s panel by clicking the Chart button.
BloodHound v2: In the Solvers panel, click the Chart button and specify the chart type in the Property Inspector panel (right-side panel).
BloodHound v1: Under the Solver tab, click the button, and specify the chart type in the right-hand pane.
When BloodHound first starts up or is reloaded, the charts you have specified will load internally once NinjaTrader loads the Data Series. Note: this action does not open NinjaTrader charts on your screen, but instead will ensure that the additional chart data is 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) possibly may not be supported by BloodHound. The vast majority are supported.
Once you have added a time-frame, you now can associate any number of solvers to it. All solvers listed directly under the Defualt Timeframe will run under the context of the underlying chart that BloodHound is running on. Otherwise, solvers added to a secondary time-frame will run under the context of that secondary time-frame.
e.g. If you add a Bar Length Solver under a 5 Minute chart, that solver will measure the bar length of the 5 minute chart, and thus incorporate the 5 minute bar length into BloodHound’s calculations. Similarly, solvers using indicator data as their Input, the data received comes from indicators as if they were running on that chart. Even though, BloodHound is running on a different chart/time-frame.
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.