BloodHound works using fuzzy logic principles to calculate it’s intermediate and final output values (known as confidence values). Confidence values are a decimal number ranging from 0 to 1.0 that represents a percentage of confidence (0% to 100%). The lower the number, the less favorable it is, and the higher the number (approaching 1.0) the more favorable the condition is. At each stage of calculating an output value for a particular bar (or tick) BloodHound maintains a separate value for the Long side and the Short side. Thus, the Long and Short sides are always evaluated simultaneously, but separately.
There are two components at play in every BloodHound configuration (called a BloodHound template, which we will be abbreviating BHT for short). A BHT contains two types of objects:confidence solvers (solvers for short) and logic templates. Each BHT can have multiple Solvers, and multiple logic templates defined. Each of the two components play an important role in configuring BloodHound to arrive at a final output.
You can think of the BHT as the main parent document that encompasses all your settings. BHT’s can be saved and loaded in the form an XML file, thus remembering all your configuration settings for a particular strategy you’re working on. The default location for these files are in your NinjaTrader documents directory under:
The first stage of every BloodHound calculation involves gathering data from the solvers defined in the BHT. Solvers are the raw inputs derived directly from observations on the chart, price bar action, swing trends, support and resistance etc. There are also solvers that can be configured to look at a particular indicator values, compare indicator values from another or even examine the sloping behavior of an indicator. A list of these solvers is found here.
Your end goal may be to identify desired trade signals, or to alert you to an impending trade setup. Either way, it all starts with the solvers that you add to your BHT. The solver’s raw output data is then processed by your logic template which you define separately. The combination of raw data generated by your solvers together with your logic configuration produces BloodHound’s final output.
Each solver looks at one particular aspect or feature of your chart, and so to examine multiple aspects of your chart, you would employ multiple solvers, each designated to look at different areas of interest. You can commission as many confidence solvers as you like in your BHT, but remember the more solvers you have, the more work BloodHound has to do to calculate your result. Generally speaking it is good practice to use only the solvers that are necessary to produce your end result, and remove solvers that aren’t contributing anything to the final calculation.
Solvers produce a confidence value (between 0 and 1.0) for each of the long and short sides simultaneously for every bar (or tick). You can think of solvers as a way to interpret what you’re seeing on your chart and translating that into a grading score between 0 and 1.0 for each side. For example, let’s say you’re interested in the slope of a particular indicator. Part of your trading system dictates that a positive slope is good for long trades, and negative slope is good for short trades. To represent this aspect of your trading system, you would add an Indicator Slope Solver to your BHT, and configure it to give you a 1.0 on the long side and 0 on the short side when the slope is positive, and a 1.0 on the short side and 0 on the long side when the slope is negative (this is actually the Indicator Slope Solver’s default behavior already). You would then add other solvers to the BHT to represent the other aspects of your trading system.
Logic templates are the second essential component to a BHT. Logic templates describe to BloodHound how to compute your final results from your input data. This is achieved by manipulating a node diagram much like an electronic logic board. The logic template is flexible enough to allow you to chain inputs to outputs from any node allowing you to design logic with any degree of complexity.
Solver nodes are added to these logic templates and are connected to logic nodes (such as AND, OR,XOR, Ratio and Additive nodes). These logic nodes combine and manipulate the outputs from the solver nodes to achieve a desired logical calculation. For example, suppose you had two solver nodes, one that measured if the slope of an indicator was favorable in a given direction, and the other measured whether the current price was far enough away from a support/resistance zone to take a trade. Your trading system rules dictates that both conditions must be “good” in order to take a trade (by default, good would be a value equal to or greater than 0.8). Thus you would connect both of these solvers to the logic template, and then connect them together with an AND logic node. The result would guarantee that both solvers had to be producing favorable values (above 0.8) in order to result in a valid trade signal.
In your BHT, you can have multiple logic templates defined. Generally you select one logic template to be active at any given time (although a NinjaTrader strategy may incorporate the values of several logic templates simultaneously). The active logic template will paint the chart with the resulting output signals in the form of red and green stripes (called racing stripes). You may switch the active logic template at any given time while running BloodHound as an indicator by accessing the drop down at the top of you NinjaTrader chart.