NC Renko Bars: Backtestable Renko Bars for NinjaTrader 8

Renko bricks built only from prices that really traded, so your backtests run on real prices, not a grid.

Find us on

View Price

NC Renko Bars for NinjaTrader 8

Watch the video, then read below how every brick is built.

NC Renko Bars for NinjaTrader 8

NinjaCoding logo

NinjaCoding

1.24k subscribers

Why NC Renko Bars

Most Renko charts show you prices that never traded.

NinjaTrader's Renko draws every brick on a fixed price grid. To keep the grid, it sets opens and closes to grid prices, drops each brick's real high and low, and adds filler bricks with no trades when price jumps. It looks tidy. A backtest on it fills orders at prices that weren't there. NC Renko Bars build every brick from real trades only.

NC Renko Bars

Step 4 / Reverse 8 ticks

5003.00 5002.00 5001.00 5000.00 4999.00 1 2
  • 1The dip to 5000.50 shows as a real wick.
  • 2The jump to 4998.50 is one brick that closes where price really traded.

NinjaTrader Renko

Brick size 4 ticks, the same trades

5003.00 5002.00 5001.00 5000.00 4999.00 A B C
  • AThe same dip to 5000.50 happened, but the brick shows no wick.
  • BOpen 5002.00, close 5001.00: neither price is one of the brick's trades.
  • CA filler brick with zero volume. Price jumped over it.

The same 30 trades on an ES-type instrument, built by both bars types. From the worked example in the user manual.

01

Real prices only

Every open, high, low and close is a trade that happened. No grid prices, no filler bricks.

02

Real wicks and volume

Each brick holds every trade from its opening trade to its closing trade.

03

Backtest-ready

Fills, stops and targets in Strategy Analyzer use prices that were really there.

04

Full C# source code

Use it as is, learn from it, or change it yourself or with AI like Claude.

How it works

Two distances. That's the whole idea.

A brick doesn't close on the clock. It closes as soon as price has moved far enough from the previous brick's close, counted in whole ticks.

  • StepHow far price must move with the last brick to add another one. Default 6 ticks.
  • ReverseHow far price must move against the last brick to turn. Default 12 ticks.
First brick first trade up at Open + Step down at Open โˆ’ Step After an up brick up at Close + Step (6) down at Close โˆ’ Reverse (12) After a down brick up at Close + Reverse (12) down at Close โˆ’ Step (6) While price stays between the two lines, the brick keeps building. Distances in ticks, with the defaults Step 6 / Reverse 12.

What's inside each brick

Every value comes from a trade.

Bricks aren't all the same height Usually a small gap between bricks A finished brick never changes
  • OpenThe first trade after the previous brick closed.
  • High / LowThe highest and lowest trades inside the brick, so a pullback that didn't turn it stays visible.
  • CloseThe trade that reached the distance. If price jumped past the target, the brick closes at that real price.
  • VolumeAll trades from the opening trade to the closing trade.
  • TimeThe time of the closing trade.

Why it matters

Backtests that don't flatter you.

Indicators and strategies read the open, high, low and close of each bar. On NC Renko Bars those are always prices that traded, so an order filled at a brick's open gets a price that was really there, and stops and targets use the real extremes.

NC Renko BarsNinjaTrader Renko
SettingsStep and Reverse set separatelyOne brick size, reversal fixed at 2 bricks
OpenThe brick's first real tradeA grid price
CloseThe real trade that reached the distanceA grid price
High / LowThe real extremes of the brickReplaced by the open and close once the brick finishes
Price jumpsOne brick that closes at the real priceExtra filler bricks with 0 volume
Switching over? NinjaTrader Renko with brick size N uses the same distances as NC Renko Bars with Step N and Reverse 2N. The bricks still differ slightly, because NC Renko Bars measure from real closes instead of the grid.

Settings

Four settings, explained in plain words.

Step Size (ticks)

Default 6

How far price must move with the last brick to add another one. A smaller Step gives more bricks and more detail.

Reverse Size (ticks)

Default 12

How far price must move against the last brick to turn. A larger Reverse keeps you with the trend longer. Twice the Step is classic Renko; equal to Step is symmetric; smaller than Step turns sooner than it continues.

Break at EOD

NinjaTrader's checkbox

On: each session starts a fresh brick, so overnight gaps never close a brick. Off: one continuous chart across days.

Days to load

Default 5

Bricks are built from tick data, so more days take longer to load. Use the Candlestick chart style to see each brick's real high and low.

InstrumentTick sizeStep 6 ticksReverse 12 ticks
ES, MES ยท NQ, MNQ0.251.50 points3.00 points
YM, MYM16 points12 points
CL, MCL0.010.060.12
GC, MGC0.100.601.20

Who it's for

Built for traders who test before they trade.

Backtesters and automators

You trade Renko with a strategy and want the Strategy Analyzer to run on the same bricks you'll see live.

Strategy developers

You need a Renko series your NinjaScript can rely on, as the chart or as an extra data series.

NinjaScript learners

You want to see how a NinjaTrader bars type works inside, from real, readable code.

Before you buy

The honest trade-offs.

Real prices come at a price of their own. Here's what to expect.

  • Not a perfect staircase. Bricks aren't all the same height and there's usually a small gap between them, because each runs from its own first trade to its own closing trade.
  • One tall brick on a jump. A fast move closes one brick where price traded, instead of a run of neat ones.
  • Needs tick history. Your data connection must provide historical tick data for the days you load. Many days take a while to load.
  • Not identical to NinjaTrader Renko. Even with matching settings, a strategy tested on grid Renko gives different results here.

Make it yours

Full C# source code, ready to change.

Use it as is, learn from it, or change it yourself or with AI like Claude. No coding experience needed to start.

  • Bars type 55 for your own strategies and indicators
  • Works in the Strategy Analyzer and Market Replay
  • PDF user manual with a worked example
// in State.Configure: add NC Renko 6/12 as an extra series
AddDataSeries(new BarsPeriod
{
    BarsPeriodType = (BarsPeriodType)55,
    Value  = 6,   // Step Size (ticks)
    Value2 = 12   // Reverse Size (ticks)
});

FAQ

Questions traders ask.

Can I backtest strategies on NC Renko Bars?

Yes. In the Strategy Analyzer or Market Replay, pick NC Renko Bars V1.1 as the Type and enter Step Size and Reverse Size as you would on a chart. You need historical tick data for the whole test period.

Do the bricks repaint?

A finished brick never changes. With Calculate set to On bar close, a strategy sees each brick once it's finished. With On each tick or On price change, it also sees the brick still building, which keeps changing until it closes.

Why aren't all the bricks the same height?

That's by design. Each brick runs from its own first trade to the trade that closed it, and price can jump past a target, so the brick closes where price really traded.

Why is my chart empty, or only filling in with live data?

NC Renko Bars are built from tick data. Your data connection must provide historical tick data for the days you load; otherwise only live trades build bricks.

Which settings match NinjaTrader Renko?

Brick size N in NinjaTrader Renko uses the same distances as Step N and Reverse 2N. The bricks still differ slightly, because NC Renko Bars measure from real closes instead of a fixed grid.

Should I turn Break at EOD on?

Turn it on to look at each session on its own, for example when you day trade futures and don't want overnight gaps in your bricks. Leave it off for one continuous chart across days with no unfinished bricks at session ends.

Why do older futures prices look shifted?

With the merge policy Merge back adjusted, NinjaTrader shifts older contracts by the rollover difference, so past bricks show prices that never traded. To see prices as they traded, choose Merge non back adjusted or Do not merge under Tools → Options → Market data.

I have version 1.0. How do I update?

In the NinjaScript Editor, open the BarsTypes folder, right-click NCRenkoBars and remove it. Then choose Tools → Import → NinjaScript Add-On and select the 1.1 zip. If both versions are installed, they claim the same bars type id, and the import shows errors or the bars appear twice.

Can I use NC Renko Bars in my own strategy or indicator?

Yes. They register as bars type 55, with the Step Size as Value and the Reverse Size as Value2, both in ticks. Add them as an extra series with AddDataSeries in State.Configure, or check that the chart uses them with Bars.BarsPeriod.BarsPeriodType == (BarsPeriodType)55.

Why can a brick's color disagree with the direction it closed in?

It's a rare edge case. A brick can't close on its first trade, so after a sudden jump right after a brick closes, the new brick can open beyond its own target and close on its next trade. Its color (close compared with open) can then be the opposite of the direction it closed in. The next brick follows the direction it closed in.

Backtest on prices that really traded.

One license, full source code, version 1.1.

View Price

99.00 USD

Choose the License Type That Fits Best

MORE addons

Check Out What Else is Available