Integrations / NinjaTrader 8
FirmTape levels in NinjaTrader 8
An indicator that draws the flip, call resistance, put support and gamma by strike on a NinjaTrader 8 chart, live. These are measurements of dealer positioning, not trade signals: the plugin places no orders and raises no alerts.
The indicator (.zip import) is not published yet. It will be offered here, with its version and checksum, when it is.
What you need
- NinjaTrader 8 (8.1 or later) on Windows, any licence, including the free one.
- A FirmTape account on the LIVE plan, and an integration token.
Get a token
- Hold the LIVE plan. The levels API and every integration are part of it.
- Open /account#integrations, section Integrations, and press Create integration token. Give it a name (for example the platform and the machine).
- Copy the token when it is shown: it starts
ftpl_and is shown once. It reads levels only; it cannot run LAB or spend credits.
Install
- Download the indicator's .zip below. Keep it zipped.
- In the Control Center: Tools > Import > NinjaScript Add-On..., pick the .zip, confirm.
- On a chart: right-click, Indicators..., find FirmTape Levels under the FirmTape folder and add it.
- Paste your token into API key and press OK. The lines appear within a few seconds.
Keeping the token out of templates. NinjaTrader saves indicator settings, the token
included, into workspaces and chart templates, and templates get shared. To avoid that, leave
API key blank and put the token alone in a text file firmtape.key in
Documents\NinjaTrader 8\ (the folder that holds bin, db and
workspaces). The indicator reads it when it loads. The token never shows in the chart's
indicator label either way.
Settings
| Setting | Default | What it does |
|---|---|---|
| API key | blank | Your ftpl_ token. Blank reads it from firmtape.key (above). |
| Symbol | blank | Blank takes it from the chart: ES and MES read ES, NQ and MNQ read NQ, anything else its own name (SPY, QQQ, NVDA). Type one to override, for example SPX on an ES chart. |
| Poll seconds | 5 | How often the levels are asked for. The floor is 3. |
| Show open-interest levels | off | Also draws the open-interest book's flip and walls, dashed. |
| Show gamma profile | on | The gamma-by-strike bars at the right edge. |
| Profile width % | 25 | The longest bar, as a share of the chart's width. |
| Profile opacity % | 35 | How strong the bars are. |
| Line width | 2 | Level lines in pixels; open-interest lines are one pixel thinner. |
| Label font size | 11 | Right-edge labels and the status line. |
| Colors | amber, green, red | Flip, call resistance, put support, positive and negative gamma. |
What is drawn
- The zero-gamma flip (amber), call resistance (green) and put support (red) as full-width lines with their price at the right edge.
- Optionally the open-interest book's flip and walls, dashed and dimmer.
- A gamma-by-strike profile along the right edge: one bar per strike, green positive, red negative, scaled to the largest bar in view.
- A status line top left, for example
FirmTape ES (ESZ26) · volume book · basis +58.75 · 12 s old. - A red second line when a dated futures chart is on a different contract than the one the basis was measured on: around the roll the levels are then off by the calendar spread.
- Every level is FirmTape's volume book, the one the terminal draws; the open-interest book is the optional set.
- ES and NQ are the SPX and NDX books moved by the day's basis (the running median of the day's basis measurements from put-call parity, rounded to 0.25), exactly as the terminal draws them. MES and MNQ read the same levels as ES and NQ.
- Cadence: SPX and ES are rebuilt every second; NQ and the tickers carry a book rebuilt every five minutes and a price of the second.
- Gamma units are named by the API: millions of USD per index point for SPX and ES, USD per 1% move for NQ and the tickers. Compare bar lengths within one chart, not across charts.
Requests and limits
The levels API allows 120 requests a minute per token, counted across everything that uses it; an unchanged
reading answers 304 with no body and does not count. The indicator runs one poller per token and symbol for the whole of NinjaTrader, so ten ES charts cost the same as one. One symbol with the gamma profile uses about 16 requests a minute at a 5 s poll, 24 at the 3 s floor: about seven symbols fit on one token at 5 s.
Troubleshooting
| Status says | Meaning and fix |
|---|---|
key missing | No token in the settings. Paste it. |
key rejected | The token is mistyped, revoked or unknown. Create a new one on /account#integrations. A revoked token stops working within a minute. |
LIVE plan required | The account behind the token holds no active LIVE plan. The plugin keeps retrying and picks the plan up by itself. |
rate limited | More than 120 requests a minute on this token, counted across every chart, machine and script that uses it. Poll less often, draw fewer symbols, or give each tool its own token. The plugin waits as long as the server asks. |
symbol not covered | The chart's symbol is not one FirmTape covers, or it did not map. Type the symbol in the plugin's symbol setting; the list is /api/v1/symbols. |
no basis yet | ES or NQ early in the session, before the day's first basis measurement. It clears by itself. |
network error, retrying | No answer: offline, DNS, a proxy or a firewall. Allow https://firmtape.com on port 443. The plugin backs off up to two minutes and retries. |
closed, last session | Outside market hours. The lines are the last session's close. Nothing to do. |
STALE | Market hours, but the book has not moved for longer than it should. The lines are the last good reading and clear up when the book moves again. |
connecting | No answer yet. Wait a poll; if it stays, check the network or a firewall for firmtape.com:443. |
no data | The symbol exists but has no reading yet. It clears by itself. |
More
- Tokens and the TradingView and thinkorswim levels string: /account#integrations.
- The levels API reference: /api/v1 (OpenAPI).
- Every platform: /integrations.
Beta software, provided as is, not yet verified inside every version of NinjaTrader 8. NinjaTrader 8 is a trademark of its owner; no affiliation with, or endorsement by, it is implied. Not investment advice.