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.
NinjaTrader 8 indicator, NinjaScriptMarking 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.
$77one payment, lifetime licence
Get the lifetime licence
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.
The user guide is public: every parameter and the verification are in it. Read it before you pay.
One indicator in the price panel: the structure, the blocks, the retests and the levels together.
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.
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.
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.
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.
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.
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.
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.
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.
BuySignal, SellSignal, BullishChoch, BearishChoch and StructureTrend can be read by NinjaScript strategies and shown as Market Analyzer columns.
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.

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.

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 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.












The same rules on every closed bar, in one fixed order. Nothing is calculated or drawn on the forming bar.
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.
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.
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.
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.
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.
| Marked by hand | SMC Algo Warrior | |
|---|---|---|
| Swings | By eye | A set number of bars on each side |
| A break | Wick or close, your call | A close through the last unbroken swing |
| BOS or CHoCH | You keep track of the trend | Labelled at the break |
| Order block | The candle you pick | A defined candle, at most 100 bars back |
| Finished blocks | Stay until you delete them | Removed when a close goes through |
| Stop and targets | You work them out | Drawn at the signal, at your ratios |
| For your strategies | Nothing | Five series |
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.
The full method is in the user guide: User Guide (PDF) and Installation and Quick Start (PDF).
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
No. It is one payment of 77 USD for a lifetime licence on one NinjaTrader account, with future updates included.
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.
Yes. Email me from the address you bought with and I will move the licence to your new account login.
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.
Each one is a compiled NinjaScript Add-On, 77 USD once, with its own page, charts and public user guide.
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
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
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
77 USD once. A lifetime licence on your NinjaTrader account, updates included, and the licence issued within 24 hours.