NinjaTrader indicators: what they do, and which ones are worth adding
An indicator is a small C# program that runs inside NinjaTrader and draws a conclusion from the data the platform already has. There are thousands of them, most do one of five jobs, and the difference between a useful chart and an unreadable one is usually knowing which job you are short of.
This page covers what they are, how the categories differ, what changed in NinjaTrader 8.1, how to install one, and where the free ones stop being enough.
What a NinjaTrader indicator actually is
Indicators on NinjaTrader are written in NinjaScript, which is C# with a set of platform classes on top. They are compiled, not interpreted: the platform builds them into an assembly the first time and runs the compiled code after that.
That matters in one practical way. A compiled indicator can do per-tick work — reading each trade as it prints, separating buys from sells, holding state across a session — at a speed that keeps up with a fast market. Most of the difference between a simple overlay and an order flow tool is how much of that per-tick work it does.
It also means an indicator is real code running in your platform. A badly written one can slow a chart down, throw exceptions when the data feed hiccups, or fail to compile — and when a source-code indicator fails to compile, every source-code indicator on the machine disappears from the list at once, because they are compiled together into one assembly. That single behaviour explains most "my indicators vanished" reports.
The tools we make
Volume and order flow for NinjaTrader 8 and 8.1. One pack is on sale, two more are in the workshop — each card goes to the page that says exactly what it does and what it does not.
Available now
ICF Volume Profile Pack
Volume Profile, On-Screen Profile and TPO Profile for NinjaTrader 8 and 8.1, in one license.
Coming soon
ICF Footprint Chart Pro
A footprint chart for NinjaTrader 8, in development. Volume at every price inside the bar, with the bid and ask kept apart.
Being rebuilt
ICF Elite Volume & Order Flow Suite
The full range of ICF tools for NinjaTrader 8. Being rebuilt one product at a time — the page says what ships today and what is coming.
The five jobs, and why the category matters more than the name
Nearly every indicator is doing one of five things. Naming the job first makes the buying decision much simpler, because you stop comparing tools that were never alternatives to each other.
- Trend and momentum — which way, and is it still going? Moving averages, MACD, RSI, ADX, SuperTrend variants.
- Support and resistance — where is price likely to react? Pivots, prior-day levels, Fibonacci, swing structure.
- Volume and order flow — how much business was done, and by whom? Volume profile, delta, footprint, the order book.
- Execution and signals — turning a rule into something the Strategy Builder can act on.
- Utility — sessions, news times, alerts, journalling. Not analysis, but they remove work.
The categories overlap less than the marketing suggests
Trend and momentum tools are all calculations on price. They are useful and they are also, by construction, one step behind: they describe what price has already done. Nothing in that family can tell you whether a move had size behind it.
Volume and order flow tools are the ones reading a different input. Volume says how much changed hands; order flow separates the side that had to pay up from the side that was sitting there waiting. That is a genuinely separate piece of information, and it is the family we build for.
Support and resistance tools sit in between. Drawn from price alone they are guesses about where a reaction might happen; drawn from volume they are a record of where reactions actually did happen.
Two tools used consistently beats five. The most common failure we see is adding a second indicator to explain why the first one was wrong, and then a third.
Built-in, free and third-party
NinjaTrader 8 ships with a large set of standard indicators, and they are genuinely usable. If you are learning to read a market, start there. You will find out whether a way of looking at the chart suits you before spending anything.
Free third-party scripts from forums and public repositories are a different proposition. Many were written for NinjaTrader 7 or early 8 builds and never updated. The common failure modes are not subtle: no exception handling, so a feed interruption or a session rollover throws; assumptions about bar indexing that break under Tick Replay; and compile errors on current builds, which — see above — take every other source indicator down with them.
None of that makes free tools worthless. It makes them appropriate for learning and simulation, and risky in front of live capital, which is a different question from whether they cost money.
Paid does not automatically fix it either. What you are paying for is that someone is still maintaining the thing against new platform builds — so the question worth asking a vendor is when they last shipped an update, not what the indicator claims to predict.
NinjaTrader 8 and 8.1
NinjaTrader 8.1 changed enough underneath that some indicators compiled against older 8.0 builds produce assembly errors or trigger safe mode on load. Vendor DLLs are the usual case, because they were compiled once against whatever the platform looked like at the time.
Two 8.1 conveniences are worth knowing about because they change how a busy chart is managed: data box labels can be styled so you can tell overlapping values apart, and indicators can be hidden and shown without removing them from the chart.
If an indicator you rely on stops appearing after a platform update, the useful diagnostic is not the Output window — it truncates. Read the log and trace files under your NinjaTrader 8 folder. The first real error is usually several lines above whatever the Output window shows you, and it is often not in the indicator you suspect.
Two settings that change what an indicator shows you
An indicator can be installed correctly, load without error, and still be showing you something other than what you think. Two platform settings account for most of it.
Calculate. An indicator set to On bar close updates once per bar. For a moving average or a trend filter that is the right choice — it is cheaper and the answer does not change mid-bar.
For anything reading inside the bar — delta, footprint, imbalance, anything separating buying from selling — On each tick is not an optimisation, it is a requirement. On bar close, those tools cannot see the activity they exist to measure, and they will not warn you. They will just be wrong quietly.
Tick Replay. Enabled under Tools ▸ Options ▸ Market Data, it makes historical bars available tick by tick instead of as finished candles. Without it, a tool that reconstructs bid/ask detail has nothing to reconstruct it from, so historical bars come back empty or flat while live bars look correct.
It is expensive: loading a long history tick by tick takes real time and memory. In practice the limit is how much history you are willing to wait for, which is why it is off by default.
Installing an indicator
How you install depends on what the vendor gave you, and the two cases are handled differently.
A NinjaScript archive (source code, usually a .zip built by the exporter) goes through Tools ▸ Import ▸ NinjaScript Add-On. The platform unpacks the source and recompiles everything.
Compiled vendor DLLs do not go through Import at all. If you try, NinjaTrader answers "Selected file was made from an older, incompatible version of NinjaTrader or is not a NinjaScript archive." That message is correct and the file is fine — a folder of DLLs simply is not a NinjaScript archive. They are copied in by hand.
The install problems that come up most — a failed installer, a missing demo connection, an import that throws an error — are answered on our FAQ page.
- Close NinjaTrader completely — this is the only step where it usually goes wrong.
- Extract the zip.
- Copy the DLL files into Documents\NinjaTrader 8\bin\Custom\
- Start NinjaTrader.
Why copying a DLL does not break your other indicators
The worry is reasonable and the answer is structural. NinjaTrader compiles the .cs source files in bin\Custom together into one assembly, but it loads .dll files in that folder as they are. Copying a DLL in does not touch a single source file, so it cannot break the compile.
On a working machine we measured, bin\Custom held 173 source indicators alongside eleven vendor DLLs from four different vendors, some dating back to 2021, coexisting without trouble.
The one real conflict would be two vendors publishing an identically named type. Ours live under the ICF.* namespace, which makes that close to impossible — and it is a risk that exists equally with Import.
What we build
ICF Market is an approved vendor in the NinjaTrader Ecosystem and a UK-registered company. We work on one family: volume and order flow. We do not make trend indicators, and there are good free ones already.
One pack is on sale today — three profiling tools that answer the "where is value" question. A footprint indicator is in development. The other views described above we do not currently sell, and this page will say so until that changes.
Common questions about NinjaTrader indicators
Are NinjaTrader indicators free?
NinjaTrader 8 includes a substantial set at no cost, and they are usable for real work. Free third-party scripts also exist in quantity. What you generally do not get free is maintenance — an indicator that still compiles and behaves correctly two platform updates from now.
Will indicators built for NinjaTrader 8 work on 8.1?
Source-code indicators usually recompile without trouble. Compiled vendor DLLs are the ones to check, because they were built against a specific platform version — that is where assembly errors and safe-mode warnings come from. Ask the vendor whether they have shipped a build tested against 8.1.
Why did all my indicators disappear from the list?
Almost always a compile failure. Source indicators are compiled together into one assembly, so one file that will not build removes all of them from the list at once. The indicator named in the error is often not the one at fault. Read the files under log\ and trace\ rather than the Output window, which truncates.
Can indicators be used for automated trading?
An indicator analyses; a strategy executes. The line is blurred in practice, because an indicator can expose values a strategy or the Strategy Builder then acts on. But an indicator on its own does not place orders.
Do I need the paid version of NinjaTrader?
Charting and indicators work on the free license. What the paid licenses change is order routing and commissions, not whether an indicator runs. Some data — Level II depth in particular — depends on your data feed rather than your NinjaTrader license.
Do volume indicators work on forex?
They run, but the answer means less. Futures report real centralised volume with bid and ask detail. Spot forex has no central volume at all, so what you are shown is tick volume — a count of transactions, where a 500-lot and a 1-lot both add one.
My order flow indicator shows nothing on historical bars. Why?
Almost certainly Tick Replay. Anything that separates bid from ask needs the historical bars replayed tick by tick to rebuild that detail; without it there is nothing to rebuild from, so history comes back empty while live bars look fine. Enable it under Tools ▸ Options ▸ Market Data. Check the Calculate setting too — on bar close, an intrabar tool is blind by design.
How many indicators should be on a chart?
Fewer than most people run. Each one has to earn its place by answering a question the others cannot. Two used consistently is a working setup; six is usually three tools disagreeing and a decision that never gets made.
Not sure which of the five you are short of?
Describe what you are trying to see on the chart and we will tell you honestly whether we have something for it — including when the answer is that we do not.