BM ChartStyle

BM ChartStyle

$100.00 USD
Skip to product information
BM ChartStyle

BM ChartStyle

$100.00 USD

CATEGORY: Indicator · For NinjaTrader 8 · Chart style with bars colored by executed delta

BMChart is a chart style for NinjaTrader 8 that colors each candle based on executed delta—buying volume minus selling volume—rather than whether it closed above or below its open.

Standard coloring answers a question price already answers on its own: whether the candle moved up or down. BMChart answers a different question: who was aggressive against the order book during that candle.

That distinction matters when the two readings don't align. A candle that closes lower but shows buying delta indicates absorption: someone was buying all the way down. On a conventional chart, that candle appears red like any other, and the information is lost.

It is not a signal indicator, nor does it promise profitability. It is simply a different way of looking at the same candles.

How the coloring works

Each candle's color is determined in two steps.

The delta's sign determines the color family. Positive delta results in the bullish range, negative in the bearish range, and zero in the neutral range. This is independent of whether the candle closed higher or lower: a price-bearish candle can appear green if the delta was bullish, and that discrepancy is precisely the information the indicator provides.

The magnitude determines the intensity, using eight discrete levels per side. A candle with low delta appears almost gray; one with strong delta appears in the full color. This creates the visible color gradient on the chart.

The scale is self-calibrating

The maximum intensity threshold is not a fixed number. It is the 85th percentile of the absolute delta over the last 200 bars (both values are configurable):

threshold = Percentile(|delta| of the last NormWindow bars, NormPctl)
intensity = min(1, |delta| / threshold) × sign(delta)

This has three practical consequences:

It automatically adapts to the instrument and timeframe. What constitutes strong delta for a 1-minute MNQ chart differs from a 15-minute CL chart, yet no manual configuration is required.

The reading is relative, not absolute. A fully colored candle signifies "one of the strongest of the last 200 bars," not "delta greater than X contracts." During a sluggish session, a modest delta can still reach the maximum level.

It requires 20 closed bars to begin calibration. Before that, everything appears neutral, accompanied by an on-screen notification.

Architecture: Two components in one file

The BMChart.cs file declares two classes within two namespaces, and NinjaTrader registers them separately:

BMChart Style and BMDeltaBars Calculates delta and draws the bars

Why both are needed

A ChartStyle cannot calculate delta. NinjaTrader's documentation is explicit: Chart Styles are unrelated to Bar Types, and a ChartStyle lacks access to `AddDataSeries` or `OnMarketData`. Without these two mechanisms, there is no way to obtain volume classified by bid/ask.

An indicator *does* have access to these, but it cannot prevent the active ChartStyle from drawing its own bars on top.

The solution is a division of labor: the style becomes transparent—via the "Hide bars" parameter—and the indicator handles the drawing. That is why both must be active on the same chart, and why the style alone leaves the chart blank.

Performance

The indicator draws using `OnRender`, iterating only over the visible bars, so the computational cost does not increase with the size of the historical data. The gradient brushes—sixteen in total, eight per side—are created once in `OnRenderTargetChanged` and reused, rather than creating a new one for every bar.

TECHNICAL REQUIREMENTS: NinjaTrader 8. Any instrument with available tick data and tick replay.

About Tick Replay

It is the only real requirement and it is important to understand why.

The delta is calculated by classifying each print against the current bid and ask: if it is executed at the ask it is aggressive buying, if at the bid it is aggressive selling. That data only exists at the tick level.

Without Tick Replay, the history has no bid/ask and all candles prior to the connection come out neutral. The indicator warns you on the screen instead of showing a gray graph with no explanation.

In real time the delta is taken from OnMarketData, which does not need Tick Replay. The notice disappears as soon as ticks start arriving.

Cost: Tick Replay loads all ticks in the period, so startup is slower and consumes more memory. If it is excessive, I reduce the days loaded in the data series.

Known limitations

Reading is relative, not absolute. A fully colored candle means “one of the strongest of the last NormWindow bars”, not a fixed threshold of contracts. Two charts of the same instrument with different time frames will show different scales, and it is correct that this should be the case.

It depends on the quality of the feed. Prints that are executed within the spread cannot be sorted and are discarded. In illiquid instruments, with wide spreads, a part of the volume is left out of the calculation.

Tick Replay makes starting up more expensive. Loading all ticks for the period takes time and memory. With long histories it can be notable.

It is not a substitute for a volume profile. BMChart tells who attacked during each candle; It does not say at what prices within the candle the volume was traded. They are complementary readings.

No entry signs. It does not draw arrows or generate alerts. It is a reading layer, not a trading system.

NinjaTrader® is a registered trademark of NinjaTrader Group, LLC. No NinjaTrader company has any affiliation with, interest in, or ownership of the owner, developer, or provider of the products described herein, nor do they endorse, promote, or recommend any such products or services.

 

Disclosures

Risk Disclosure

Trading futures and leveraged instruments involves the risk of capital loss. The statistical validation results for our tools are based on historical testing (backtesting) and simulations and do not guarantee future results. No EKAITRADING product should be considered financial advice or an investment recommendation. In trading, an investor could potentially lose all or more than their initial investment. It is recommended to trade using a demo or simulated account before employing any strategy with real capital.

You may also like