Calculations & Plots
Calculations are rebuilt in NinjaScript; lines and histograms become NinjaTrader plots, and fills, shapes and labels are drawn with drawing tools or custom rendering. Any visual differences are agreed in advance.
We rewrite Pine Script indicators and strategies in NinjaScript for NinjaTrader 8 — starting from how the original script behaves, not from its syntax, and checking the result against criteria agreed with you.
ta.ema(close, 21)EMA(Close, 21)[0]plot(ema)AddPlot(Brushes.DodgerBlue, "EMA")request.security(…, "60", …)AddDataSeries(BarsPeriodType.Minute, 60)strategy.entry("L", strategy.long)EnterLong(qty, "L")Same logic, rebuilt for NinjaTrader 8
TradingView to NinjaTrader conversion means rewriting a Pine Script indicator or strategy in NinjaScript — NinjaTrader’s C#-based language — so that it runs natively in NinjaTrader 8: an indicator becomes a NinjaScript indicator, and a strategy becomes a NinjaScript strategy that runs on your simulation or live account. Pine Script and NinjaScript handle bars, data from other timeframes and orders differently, so the logic has to be understood and rebuilt — not translated line by line.
Converting a TradingView indicator to NinjaTrader means recreating its calculations and everything it shows on the chart. The converted indicator runs on NinjaTrader charts and can be used by other NinjaScript indicators and strategies. If you need it on tick, volume, range or Renko bars, that is agreed and checked during conversion — logic tied to minutes, candle duration or session boundaries may need adapting.
Calculations are rebuilt in NinjaScript; lines and histograms become NinjaTrader plots, and fills, shapes and labels are drawn with drawing tools or custom rendering. Any visual differences are agreed in advance.
Higher-timeframe values come from additional data series and keep the original’s update behaviour — from the forming bar or from confirmed bars only.
Alert conditions become NinjaTrader alerts with sound, and other notifications where needed.
Drawings, labels and boxes become NinjaTrader drawing objects; tables become on-chart panels.
Script inputs become properties in the indicator’s settings, agreed with you before work starts.
New settings or functions can be added, several indicators combined into one, a Market Analyzer column built, or the indicator turned into a strategy.
A Pine Script strategy simulates trades on the chart; a NinjaScript strategy places orders through NinjaTrader on your simulation or live account. Converting a TradingView strategy to NinjaTrader keeps the strategy’s rules and adds the order handling that live trading needs.
Entry, exit and close rules are rebuilt with NinjaScript order methods — including reversals on an opposite signal, pyramiding limits, partial exits and exits tied to specific entries — using the managed approach, or the unmanaged one where the logic needs it.
Contracts per trade, risk-based sizing and limits on positions are set up as you define them.
Stop-loss, profit target, trailing stop and breakeven in the strategy’s own code — or an ATM strategy. An ATM version is checked on simulation or Playback: ATM strategies don’t run in backtests.
TradingView often uses continuous contracts such as NQ1!; NinjaTrader trades a specific contract month, so rollover is taken into account.
Market, limit and stop orders through your NinjaTrader connection, on a simulation or live account.
Trading sessions and days, time limits and other filters can be added to the original rules.
Strategy Analyzer results will not match TradingView’s Strategy Tester exactly: the two platforms use different price data, contract handling and order-fill modelling. What we check is that entries and exits follow the agreed rules.
TradingView and NinjaTrader run scripts in different ways. These are the differences that decide whether a converted script behaves like the original — and what we do about each of them.
The data source selected in TradingView
Your NinjaTrader data connection
We take the data difference into account and agree with you how closely values must match.
Often continuous contracts, such as NQ1!
A specific contract month; history depends on the merge setting
We compare on the same contract and agree how rollover and history are handled.
The symbol’s session — regular or extended hours — and the time zone the script’s logic uses, the exchange’s by default
The trading hours template, such as RTH or ETH, and the platform time zone
We compare sessions, bar timestamps and the time zone each version’s logic uses — matching chart clocks alone isn’t enough.
Some functions recalculate as a bar forms and can repaint
Calculation mode is set per script; on history, bars are processed on close unless intrabar data is added
The calculation mode, the historical data and the way intrabar signals are checked are chosen to match the original’s logic.
Can use the current, still-forming higher-timeframe bar or only confirmed values
Added as extra data series and processed bar by bar
We find out which the original uses and keep it — or switch to confirmed values if you prefer. We also check the original for future-data leakage and agree any corrections before conversion.
The strategy simulates fills on the chart
Orders go through your NinjaTrader connection
We build order handling with NinjaScript order methods and agree sizing, stops and targets with you.
Tables, labels, boxes and fills
Plots, drawing objects and custom rendering
We recreate them with NinjaTrader’s tools; the look can differ slightly, the information stays the same.
Set up in the TradingView interface
Generated by the indicator or strategy itself
Alert conditions are built into the NinjaTrader version, with sounds and other notifications where needed.
Some things depend on the platform itself: data available only on TradingView, such as symbols your data connection doesn’t provide; volume and tick data, which depend on your data feed; and the settings of TradingView’s Strategy Tester. We point these out before work starts and agree the closest NinjaTrader equivalent with you.
A converter or an AI pass can produce NinjaScript code quickly. The risk is not the tool but an unchecked result: code can compile and still behave differently from the original, because the two platforms treat bars, history and orders differently. We start from how the original script behaves and rebuild that behaviour in NinjaScript.
| Automatic conversion | Manual conversion at Nordman Algorithms | |
|---|---|---|
| Starting point | Often the syntax, statement by statement | How the original script behaves |
| Platform differences | Often found later, if at all | Identified before work starts and agreed with you |
| Strategies | Simulated fills may be carried over as they are | Order handling built with NinjaScript order methods |
Send it to us — we review it and give you a fixed price and timeline before work starts.
We run the original on TradingView and the converted version in NinjaTrader 8 on the same instrument and timeframe, with matching trading sessions and bar timestamps, and compare them against acceptance criteria agreed with you:
If something doesn’t match, we find the cause — price data, platform behaviour or the code — and check the result against the agreed specification.
Share the source code or the script’s TradingView link, a short description and screenshots of how it should look and behave.
You sendScript + descriptionWe analyse the script, point out anything that works differently in NinjaTrader, and agree settings, acceptance criteria, price and timeline.
You getFixed price + criteriaThe indicator or strategy is rebuilt in NinjaScript, including any extra features you asked for.
We buildThe NinjaTrader versionThe NinjaTrader version is checked against the acceptance criteria agreed in step 2.
We checkValues, signals, tradesBugs and differences from the agreed specification are fixed after delivery.
You getNinjaScript source codeEvery script is reviewed before we quote. These are the main factors.
How much logic the script contains and how many calculations depend on each other.
Data the script requests from other timeframes or instruments.
Drawings, labels, boxes and tables that need NinjaTrader drawing objects or panels.
For strategies: entries, exits, position sizing and trade management.
Settings, filters or functions you want beyond the original script.
Without the source code, recreating the script from your rules and examples is assessed separately; an exact match can’t be promised in advance.
If your strategy already works on TradingView and you only need its signals executed in NinjaTrader, you may not need a conversion at all.
Executes TradingView alerts in your NinjaTrader account. Your strategy keeps running on TradingView.
Most TradingView indicators can be rebuilt in NinjaScript. Some TradingView-specific features — certain drawing styles, tables or data available only on TradingView — need a NinjaTrader equivalent. We tell you about any such differences before work starts.
Yes. The strategy’s entry and exit rules are rebuilt as a NinjaScript strategy that places orders through NinjaTrader, with position sizing, stop-loss, profit target and any extra trade management agreed with you.
Not always exactly. TradingView and your NinjaTrader data connection use different price data, futures contracts and trading hours can be set up differently, and some elements work differently on the two platforms. How closely values must match is agreed before work starts, and any difference is traced to its cause.
Not exactly. The two platforms use different price data, contract handling and order-fill modelling, so results differ. What we check is that entries and exits follow the agreed rules.
A link to a protected or invite-only script doesn’t give access to its source code. Without the source, we can assess recreating the script from the rules, screenshots and example values you provide — but an exact match with the original can’t be promised in advance.
No. Our developers write the NinjaScript version themselves, based on how the original script behaves.
Yes, when trade management is written in the strategy’s own code: it then runs in NinjaTrader’s Strategy Analyzer for backtesting and optimisation. ATM strategies don’t run in backtests, so an ATM version is checked on a simulation account or in Playback. If you need both, how trades are managed is agreed with you before work starts.
The full NinjaScript source code of the indicator or strategy, ready to use in NinjaTrader 8. The settings are agreed with you before work starts.
It depends on the size of the script, data from other timeframes, visual elements and, for strategies, the order logic. After reviewing your Pine Script we give you a fixed price and an estimated timeline before work starts.
Share the script or its TradingView link and a short description of what it should do in NinjaTrader 8. We will review it and give you a fixed price and timeline before work starts.