Anvil Level 2 order book indicator for NinjaTrader 8
by FlowForged Analytics
Large resting size from the Level 2 order book, on your price chart. Anvil draws every bid and ask level at or above your trigger size, labelled with its contracts, and can show how long each one stayed.
NinjaTrader 8Level 2 depthZone · LifespanLive trigger sizeNo Order Flow+
Anvil in Zone mode. Two ask-side levels above price, 209 and 119 contracts, and two bid-side levels below, 136 and 169. Each band spans the chart, with its size labelled at the right. Tap to enlarge.
Quick info
Platform
NinjaTrader 8 on Windows
Concept
Price levels in the Level 2 order book where the resting size reaches your trigger, drawn on the price chart
Designed for
Traders who watch the DOM for large resting size and want it on the chart they trade
Best used when
You want the larger bid and ask levels in view without reading the ladder
Modes
Zone (default) and Lifespan, switched from the toolbar
Data
Live Level 2 market depth. No Order Flow+ and no Tick Replay
Access
Part of the FlowForged Suite, free during the private beta
What Anvil does
Anvil reads every Level 2 depth update for your instrument and keeps its own copy of the bid and ask book. After each update it checks every price level against your trigger size, 350 contracts by default.
Each level at or above the trigger is drawn on the chart, green for the bid and red for the ask, with its size on a small label. It stays there while its size stays at or above the trigger, and the label follows the size as it changes.
When the size at that price drops below the trigger, the level is removed. Anvil reads the book, not the trades, so it does not know whether the orders were pulled, traded against or reduced. In Lifespan mode a removed level stays on the chart, so you can see when it appeared and when it dropped out.
Level 2 shows the total size resting at each price, not individual orders. A label of 400 means 400 contracts at that price, whether that is one order or many.
Purpose
The DOM shows the size resting at each price, but it sits beside your chart and updates many times a second. If large resting size is part of how you read the market, you either watch the ladder or miss it.
Reading the DOM aloneA ladder of numbers beside the chart that changes many times a secondLarge size that is easy to miss while you watch priceNo record of when a level appeared or how long it stayed
With AnvilEvery level at or above your trigger drawn at its price on the chartThe size printed on each level, green for bid and red for askLifespan bars that show when each level appeared and when it dropped out
Why choose it
Your definition of large. One trigger size decides what gets drawn, and Trig on the toolbar changes it without a reload.
Both sides of the book. Bid levels in green and ask levels in red, each labelled with its contracts.
Now or over time. Zone shows the levels that are live right now. Lifespan shows when each one appeared and when it dropped out.
Skip the inside market. Min Position in DOM ignores the levels closest to price when you only want size further out.
Size at a glance. In Zone mode, larger levels draw brighter bands.
No Order Flow+ needed. Anvil runs on NinjaTrader’s standard market depth data.
Two display modes
Both modes draw the same levels. Switch between them from the toolbar at any time.
Zone, the default, draws a band across the full width of the chart at each live level, with the current size on a label at the right or left of the chart. Larger levels draw brighter bands. When a level is removed, its band disappears.
Lifespan draws each level as a bar that starts on the bar where it first reached the trigger. A live level runs to the current bar with a dot at its start. A removed level stops where it dropped out, marked with an ×. The label shows the largest size the level reached.
Lifespan mode. The green bar at the lower right is a live bid level that peaked at 903 contracts: the dot marks where it first reached the trigger. Above it, 277 with an × is a bid level that has dropped out.
Key capabilities
Bid and ask levels at or above your trigger size, from live Level 2 depth
Trigger size changed live from the toolbar and kept when you save the workspace
Min Position in DOM to skip the levels closest to price
Zone mode: full-width bands, brightness scaled to size, the current size on each label
Lifespan mode: bars from first appearance to removal, the peak size on each label, an × where a level ended
Up to 2,000 removed levels kept in Lifespan mode (10 by default)
Labels on the right or left, switched from the toolbar
Bid, ask and label colors, label font size, Lifespan bar height and × size
SharpDX rendering
How to set up Anvil in NinjaTrader 8
Add FF Anvil from the Indicators window to a chart on a live connection that delivers Level 2 market depth.
Set Trigger Size for your instrument. The default is 350 contracts; Trig on the toolbar changes it live.
Optional: raise Min Position in DOM to ignore the levels closest to price.
Pick Zone or Lifespan on the toolbar pill, and Right or Left for the labels.
In Lifespan mode, raise Max Historical Markers to keep more removed levels on the chart.
New to NinjaTrader add-ons? The install guide covers importing, Tick Replay and common fixes.
A live connection that delivers Level 2 market depth for the instrument on the chart, such as Rithmic or CQG. Tick Replay is not used.
Does a label show one large order?
Not necessarily. Level 2 reports the total size resting at each price, not individual orders. A label of 400 means 400 contracts at that price, whether that is one order or many.
What size does Anvil mark by default?
Levels with 350 contracts or more. Change the trigger size live from the Trig control on the toolbar.
Can Anvil show levels that were pulled?
Yes. Lifespan mode keeps removed levels on the chart, up to Max Historical Markers (10 by default). Zone mode draws only live levels.
Anvil does not tell you whether a level will hold or be pulled. It shows where the large resting size sits in the book, on the chart you already watch:
Bid and ask size at or above your trigger, drawn at its price
A threshold you change live from the chart
In Lifespan mode, when each level appeared and when it dropped out
Anvil is in the free private beta
It ships as part of the FlowForged Suite for NinjaTrader 8. The beta is free; request access and we'll email you when it's ready.
Futures trading involves substantial risk and is not for every investor. Chart examples show past market activity and are not indicative of future results. Anvil is an analytical tool, not trading advice.
Every band or bar is a price where the resting size in the book reached your trigger.
BIDASK
The color is the side
Green for size resting on the bid, red for size resting on the ask. Both colors are settings.
209
The label is the size
Contracts resting at that price. Zone shows the current size, Lifespan the largest size the level reached.
── ZONE ──
Brighter means bigger
In Zone mode each band’s brightness is scaled to its size, against the largest level Anvil has seen since it loaded.
•───────×
The bar is the lifespan
In Lifespan mode a dot marks the start of a live level. A removed level’s bar stops, and an × marks where it ended.
What Anvil marks
Keep the book. Each Level 2 update adds, changes or removes the size at one price. Anvil keeps the current size for every price on both sides.
Count from the inside. After each update it walks the bids from the highest price down and the asks from the lowest price up, skipping the first Min Position in DOM levels on each side (none by default).
Apply the trigger. Every level whose size is at or above Trigger Size is marked. Its label follows the size while it stays above.
Remove it. When the size drops below the trigger, or its price drops out of the depth your feed sends, the level is removed. If size builds there again later, it starts a new marker.
Raising the trigger from the toolbar removes any level below the new size straight away.
Anvil reads the book, not the trades. It cannot tell a level that was pulled from one that was traded through, and it only knows what it has seen since it loaded: depth is not part of chart history, so nothing is drawn for earlier bars.
Zone and Lifespan
Zonedefault
A band across the full width of the chart at each live level: a soft glow with a thin center line. Brightness is scaled to the level’s size against the largest level seen since Anvil loaded. A small label at the right of the chart, or the left, shows the current size. Removed levels are not drawn.
Lifespanoption
A bar that starts on the bar where the level first reached the trigger and fades toward its end. A live level runs to the current bar, with a dot at its start. A removed level stops where it dropped out, is drawn fainter, and ends in an × in the other side’s color. The label shows the peak size.
Lifespan mode always keeps removed levels, up to Max Historical Markers (10 by default); the oldest goes first. Zone mode only draws live levels. Turn on Keep Removed Markers if you want Anvil to keep that record while you are in Zone, so it is there when you switch to Lifespan.
Paired with Hammer
Anvil shows size waiting in the book. Hammer prints the size of aggressive orders that traded, rebuilt from the tick stream. Run both and the chart shows the resting side and the aggressive side together.
Detection settings
0. Toolbar
Show toolbarOn
Shows the toolbar pill. Turn it off for a clean chart.
1. Parameters
Trigger Size350
The minimum size, in contracts, a price level needs before Anvil draws it. 1 or more. Also set live from Trig on the toolbar.
Min Position in DOM0
How many levels to skip on each side, counted from the inside. 0 includes the best bid and ask; 2 starts at the third level. 0 to 100.
Display ModeZone
Zone or Lifespan. Also switched from the toolbar.
Keep Removed MarkersOff
Keeps a record of levels that drop out while you are in Zone mode, so they show if you switch to Lifespan. Zone itself only draws live levels, and Lifespan always keeps them.
Max Historical Markers10
How many removed levels are kept for Lifespan mode, 1 to 2,000. The oldest goes first.
Appearance settings
2. Colors
Bid Color / Ask Colorgreen / red
Band and bar colors for each side. The × on a removed level uses the other side’s color.
Bid Text Color / Ask Text Colorlight green / light red
Label colors for each side.
3. Marker Style
Font Size16
Label text size, 6 to 36. Labels are drawn 2 points smaller than this, and never below 9.
AlignmentRight
Which side the labels sit on: the right or left of the chart in Zone mode, the end or the start of the bar in Lifespan mode. Also on the toolbar.
Bar Height5
Thickness of the Lifespan bars and the Zone bands, 1 to 20 pixels. At the default 5, Zone bands keep their usual size.
Dot Size6
Diameter of the dot at the start of a live Lifespan level, 0 to 20 pixels. 0 hides it.
End Dot Size6
Size of the × at the end of a removed level in Lifespan mode, 0 to 16 pixels.
Toolbar
Mode, label side and trigger size all change live from one pill, with no dialogs and no reload.
ANVILZoneRightTrig: 350
As it sits on the chart, default settings. Each button shows its current value; click to change it.
Power turns the overlay on or off, and follows the suite-wide Master Switch. Anvil keeps reading the book while it is off, so the levels are current when you turn it back on.
Zone shows the display mode; click to switch to Lifespan and back.
Right shows the label side; click to switch to Left and back.
Trig: 350 opens a box to type a new trigger size. Enter or Apply sets it, Esc closes it. The new size is kept when you save the workspace.
Requirements
Platform
NinjaTrader 8 on Windows. No Order Flow+ subscription required.
Data
A live connection that delivers Level 2 market depth for the instrument on the chart.
History
Depth is not part of chart history, so Anvil starts empty each time it loads and builds from the live book. Nothing is saved to disk.
Chart
Any chart type or timeframe. Lifespan bars are measured in your chart’s bars.
Try it in the free private beta
Anvil ships as part of the FlowForged Suite. The beta is free.