Introduction

BlackBird

BlackBird is a NinjaTrader Strategy, which significantly extends the functionality of NinjaTrader’s Chart Trader, ATM, and much more. It serves both discretionary traders and automation traders.

For the discretionary trader, risk and money management rules can be defined to assist the trader from violating their daily trading limits and risks, and that’s just the beginning. The trade designer aspect gives the trader unprecedented control of every order type. The ability to automatically manage the entry, profit target and stop-loss. And of course, manual movement of the orders can be made at any time.

For the automated trader, BlackBird can automatically enter a trade using your favorite signal generating indicator or BloodHound signal, and then manage all order types, as mentioned before, for a fully automated trading system.  BlackBird can even use BloodHound signals to manage your profit and stop-loss orders to build a truly advanced automated trading system.

Tip: find more documentation for BlackBird in the links to the left. Under the heading “BlackBird”.

Using BlackBird

BlackBird is a strategy, and NinjaTrader gives you the option to run strategies on a chart (which is what we show in our videos) or they can be run on the Strategies tab in the NinjaTrader Control Center.  For more information on how to initiate a Strategy see NinjaTrader’s documentation here.
Both methods are identical in terms of setting up BlackBird.  Below we will cover the more common way of running a Strategy by adding BlackBird to a chart.
Special Notes from NinjaTrader when running a strategy: Strategy Position vs. Account Position

Adding BlackBird to a Chart

  1. Begin by opening a chart in NinjaTrader.
  2. To add BlackBird, right-click on the chart and select “Strategies…”, followed by selecting SiBlackBird.  On the right hand side you will see the parameters for BlackBird. If Strategies… is grey & disabled see NinjaTrader’s documentation here to enable it.
  3. Scroll to the top of the parameters list and adjust any options as needed.  See below for a description of each parameter.  Lastly, set Enabled to True before clicking the OK button.
  4. Once BlackBird is loaded on the chart, click the Order Setting button to start setting up BlackBird.

  *NOTE* An OCO Order Set must be defined to use the Trade Controls on the chart.

Using BloodHound?
If you are using BloodHound signals in BlackBird it is not necessary to have BloodHound on your chart, because BlackBird can add BloodHound to the chart. It is suggested to leave BloodHound off the chart, if this is the case, to save CPU resources.

Starting & Ending BlackBird

There are a couple of NinjaTrader setting that affect order handling when enabling or disabling BlackBird.  The NinjaTrader settings mentioned are found in Control Center » Options » Strategies tab » NinjaScript tab.
When enabling BlackBird, having NinjaTrader’s ‘Immediately submit live working historical orders‘ selected and BlackBird » Backtest Mode = True, NinjaTrader will immediately submit an order in the direction of BlackBird’s last historical trade.  Setting BlackBird » Backtest Mode = False will prevent immediate order submission.

In Control Center » Options » Strategies tab » Order handling, you may want to select ‘Cancel entry orders when a strategy is disabled, and uncheck ‘Cancel exit orders when a strategy is disabled’.

If you do not fully understand the setting in Control Center » Options » Strategies tab » NinjaScript tab, then we suggest selecting ‘Wait until flat before executing live’

Quick Start Video –
Setting Up Your First Order Set

Lets do a quick walk-though to create a simple Market entry order with a 10 tick profit target and 10 tick fixed stop-loss.

Workshop Videos

Each week we host a free live workshop where you can ask questions and see things demonstrated in BlackBird. Find the schedule and list of recordings on the workshops page.



Properties



System Template

Options


Common NinjaTrader Strategy Properties

NinjaTrader has several adjustable properties that determine the behavior for all strategies.  These properties are available in the Strategies window and Options window.

NinjaTrader 8

NinjaTrader 7



Discretionary Trade Management


BlackBird provides complete discretionary control over the Profit Target and Stop Loss placement.

1 Modifying Order Price:  To modify the price of an order, left click with your mouse on the order line or the right section of the label.  A ghost order line will appear and display the number of ticks you are away from the market.
When above the ask the label will display a positive value.  When below the bid the label will display a negative value.  At the Ask or the Bid the label will display @Ask or @Bid.  Once you have the order at the price you desire,  click again to complete the move.  This is a click once and click again method.  Do NOT click and drag.

Number_2 Cancelling an Order:  To cancel an order, left mouse click on the red X on the order marker.


Strategy Analyzer


Using BlackBird in the Strategy Analyzer allows you to run historical analysis on a basket of instruments.  Click here for NinjaTrader’s Strategy Analyzer Help guide.  Due to some unusual behavior of the Strategy Analyzer these simple steps should be followed before running the Strategy Analyzer.  Open the NinjaTrader Historical Data manager (found in Control Center » Tools » Historical Data) and download all the historical data you want to backtest against, while the data feed is connected.  Then disconnect the data feed before clicking Run Backtest.

Optimization

The Optimization feature is not able to access the dynamic nature and various changeable parameter items and settings inside of BlackBird (and BloodHound).  Therefore, it has limited practical value.  The issue is NinjaTrader requires a static list of parameters for their property grid.  e.g.  SharkIndicator software allows you to use indicators of your choosing.  If your system uses the MACD, the Fast , Slow , and Smooth parameters need to be listed on the property grid.  But, later if you decide to remove the MACD and use the Momentum instead then the Period parameter need to be added and the Fast , Slow , and Smooth parameters for the MACD need to be removed from the property grid.  Unfortunately, NinjaTrader does not allow the property grid to be dynamically updated or changed like that.
  We hope a solution can be found in the future. At this time, none of the Optimizer features are available in either version of NinjaTrader.


Backtesting Tips & Help


Backtesting is Not performed by the SharkIndicator's strategy (i.e. Raven and BlackBird).  Backtesting results are calculated by NinjaTrader's backtesting framework.  Regardless of backtesting on the chart or through the Strategy Analyzer, the results are calculated by NinjaTrader.  All a strategy simply does is tell NinjaTrader when and where to place an order, along with setting a new price when an order is moved.

Tips

This video was created during NinjaTrader 7.  However, the lessons taught are still good practice for NT 8.

Performance

It is a good idea from time to time to reset the NinjaTrader database to help with performance.  If you start to notice NinjaTrader pausing when an order is submitted, or a delay in the time it takes for an order to execute, or it takes a longer time for Raven to start up, then that might be a sign that NinjaTrader’s database is getting to big, and resetting it typically helps. To reset the database open the Options window, select the Data tab, then click Reset DB button.

Help

The links below are provided to help you understand the various aspects, discrepancies, and information you need to understand about backtesting, which can be a complex topic.


Know the Risks of Computerized Trading

We want you to be aware there are numerous components, both hardware and software, involved with computerized and automated trading.  The process starts with your computer, running Windows, running NinjaTrader (NT), and running an NT strategy (i.e. Raven or BlackBird).  When the strategy receives a “signal” from the BloodHound logic, it sends an order request to NinjaTrader’s order submission framework.  At which point NinjaTrader transmits the order to your Broker, who must approve the order and then sends it to the Exchange.  If your order is filled, the exchange notifies your broker, who then notifies NinjaTrader, and finally NinjaTrader updates/notifies the strategy.  As this simplified example illustrates, there are several components & “players” involved and lots of software programs that make this all happen.  If there is any miscommunication, internet lag time, or server overloading among these components, the strategy may get out of sync with your position(s) at the Exchange.  If you suspect any issue with your live orders use the ‘Flatten Everything’ option in the NinjaTrader Control Center, and then call your broker immediately to verify.  See the "Risks of Electronic Trading with NinjaTrader" section for more information.