About The Core Nt-8 Columns
This documentation covers all of the so-called "Core" data points, and the other data points included in the core AddOn packs.
I.E. all of the columns available in the SuperDom Pack and the Chart Columns Pack.
In the Chart Columns Pack, the columns list is grouped into Four "Types"; and, the same columns do also appear in the SuperDom Columns list, though there is no visible grouping in the list.
The four types are these:
- "Core" TaData Market Data
- "Operation Stack" Data Points
- Default Data Point "Plugins"
- NinjaScript Data Points
Select And Configure The Data Point Column
To add a column to a SuperDom, or a chart, first select a column type to add; and then configure that column.
On the chart, add a column from the Drawing Tools menu. On the SuperDom, add a column from the SuperDom Columns menu.
Once added, right-click on the column to configure it.
Core TaData Market Data
The "Core" Data Point columns implement data from BBO ("Level-1") Updates, Level-2 Updates, and aggregated Session-Long data. In fact, these data points are yielding data from TaData's rich data ecosystem.
On each market data update, TaData is updating it's data set; and that is available to every active data point. These core data points are utilizing that data set to provide the more than 60 points of data that is available from TaData on every update.
When you configure one of these four Core data points, you will be presented with many actual data points in the property sheet.
The "Data Point" pop-up menu selection lists the data points in each category. This is where the total 60+ data points are found.
Each "Core" data point column has a selection of data points of a related type. I.E. there are Four "Core" data point columns; and each has a group of related data point selections.
The "Core" columns are these:
- Core BBO Data Point
- Core Level-2 Data Point
- Core At-Price Data Point
- Core Session Data Point
Core BBO Data Point
The Core BBO Data Point column lists a selection of data points that come strictly from BBO updates ("Best Bid" and "Best Offer"). I.E. these data points are watching the "level-1" updates on the current Best Bid and Best Offer only. These data points do not include level-2 updates; and the distinction is provided specifically to allow selecting the specific market data update source.
For instance, the BBO Quote Depth will reflect the last-known quote depth on a BBO update only — there may be level-2 updates on a given price, changing the actual current quote depth offered, yet the BBO data point will only yield the last-known update when that price was BBO.
Core Level-2 Data Point
The Core Level-2 Data Point column lists a selection of data points that come strictly from Level-2 updates. These data points do not include BBO updates; and the distinction again is provided specifically to allow selecting the specific market data update source.
Core Session Data Point
The Core Session Data Point column lists a selection of data points that come from an ongoing aggregation of the data throughout the session.
Core At-Price Data Point
The Core At-Price Data Point column lists a selection of data points that come from any of the BBO, Level-2, or Session updates; and, this column groups only those data points that do not provide a bid/ask selection. I.E. each of these data points always produces only a single value at any price; and there is no bid/ask value selection.
For example, Total Traded Volume on the price provides the total traded contracts from both bid-side and ask-side trades.
Bid/Ask Value Selection
Any data point that yields both Bid and Ask values at any price allows you to select the Bid or Ask value to be displayed. I.E. you may select all Bid or all Ask values on any price, or, the "Follow Current BBO" selection will select the bid value at current bid-side prices, and the ask value at current ask-side prices.
If it may seem un-intuitive to e.g. see a bid value at an ask-side price, then remember that is is entirely up to the data point as to what data is available. For example: Traded Volume will produce bid-side values at ask-side prices — the volume traded into the bid on each price as price lowers.
Therefore you can select to view all-bid or all-ask values on the column; or, "follow BBO" will adjust the displayed value to match the current BBO prices.
You can "Pair" columns in all-bid and all-ask pairs to get a complete top-to-bottom view.
Operation Stack Data Points
The "Operation Stack" Data Point column will provide a selection of any custom data points that you have created with the "Operation Stack" wizard.
The Wizard is located in the Control Center menu.
Operation Stack Data Points let you create simple derivative data points from one or more core data points, by combining data point values with simple math operations. For example, create a simple Delta data point by subtracting the Bid value from the Ask value of any core data point.
The data point in the image below is a traded volume delta: the data point will get the Ask traded volume, and subtract the bid. Note that we have selected "Show More Options" and un-ticked "Return Bid And Ask Values On Each Price". This allows us to create a single value at the price: we can explicitly select the Ask value, and subtract the Bid.
The resulting data point will produce the Ask-Bid traded volume delta at every price.
NinjaScript Data Points
The NinjaScript Data Point column will list a selection of currently active NinjaScript data points the you have created. Please note that you must activate the NinjaScript data point first: the column will list only active data points in active NinjaScript objects.
You create a NinjaScript data point by using the Auction Dashboard data point within any of your own NinjaScript objects. For example, in any existing Indicator, or in a new custom Indicator, you will activate the data point, and, your own NinjaScript then sets the value(s) at any price. Once activated, the data point appears in the selection list of the NinjaScript Data Point column; and the column displays your own NinjaScript's values at each price.
Creating A NinjaScript Data Point
To create a data point, first create your own custom NinjaSctript object. For example, create a new custom Indicator.
In the source code for your indicator, you will create the AD Data Point, and update the data point according to your own logic.
The indicator has no requirements in terms of your implementation: your selection to Update On Bar Close or On Each Tick is of your own choosing as your own requirements dictate. You can update the data point in the default OnBarUpdate method; or, if your indicator requires it, you can use the custom OnMarketData or OnMarketDepth update methods to make updates.
Your indicator is also not required to produce any plots, yet, it can define any arbitrary plots that you desire. The indicator's implementation is completely independent of the AD Data Point values. You will create the AD Data Point and update it within your own NinjaScript; and the values that you set there are when will appear in the SuperDom or on the Chart column.
Setting Up The Custom NinjaScript
There is a single prerequisite for the data point. The first time you create a NinjaScript data point, you must add a DLL reference to Auction Dashboard's required Ad.Nt8.Container.AddOn.dll. This DLL holds the required data point interfaces, and, Auction Dashboard does not add a reference to this DLL by default.
Add The Ad.Nt8.Container.AddOn.dll Reference
From within the NinjaScript Editor, right-click, and select "References ...". This option will present a list of custom DLL files that have been added to NinjaTrader's NinjaScript environment. You must select "Add" and then select the Ad.Nt8.Container.AddOn.dll.
That DLL file is located in NinjaTrader's default "Custom" folder: My Documents \ NinjaTrader 8 \ bin \ Custom. NinjaTrader should bring you to this folder by default. Select the Ad.Nt8.Container.AddOn.dll file.
Note that this only needs to be added one time. Once the reference is added to NinjaTrader's list, it will remain available for all future NinjaScript objects until you explicitly remove it.
In The NinjaScript Code
A reference to the AD Data Point will be needed in your code: create a private field to hold the data point instance:
private AuctionDashboard.DataPoints.AdNinjaScriptDataPoint adDataPoint;
You then must activate the data point in State.Configure; and, you must also be sure to deactivate the data point in State.Terminated to ensure that all resources are cleaned up. Add the activation and deactivation calls in the OnStateChange method:
else if (State == State.Configure)
* The AD Data Point must be activated in State.Configure
adDataPoint = AuctionDashboard.DataPoints.AdNinjaScriptDataPoint.Activate(
else if (State == State.Terminated)
* Be sure to check for null;
* since State.Configure is not guaranteed to succeed,
* and State.Terminated may run in any case.
if (adDataPoint != null)
After this boilerplate setup, it is left to your own logic to update the data point.
A brief example is as follows:
protected override void OnBarUpdate()
if (adDataPoint == null)
double close = Close;
double open = Open;
int trend = close.CompareTo(open);
if (trend == 0)
bool isAsk = (trend > 0);
if (!adDataPoint.TryGetValue(close, isAsk, out currentValue))
currentValue = 0D;
currentValue += 1D;
adDataPoint.SetValue(close, isAsk, currentValue);