NinjaTrader 8 indicator, NinjaScript

Market structure and order-block retests, decided on the closed bar

Marking structure by hand means deciding which swing counts, whether the bar really broke it and which candle the order block belongs to. SMC Algo Warrior applies one set of rules to every closed bar: a close through the last unbroken swing is a BOS or a CHoCH, each break creates an order block, and a retest of an active block prints an arrow with an entry, a stop and two targets. It reads open, high, low and close only, so a feed without volume changes nothing.

  • BOS and CHoCH lines from closes through the last unbroken swing
  • Order blocks that grow to the right until a close goes through them
  • A buy or sell arrow on a retest, at most one signal per block
  • An entry, a stop and two targets drawn at the signal, the newest five sets kept

$77one payment, lifetime licence

Get the lifetime licence
Read the user guide (PDF)
SMC Algo Warrior on an NQ 15-minute chart in NinjaTrader 8: CHoCH and BOS lines, a red and two green order blocks, and two sell arrows with their entry, stop and target lines
  1. CHoCHA close through the last swing against the structure trend: a solid line from the swing to the break bar. Teal is upward, orange downward.
  2. BOSA break that continues the structure: a dotted line. This one is a close above the last swing high.
  3. Order blocksEach break creates a box: green for a bullish block, red for a bearish one, like the one across the top. A box grows to the right until a close goes through it.
  4. Sell arrowPrinted on a closed bar. The dotted line is the entry at that bar's close, 28346.75, with tp1 28163.25 and tp2 27979.75 below it.
  5. Stop passed, not markedsl 28530.25. Price closed above this line within ten bars of the arrow. Nothing on the chart says so: the levels are a plan, not a tracker.

Why structure marked by hand leaves the hard part to you

Market structure is easy to agree with on a finished chart and harder to apply on the bar in front of you. Which swing counts, whether a wick or a close broke it, which candle is the order block and when that block is finished: each of those is a judgment call, and each one has to be made again on every break.

A retest adds another. A bar touches a block and you have to decide where the stop belongs and how far the targets sit. Boxes drawn by hand also stay on the chart long after price has closed through them, until you remember to delete them.

SMC Algo Warrior fixes those rules. A swing needs a set number of bars on each side, a break needs a close, the block is a defined candle, and a close through a block removes it. The result is a chart you can check rule by rule. It does not say the structure is right about the future. It says what the closed bars did under those rules.

PlatformNinjaTrader 8.1 Desktop, tested on 8.1.9.0
TypeChart indicator, compiled NinjaScript Add-On
SignalsOn closed bars only; the forming bar is not calculated in any mode
BarsAny interval; time-based bars fully, others run
AlertsAlerts Log and Output line, sound and email optional; buy, sell and both CHoCH
SeriesBuySignal, SellSignal, BullishChoch, BearishChoch, StructureTrend
InstrumentsFutures, forex, stocks, indices: any NinjaTrader instrument
LicenceLifetime, one NinjaTrader login, all your PCs
Price77 USD, one payment

The user guide is public: every parameter and the verification are in it. Read it before you pay.

What you get

Nine things it does that a hand-marked chart does not

One indicator in the price panel: the structure, the blocks, the retests and the levels together.

BOS and CHoCH lines

A close above the last unbroken swing high or below the last unbroken swing low is a break. Against the structure trend it is a CHoCH on a solid line; any other break is a BOS on a dotted one.

Order blocks from a defined candle

Each break creates a box. For an upward break it is the candle with the lowest low since the last swing low, for a downward break the candle with the top high since the last swing high, never more than 100 bars back.

Blocks that finish

A close below a bullish block or above a bearish one removes it. With remove ob when mitigated off it stays in grey, no longer extending and no longer able to give a signal.

Retest arrows

A buy needs a bar later than the one that created the block, a low at the block's top or below, a close above its open and no close below the block. A sell is the mirror image. Each block gives one signal at most.

A stop and two targets

The stop sits 0.2 ATR beyond the block's far edge, or beyond the bar's own extreme if that is further. TP1 and TP2 default to 1 and 2 times the distance from the entry to the stop.

A trend filter you can switch

With only trade in direction of structure on, the default, a buy needs an upward structure and a sell a downward one. Off, a retest against the structure trend can print.

Settings that change the structure

Swing length decides how many swings you get, and larger values find fewer. Blocks can be limited to CHoCH breaks, and up to 20 per side can stay active. Four is the default.

Four alerts

Buy, sell, bullish CHoCH and bearish CHoCH, each with its own switch. They land in the Alerts Log and the Output window, with sound and email when you turn them on. A BOS has no alert.

Five series for your strategies

BuySignal, SellSignal, BullishChoch, BearishChoch and StructureTrend can be read by NinjaScript strategies and shown as Market Analyzer columns.

See it working

A closer look, on real NinjaTrader charts

Every picture below is a NinjaTrader 8 capture with numbered notes added. Nothing on the charts is drawn by hand. Click any image to enlarge it.

CL 5-minute chart in NinjaTrader 8 with SMC Algo Warrior: three red order blocks, CHoCH and BOS lines, and two sell arrows, the second on a bar whose high reached the bottom of a block, with its stop above that block
  1. Sell, stop not in viewEntry 96.50, tp1 95.79 and tp2 95.08 are on the chart. The stop tag of this set is not: the price axis follows the bars, so a far level can lie outside the panel.
  2. CHoCH, then BOSA downward break against the trend is a CHoCH on a solid line. The breaks after it continue the structure, so they are BOS on dotted lines.
  3. RetestThis bar's high reached the bottom edge of the red block and it closed below its open, so the sell arrow printed on the closed bar. Entry 95.40 is that close.
  4. Stop 96.21Past the top of the block by the sl buffer, 0.2 ATR at the default.
  5. Targets traded throughtp1 94.59 and tp2 93.79 sit at 1 and 2 times the stop distance. Price later traded through both. The chart does not mark either one.
Retest signals

An arrow prints when a closed bar comes back to an active block

The second arrow on this chart is the whole rule in one bar. The bar came after the break that created the red block, its high reached the bottom edge of the block, and it closed below its open. The structure trend was down, so the sell printed. The stop sits past the top of the block, and the targets sit at 1 and 2 times the distance from the entry to the stop.

An arrow says that the rule was met on that closed bar. It does not say how the trade ends. Each block gives one signal at most, and until the ATR has its 14 bars at the default, a signal prints without levels.

  • Buy arrows are green, under the bar; sell arrows are magenta, over the bar
  • A retest that closes through the block does not print
  • With show order blocks off there are no blocks, so no signals either
  • Each bar gives at most one buy and one sell
MNQ 1-minute chart in NinjaTrader 8 with SMC Algo Warrior: a buy arrow whose first target was traded through and whose second was not, and a sell arrow whose stop was passed, with bullish order blocks running to the right
  1. Buy arrowA green arrow under the closed bar. Entry 28379.00 is that bar's close, with sl 28330.50 below it and two targets above it.
  2. tp2 not reachedPrice traded through tp1 at 28427.50 and turned back below this line, tp2 28475.75, during the 20 bars the lines run.
  3. Sell arrowA magenta arrow over the closed bar. Entry 28419.00 is its close, with tp1 28378.25 and tp2 28337.25 below it.
  4. Stop passed, not markedsl 28459.75. Price closed above this line soon after the arrow and did not reach tp1 first. Nothing on the chart says so.
  5. Blocks stay activeBullish blocks run to the right here. Each stays until a close goes below it, and each can give one signal at most.
Stop and targets

A plan on the chart, and nothing that tracks it

Every signal draws a dotted entry line at the bar's close, a red stop, a green TP1 and a cyan TP2, 20 bars long, each with a price tag. They are a plan. They stay as they are once drawn, and the indicator does not follow them, mark a target or a stop as reached, or count outcomes.

On this chart the buy went through its first target and turned back before its second, and price closed above the stop of the sell before it reached a target. The lines look the same either way. You read the result off the bars yourself, and the newest five sets are all that stay on the chart at the default.

  • The price axis follows the bars, so a far stop or target can lie outside the panel; drag the axis to see it
  • A tag that would fall past the right edge is pulled inside the chart
  • Line length, the buffer and both target ratios are settings
Any market

The same rules on everything NinjaTrader charts

The calculations are not tied to an instrument. The captures below were taken in NinjaTrader 8 on the free simulation feed: index, energy, metal, currency and rate futures, from 1-minute to 30-minute bars, with the indicator at its default settings on every one.

The calculation does not read volume: swings, breaks, order blocks, signals and levels come from open, high, low and close alone, so the volume pane under these charts plays no part. The chart's Trading Hours template decides which bars exist, so an ETH chart and an RTH chart show different structure. On a continuous contract, a roll that is not back-adjusted can produce a false break and an oversized ATR for a while.

SMC Algo Warrior on a MNQ, Micro Nasdaq 100 chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
MNQ, Micro Nasdaq 100Index futures, 1 min
SMC Algo Warrior on a ES, E-mini S&P 500 chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
ES, E-mini S&P 500Index futures, 5 min
SMC Algo Warrior on a NQ, E-mini Nasdaq 100 chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
NQ, E-mini Nasdaq 100Index futures, 15 min
SMC Algo Warrior on a MES, Micro S&P 500 chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
MES, Micro S&P 500Index futures, 3 min
SMC Algo Warrior on a YM, E-mini Dow chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
YM, E-mini DowIndex futures, 5 min
SMC Algo Warrior on a RTY, E-mini Russell 2000 chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
RTY, E-mini Russell 2000Index futures, 15 min
SMC Algo Warrior on a CL, crude oil chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
CL, crude oilEnergy futures, 5 min
SMC Algo Warrior on a NG, natural gas chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
NG, natural gasEnergy futures, 15 min
SMC Algo Warrior on a GC, gold chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
GC, goldMetal futures, 15 min
SMC Algo Warrior on a SI, silver chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
SI, silverMetal futures, 30 min
SMC Algo Warrior on a 6E, euro FX chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
6E, euro FXCurrency futures, 30 min
SMC Algo Warrior on a ZB, 30-year T-bond chart in NinjaTrader 8, with its structure lines, order blocks, arrows and levels
ZB, 30-year T-bondRate futures, 15 min
Under the hood

How a closed bar becomes a signal

The same rules on every closed bar, in one fixed order. Nothing is calculated or drawn on the forming bar.

  1. A swing is confirmed

    A swing high or low needs swing length bars on each side, 5 by default, so it is confirmed that many bars after its own bar. That is a delay, and a break can only follow it.

  2. A close breaks it

    A close above the last unbroken swing high is an upward break, a close below the last unbroken swing low a downward one. Against the structure trend it is a CHoCH; any other break is a BOS.

  3. The break creates a block

    The block is a defined candle since the last swing, at most 100 bars back. It grows to the right until a close goes through it, and at most four per side stay active by default.

  4. A bar retests it

    The bar must come after the one that created the block, reach the block, close in the right direction and not close through it. With the default filter the structure trend must agree.

  5. The plan is drawn

    The arrow, the entry at the close, the stop past the block, TP1 and TP2 with their price tags. In realtime the alert fires. The newest five sets stay on the chart.

What it does

  • Marks breaks, blocks and arrows on closed bars; an arrow or a break does not change once drawn
  • Removes a block when a close goes through it
  • Draws an entry, a stop and two targets you can size a position from
  • Exposes five series for your strategies and the Market Analyzer

What it does not do

  • It does not place orders. It is an indicator, and it never touches your account
  • It does not track the levels: nothing marks a target or a stop as reached, and outcomes are not counted
  • It does not load history for you: Days to load in the Data Series dialog decides, and the aim is at least 5,000 bars
  • It does not forecast price, and an arrow says nothing about how a trade ends
Side by side

Marking structure by hand compared with SMC Algo Warrior

Marked by handSMC Algo Warrior
SwingsBy eyeA set number of bars on each side
A breakWick or close, your callA close through the last unbroken swing
BOS or CHoCHYou keep track of the trendLabelled at the break
Order blockThe candle you pickA defined candle, at most 100 bars back
Finished blocksStay until you delete themRemoved when a close goes through
Stop and targetsYou work them outDrawn at the signal, at your ratios
For your strategiesNothingFive series

How this edition was verified

The engine that computes everything also runs outside NinjaTrader. With its diagnostic dump switched on, the NinjaTrader edition writes every committed bar with the values it drew; those bars are replayed through the engine outside the platform, and the two files are compared value by value.

On 4,595 MNQ 1-minute bars every one of the 41 series compared was equal on every bar. A second run, with Calculate set to each tick and the chart left live across the switch from history to live bars, gave the same result on 4,169 bars.

What that proves: the indicator receives exactly one closed bar per chart bar with the right open, high, low, close and volume, never double-feeds or skips a bar, and shows the values the engine produced. What it does not claim: it is a test of correct calculation, not of trading results, and it says nothing about future performance.

NinjaTrader bars compared4,595, then 4,169 across the live switch
Series compared41
Cells compared188,395 and 170,929
Mismatches0 and 0
ConditionsMNQ 1-minute, NinjaTrader 8.1.9.0, November 2026

The full method is in the user guide: User Guide (PDF) and Installation and Quick Start (PDF).

Get the licence

One payment. Lifetime licence.

No subscription and no renewal. Pay once and the indicator stays licensed to your NinjaTrader account, updates included.

SMC Algo WarriorNinjaTrader 8 indicator

$77one payment, lifetime licence

  • A lifetime licence on one NinjaTrader account login, valid on every PC you use it on
  • The compiled NinjaScript Add-On package and all future updates, at no extra cost
  • No machine ID and nothing to activate: log in to NinjaTrader and it runs
  • The two PDFs: installation and quick start, and the full user guide with every parameter
  • Direct support from me, the developer, by email
Pay by cardCard, Apple Pay or Google Pay, through Stripe
Pay with PayPalPayPal balance or card, through PayPal

The licence is issued to your NinjaTrader account through NinjaTrader's Vendor Licensing, by hand, normally within a few hours and always within 24 hours of your form arriving. You get an email with the download link when it is done.

Because a licence cannot be handed back once it is on your account, a sale is final once the licence has been issued. If you paid and the licence has not been issued yet, email me and I will refund you in full. The user guide is public, so you can read exactly what the indicator does before you pay.

The full terms of sale and the privacy notice for buyers are one page each, in plain language.

Trading carries risk of loss. This is an analysis tool, not financial advice, and no indicator can promise a profit.

Questions

Before you buy

Does SMC Algo Warrior repaint?

Nothing is calculated or drawn on the forming bar, in any Calculate mode, and an arrow or a break does not change once drawn. An order block grows one bar to the right on every bar until it is mitigated or replaced. A swing is confirmed swing length bars after its own bar: that is a delay, and the break it allows can only happen after the confirmation.

How much history does it need?

The swing state, the trend and the active order blocks on screen are built from the bars before them, starting from the first bar the chart loaded, and the indicator does not extend the chart's data. Days to load in the Data Series dialog decides how much is behind them. Aim for at least 5,000 bars where your feed allows it. Two charts that loaded different amounts of history can differ for a while from where the shorter one starts.

Does it tell me when a target or a stop was reached?

No. The levels are drawn when the arrow prints and stay as they are. The indicator does not follow them, mark a target or the stop as reached, or count outcomes, and a stop or target being reached has no alert. The alerts are the buy, the sell and the two CHoCH events.

Why did a signal appear only after the reopen?

NinjaTrader closes a bar when the next bar's first tick arrives, so a session's final bar is calculated and drawn at the first tick after the reopen. Its alert is raised only if the reopen comes within two bar periods plus five seconds of that bar's close. Otherwise the arrow prints with no alert.

Can my strategy use its signals?

Yes. BuySignal, SellSignal, BullishChoch and BearishChoch read 1 on the closed bar of the event and 0 otherwise, and StructureTrend reads 1, -1 or 0. With Calculate set to each tick or price change, the bar that just closed is [1]. There is no webhook: the indicator makes no network call of its own.

Which NinjaTrader version do I need?

NinjaTrader 8.1 Desktop for Windows; the build is tested on 8.1.9.0. Any data connection that delivers bars works, including the free simulation connection.

Do I need a funded broker account?

No. NinjaTrader 8 is free to download and use for charting and simulation, with free real-time futures data for the simulator. A live account with a broker of your choice is a separate step that this indicator does not need. NinjaTrader is the platform it runs inside, not a broker.

Is there a machine ID or an activation step?

No. The licence is tied to your NinjaTrader account login through NinjaTrader's Vendor Licensing, not to a PC. Log in on any installation and the indicator runs; a new PC needs no transfer.

How fast do I get the licence?

I issue it by hand in the NinjaTrader Vendor Dashboard. It is normally done within a few hours and always within 24 hours of your form arriving, including weekends.

Is this a subscription?

No. It is one payment of 77 USD for a lifetime licence on one NinjaTrader account, with future updates included.

Can I get a refund?

Once the licence has been issued the sale is final, because a licence on your account cannot be handed back. That is why the user guide is public: read it first. If you paid and the licence has not been issued yet, email me and I will refund you in full.

Can I move the licence to another NinjaTrader account?

Yes. Email me from the address you bought with and I will move the licence to your new account login.

Will it make me money?

No indicator can promise that, and this one does not. It gives you the structure, the blocks and the retests marked on closed bars, and a stop and two targets to plan around. What you do with that, and how you size positions, decides the outcome.

More tools

Other NinjaTrader 8 indicators I publish

Each one is a compiled NinjaScript Add-On, 77 USD once, with its own page, charts and public user guide.

NinjaTrader 8 indicator

Supply Demand Quadra Zones

An eight-EMA ribbon with crossover signals, a drawn entry, a stop and up to four targets, shaded target and risk zones, a screener of up to nine instruments and a dashboard of five timeframes.

$77 one payment, lifetime licence

NinjaTrader 8 indicator

Smart Liquidity Matrix

Order blocks, fair value gaps, equal highs and lows, liquidity sweeps and previous-period levels, with BUY and SELL plates on closed bars, an entry, a stop, two targets, a dashboard and a scanner.

$77 one payment, lifetime licence

NinjaTrader 8 indicator

Sniper Ashfield Pro

EMA-cross signals scored on six layers and rated in stars, with an entry line, a stop and three targets for the latest signal, an EMA ribbon, a session VWAP, a dashboard and alerts.

$77 one payment, lifetime licence

See all NinjaTrader 8 indicators

Put it on your chart today

77 USD once. A lifetime licence on your NinjaTrader account, updates included, and the licence issued within 24 hours.