Made for
FreeDOM Documentation
Complete reference for the modular Depth of Market addon. Installation,
features, columns, hotkeys, and a full settings reference — all in one place.
v1.0
Last updated: 2026
FreeDOM is a custom Depth of Market (DOM) addon for
NinjaTrader 8, designed for futures traders who want full control
over their order flow visualization. It provides a price ladder with a modular
column system, where every column, color, alignment, and behavior can be configured
independently. All settings are saved per-instrument, so your ES setup can look
completely different from your NQ setup. The product name and version are read from
AssemblyInfo, so they stay consistent across the addon menu, window
titles, and settings display.
FreeDOM includes automatic data feed detection that identifies whether your
connection provides full Level 2 depth, top-of-book only, or trades only,
and displays the detected mode in the window title so you always know what data
you're working with.
To launch FreeDOM, go to New › FreeDOM in NinjaTrader's
Control Center. An instrument selector will appear where you can pick a futures
contract. Recently used instruments appear at the top marked with a star for
quick access. After selecting an instrument and contract month (the front month
is auto-selected), click Launch to open the DOM window.
If you had panels open when you last closed NinjaTrader, FreeDOM will
automatically restore them on the next startup without prompting.
The main window consists of the price ladder with your chosen columns arranged
around it, and a responsive footer bar at the bottom. The footer contains all
primary controls centered with equal spacing: an instrument dropdown
for switching contracts, an account dropdown for selecting which
trading account to track, Flatten All and Trade Panel
buttons, and a Settings gear icon. When the window is too narrow
to fit all controls on one line, the Flatten All and Trade Panel buttons
automatically move to a second row above.
The window title shows the product name, detected data mode, and instrument —
for example FreeDOM [L2] NQ 06-26 indicates full Level 2 data
on the June 2026 NQ contract. Data mode indicators are:
- [L2] — Full Level 2 depth data detected
- [TOB] — Top-of-book bid/ask only (no full depth)
- [T] — Trades only (no bid/ask or depth)
FreeDOM uses a fully modular column system. You can add, remove, reorder, and
resize columns from the Layout & Themes tab in settings.
The Price column is always required, but everything else is optional.
Price
The central price ladder, always present. Supports hiding leading/trailing digits for cleaner display, customizable last-price highlighting with box outlines, and adjustable row height and tick compression.
Recent Bid/Ask
Shows traded volume at each price level, colored by whether the trade hit the bid or lifted the ask. Volume bars fade over time based on a configurable decay rate. Includes minimum filter and highlight thresholds, a last-update highlight mode, and a hotkey to reset the data.
Delta & Volume Leg
Net difference between buying and selling volume (delta) at each price, along with cumulative volume for the current leg. A "leg" resets when delta reverses by a configurable number of ticks. Available combined or as separate Delta Leg and Volume Leg columns.
Delta Leg
Standalone column showing only the delta portion. Use this when you want delta and volume leg in separate locations on the ladder.
Volume Leg
Standalone column showing only the volume leg portion. Pairs with the standalone Delta Leg column for flexible layout.
Bid Depth / Ask Depth
Current order book depth on each side. Configure how many levels to display and calculate, with independent colors and alignments per side. Hovering over a depth row highlights it; clicking locks the highlight to track a specific level as the book moves.
Pull/Stack
Detects when orders are being added to (stacked) or removed from (pulled) the order book — helps identify absorption, spoofing, or aggressive repositioning. Available combined or as separate Pull/Stack Bid and Pull/Stack Ask columns. Optional cumulative count display.
Volume Profile
Cumulative volume traded at each price level for the current session. Single bar or buy/sell overlays. Text as absolute volume or percentage of total. Resets automatically at session open (ETH or RTH).
Time & Sales I / II
Two independent T&S tickers configured separately. Show or hide timestamp, price, and size. Trades color-coded by type (at bid, at ask, between spread, sweeps below bid, sweeps above ask). A large-trade highlight system flags significant prints.
Label
Displays indicator labels (like Opening Range high/low/midline/extensions) at their corresponding price levels on the ladder.
FreeDOM has a complete theming system with two types of themes:
Color Themes
Save every color setting across the entire panel, including any custom colors you've defined. Switch to a different theme and back without losing anything. Custom hex colors (RGB sliders or hex input) are included and restored when applied.
Layout Themes
Save column arrangement, ordering, visibility, widths, and spacing. Switch between configurations without touching colors. When applying, a reminder prompts you to use Save Settings to persist the change.
Both theme types support saving, loading, and deleting. Built-in themes cannot be
deleted. Themes are stored as XML files in the Color and Layout theme subdirectories.
The Custom Colors section lets you create named colors using RGB
sliders or a hex code. Once created, custom colors appear in every color dropdown
throughout the settings window, marked with a star.
FreeDOM includes two opening range indicators that draw horizontal lines across the price ladder:
30-Second Opening Range
Captures the high and low of the first 30 seconds of Regular Trading Hours.
An optional midline marks the midpoint, and extension levels project beyond
the range based on the instrument's typical rotation
(65 points for NQ/MNQ, 15 points for ES/MES).
Each line has independent color and width settings, and labels appear in the
Label column at the corresponding price levels.
5-Minute Opening Range
Same concept but captures the 9:30–9:35 AM EST range.
Configured independently with its own colors, widths, and toggle settings.
Both indicators support a render layer setting that controls whether the lines draw
behind or in front of the column data. Opening range data clears automatically when
the evening session starts (6:00 PM EST).
FreeDOM automatically detects your data feed capabilities within the first few
seconds of connecting to an instrument. The detected mode appears in the window title:
- Full Level 2 — Both depth book and trade data are available. All columns function fully.
- Top of Book Only — Trade data and best bid/ask are available, but no full depth book. Depth and Pull/Stack columns will not populate.
- Trades Only — Only trade prints are available. Bid/Ask, Depth, and Pull/Stack columns will not populate.
Detection completes after receiving at least 3 data events or after a 5-second
timeout. This lets FreeDOM adapt its display to whatever data your broker or market
data provider supports.
The account selector lives in the footer bar as a dropdown, right next to the
instrument selector. When you click the dropdown, it refreshes the list of
connected accounts so any accounts connected after the DOM was opened will appear
immediately. Selecting an account activates position tracking and trade management
for that account on the current DOM.
When switching away from an account that has an active position, a confirmation
dialog warns you before making the change. When no account is selected, the
dropdown displays Account as placeholder text.
With an account selected, FreeDOM displays your live position directly on the price ladder:
- Entry, Stop Loss, and Take Profit lines are drawn across the ladder at their respective price levels, each with customizable colors, widths, and label styling.
- Position labels show your entry point with optional tick distance, price offset, or P&L display.
- Working order labels appear for pending orders with buy/sell color coding, and include +/- buttons to adjust quantity and an X button to cancel.
- All labels have configurable text, fill, and outline colors, font size, and horizontal positioning.
Heads up: trade management features are gated behind a compile-time
flag and individual toggles for safety. They place and modify real orders.
- Shift+Click Trade Entry — Shift+Click on the Bid column to place a Buy Limit (below current price) or Buy Stop (above). Shift+Click on the Ask column for Sell Limit (above) or Sell Stop (below).
- Drag-to-Modify — Click and drag Stop Loss or Take Profit lines on the ladder to modify order prices in real time.
- Move SL to Hover Price (default: S) — Hover over any price row and press the configured key to instantly move all stop loss orders to that price.
- Auto-Balance Quantities — Automatically matches your SL/TP order quantities with your current position size. Includes a safety check to prevent over-filled exit orders.
- Market Exit Hotkey (default: X) — Exits one contract at market per keypress, automatically detecting your position direction.
- Flatten All (default: F, configurable) — Closes your entire position and cancels all working orders. When the position goes flat, all remaining resting orders are automatically cancelled.
The Trade Panel (footer button) provides a bracket order
configuration popup where you can set up:
- Entry quantity
- Stop loss distance (in ticks or points)
- Up to 5 independent take profit levels, each with its own contract count and distance
- Named presets for saving and loading bracket configurations
FreeDOM supports configurable hotkeys that work when the DOM window has focus. The following keys can be remapped in the settings:
| Action | Default | Description |
| Recenter | C or middle-click | Snaps the price ladder back to the last traded price |
| Reset Delta/Leg | D | Clears all delta and volume leg data |
| Reset Bid × Ask | B | Clears all bid/ask volume data |
| Market Exit | X | Market exits one contract |
| Move Stop Loss | S | Moves all stop loss orders to the hovered price row |
| Flatten All | F | Closes position and cancels all orders |
Additionally, the following controls are always available:
- Ctrl + Scroll — Adjust row height
- Scroll — Scroll the price ladder
Hotkeys are saved globally and shared across all instrument panels.
The Contract tab in settings shows your current contract's expiry information and
provides a way to switch to a different contract month for the same root symbol.
Contract expiry is determined by the end of the contract month
(not NT8's rollover date), so contracts are only marked as expired when the month
actually ends.
When switching, if a saved configuration exists for the target contract it will be
loaded automatically; otherwise your current settings carry over. The available
contracts dropdown indicates which months already have saved configurations.
FreeDOM also performs periodic rollover detection. If the current contract has
expired, a prompt appears offering to switch to the next front-month contract.
This check supports NQ, MNQ,
ES, and MES contracts.
FreeDOM supports running multiple instrument panels simultaneously from a single addon instance. Each panel operates independently with its own:
- Data feed subscription
- Settings and layout configuration
- Account tracking
- Window position
Open panels are tracked automatically. When NinjaTrader restarts, FreeDOM restores
all panels that were open in the previous session without requiring any user
interaction.
The footer bar at the bottom of the DOM window contains all primary controls. Items are centered as a group with fixed spacing between them:
- Instrument Dropdown — Select or type an instrument name to switch contracts
- Account Dropdown — Select a connected account for position tracking and trading
- Flatten All Button — Close position and cancel all orders
- Trade Panel Button — Open bracket order configuration (if trade management enabled)
- Settings Gear — Open the settings window
When the window is resized too narrow to fit all controls, the Flatten All and
Trade Panel buttons automatically move to a centered row above the dropdowns and
gear icon. They return to the single row when the window is wide enough again.
The price ladder supports two centering modes:
Edge Scrolling
The ladder stays still until price moves past a configurable threshold (percentage of visible rows), then scrolls to keep price visible. Default — gives a stable view.
Always Centered
The last traded price is always kept in the center of the ladder. More dynamic but can feel jumpy on fast-moving instruments.
You can press the Recenter hotkey or click the middle mouse button at any time to
snap back to the current price. Row height is adjustable via settings or
Ctrl + Scroll, and the Ticks per Row
setting compresses multiple tick levels into a single row for instruments with
very fine tick sizes.
User scrolling is detected automatically. After scrolling, the ladder will not
auto-recenter for 1200 ms, giving you time to examine a
specific price area without the ladder snapping away.
The settings window is accessed via the gear icon in the DOM footer. It has a
sidebar with tabs for each section. Changes take effect immediately on the live
panel as you adjust them. Click Save Settings to persist changes
to disk, or Close to discard.
General
The General tab controls global panel behavior. You'll find the
background color and text size that apply across
all columns. The ladder centering section lets you choose between
Edge Scrolling and Always Centered. You can set the scroll threshold percentage and
assign a hotkey to recenter manually.
Grid borders can be toggled on for both rows and columns, each with independent
colors. The performance section exposes the UI update interval,
which controls how often the panel redraws — lower values give smoother updates
but use more CPU. The current effective FPS is displayed next to the slider. A
debug toggle enables diagnostic logging to local files.
Layout & Themes
This tab manages the column arrangement and theming system. The column
configuration area has two lists — available columns on the left and your current
layout on the right. Use Add/Remove to move columns between lists, and Move Up/Down
to reorder. Columns in the current list can be checked or unchecked to show or
hide them without removing them. The Price column cannot be removed.
Below the column lists are spacing controls for outer padding,
column gap, and price column gap. The color theme and
layout theme sections each have a dropdown to select a saved
theme, along with Apply, Save As New, and Delete buttons. Applying a layout theme
shows a reminder to use Save Settings to make the change
permanent.
The custom colors section at the bottom lets you create named
colors using RGB sliders or hex input. These appear in every color dropdown
throughout settings, marked with a star.
Price Column
Controls the appearance of the central price ladder. You can set a column
background color, price text color, and trim leading or trailing digits for a
cleaner display.
The last price row section controls how the current price is
highlighted: text color, background fill, and a box outline that can span the full
row or just the price column. The outline color and thickness are adjustable.
Row scaling lets you set the row height and ticks per row.
Bid × Ask
Configures the Recent Bid/Ask column. Toggle text visibility, set independent
text and bar colors for buy/sell, and control alignment separately.
Decayed colors control how bars and text look as they fade over
time. The time decay setting determines how quickly volume fades
out. There's a hotkey to reset all bid/ask data, and an option to auto-reset when
an entry order fills. Filter and highlight thresholds let you
hide small values and apply highlight colors to large ones. The
last update highlight mode marks the most recently traded price
with a border and background.
Delta / Volume Leg
Controls the Delta & Volume Leg column (or the standalone variants). Delta
text and volume text can each be independently shown or hidden with their own
colors and alignments. The leg reversal setting defines how many
ticks of delta reversal are needed to start a new volume leg. A dedicated hotkey
resets delta and leg data, with optional auto-reset on entry fill. Bar colors are
configurable for positive delta, negative delta, and volume separately.
Depth
Configures the Bid Depth and Ask Depth columns. Set how many levels to display and
how many to calculate internally (a performance consideration for deep books).
Each side has independent text color, bar color, and alignments.
Hover highlighting colors the row under your mouse cursor, with
separate colors for bid and ask. Click-lock highlighting lets you
click a depth row to pin the highlight at that price.
Pull/Stack
Controls the Pull/Stack columns. Configure how many levels to show and calculate,
with independent colors for pulls vs stacks on each side.
Cumulative count is an optional display that shows the running
total of net pull/stack activity. Bar colors distinguish between pulls (orders
removed) and stacks (orders added).
Volume Profile
Configures the Volume Profile column. The volume type dropdown
switches between Standard mode (single bar) and BuySell mode (overlaid buy and
sell bars). Text can be toggled, displayed as absolute volume or percentage of
total. Volume resets automatically at session open, configurable between
ETH (6:00 PM EST) and RTH (9:30 AM EST).
Time & Sales
This tab has a dropdown at the top to switch between Time & Sales I
and Time & Sales II settings. Both columns have identical
structures but are configured independently, so you can run two different filtered
views side by side. Display options let you show or hide the
timestamp, price, and trade size, with optional milliseconds. A minimum
size filter hides trades below a threshold. The large trade
highlight system flags trades exceeding a size threshold with distinct
background and text colors.
Label Column
A simple tab with just a column background color setting. The Label column itself
displays indicator labels (like Opening Range levels) at their corresponding price
levels. The appearance of individual labels is controlled in the Indicators tab.
Indicators
Contains a dropdown to switch between the available indicator configuration panels.
The 30-Second Opening Range captures the high and low of the first
30 seconds after RTH open. Toggle the display, midline, and extension levels.
Each line has independent color and width settings. A render layer option controls
whether lines draw behind or in front of column data. The
5-Minute Opening Range captures the 9:30–9:35 AM EST range with
the same options, configured entirely independently.
Position Tracking
Controls the live position display on the DOM. The Show Open Trades
checkbox is the master toggle. When enabled, you can independently toggle the
entry, stop loss, and take profit lines, each with its own colors and styling.
The position label display dropdown controls what appears on the
position label: nothing, tick distance, or dollar P&L.
Working order labels for pending orders have independent buy/sell
text and fill colors.
Trade Management
This tab only appears if trade management is enabled at compile time. A prominent
warning reminds you that these features place and modify real orders.
Enable Drag-to-Modify, Enable Shift+Click Trade Entry,
and Auto-Balance Quantities toggle the corresponding behaviors.
Hotkeys for Market Exit (default X), Move Stop Loss (default S),
and Flatten All (default F) are configurable here.
Contract
Shows information about your current futures contract: instrument name, expiry
month, and days until expiry. Expiry is based on the end of the contract month,
not NT8's rollover date. The Switch Contract section lists
available contracts for the same root symbol. The dropdown indicates which
contracts already have saved configurations. Selecting a contract and clicking the
switch button prompts for confirmation.
General
- Background Color
- Text Size (6–30px)
- Ladder Centering Method (Edge Scrolling / Always Centered)
- Scroll Threshold (10–100%)
- Recenter Hotkey (default: C)
- Show Row Borders
- Row Border Color
- Show Column Borders
- Column Border Color
- Resize Highlight Color
- UI Update Interval (10–250ms)
- Enable Debug Output
Layout & Themes
- Column configuration (add, remove, reorder, show/hide)
- Outer Padding (0–30px)
- Column Gap (0–30px)
- Price Column Gap (0–30px)
- Layout Theme selector (Apply / Save / Delete)
- Color Theme selector (Apply / Save / Delete)
- Custom Color manager (name, RGB sliders, hex input, preview, delete)
Price Column
- Column Background Color
- Price Text Color
- Hide Leading Digits
- Hide Trailing Decimal Digits
- Last Price Text Color
- Last Price Fill Color
- Show Last Price Box Outline
- Box Outline Color
- Box Outline Scope (Full Row / Price Column Only)
- Box Width (1–5px)
- Row Height (10–40px)
- Ticks per Row (1–50)
Bid × Ask
- Column Background Color
- Show Text
- Sell / Buy Text Color
- Sell / Buy Text Alignment (Left / Center / Right)
- Decayed Sell / Buy Text Color
- Sell / Buy Bar Alignment (Left / Center / Right)
- Sell / Buy Bar Color
- Decayed Sell / Buy Bar Color
- Time Decay (seconds)
- Reset Bid × Ask Hotkey (default: B)
- Auto-reset on Entry Fill
- Min Filter Threshold
- Highlight Threshold
- Sell / Buy Highlight Bar & Text Color
- Last Update Highlight Mode (Off / Both Sides / Single Most Recent)
- Sell / Buy Last Update Border & Background Color
- Last Update Border Width (1–4px)
Delta / Volume Leg
- Column Background Color
- Show Delta Text / Show Volume Text
- Positive / Negative Delta Text Color
- Delta & Volume Text Alignment
- Volume Text Color
- Delta / Volume Bar Alignment
- Positive / Negative Delta Bar Color
- Volume Bar Color
- Leg Reversal Ticks
- Reset Delta/Leg Hotkey (default: D)
- Auto-reset on Entry Fill
- Delta & Leg Volume Min Filter / Highlight Thresholds
- Positive / Negative Delta Highlight Bar & Text Color
- Leg Volume Highlight Bar & Text Color
Depth
- Column Background Color
- Levels to Show / Calculate (per side)
- Show Bid / Ask Depth Text
- Bid / Ask Depth Text Color & Alignment
- Bid / Ask Depth Bar Color & Alignment
- Enable Hover Highlight
- Bid / Ask Hover Highlight Color
- Enable Click-Lock Highlight
- Bid / Ask Locked Highlight Color
- Min Filter / Highlight Threshold
- Bid / Ask Highlight Bar & Text Color
Pull/Stack
- Column Background Color
- Levels to Show / Calculate (per side)
- Show Text / Show Cumulative Count
- Bid / Ask Cumulative Color & Text Alignment
- Bid / Ask Text & Bar Alignment
- Bid / Ask Pull / Stack Bar Color
- Bid / Ask Pull / Stack Text Color
- Min Filter / Highlight Threshold
- Bid / Ask Pull / Stack Highlight Bar & Text Color
Volume Profile
- Column Background Color
- Volume Type (Standard / BuySell)
- Show Text
- Text Display Type (Volume / Percent)
- Text Color & Alignment
- Bar Alignment
- Standard Bar Color
- Buy / Sell Volume Color (BuySell mode)
- Volume Reset Type (ETH / RTH)
Time & Sales (I and II configured independently)
- Column Background Color
- Show Time / Price / Size / Milliseconds
- Text Gap (0–10)
- Minimum Size Filter (0–100)
- At Bid / Ask / Between Spread / Below Bid / Above Ask Text Color
- At Bid / Ask / Between Spread / Below Bid / Above Ask Row Background Color
- Enable Large Trade Highlight
- Large Trade Highlight Threshold
- Large Sell / Buy Highlight Background & Text Color
Label Column
Indicators · 30-Second Opening Range
- Show Opening Range Lines
- Show Midline
- Show Extensions
- Render Layer (Behind / In Front)
- High / Mid / Low Line Color and Width
- High / Mid / Low Label Text and Background Color
- Extension High / Low Line Color
- Extension High / Low Label Text and Background Color
Indicators · 5-Minute Opening Range
Same settings as 30-Second OR, configured independently.
Position Tracking
- Show Open Trades
- Show Ticks From Entry
- Show Entry / Stop Loss / Take Profit Line
- Position Label Display (None / Ticks / PnL)
- Entry / Stop Loss / Take Profit Line Color
- Trade Line Width (1–5px)
- Entry / SL / TP Label Text, Fill, Outline Color
- Label Horizontal Position (0–100%)
- Buy / Sell Order Text and Fill Color
- Increase / Decrease Button Color
- Trade Label Font Size (8–20px)
Trade Management
- Enable Drag-to-Modify SL/TP Orders
- Enable Shift+Click Trade Entry
- Auto-Balance SL/TP Quantities
- Market Exit Hotkey (default: X)
- Move Stop Loss to Hover Price Hotkey (default: S)
- Flatten All Hotkey (default: F)
Contract
- Current Contract info (name, expiry, status)
- Contract Selector (same root symbol)
- Switch to Selected Contract button
Every setting in FreeDOM is saved independently per instrument. When you open ES,
it loads your ES configuration. When you open NQ, it loads your NQ configuration.
If you switch to a contract that has no saved configuration, your current settings
carry over as a starting point.
Settings files, window positions, recent instruments, themes, and trade presets
are all stored in
Documents\NinjaTrader 8\addons\FreeDOM\.
No matches found. Try a different keyword.