Skip to main content

New exclusive discount codes available! Save up to 90% on prop firm challenges.

Back
FreeDOM · Documentation
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

#What is FreeDOM?

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.

#Getting Started

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)

#Column System

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.

#Themes & Customization

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.

#Indicators

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).

#Data Feed Detection

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.

#Account Selection

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.

#Position Tracking

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.

#Trade Management

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

#Hotkeys

FreeDOM supports configurable hotkeys that work when the DOM window has focus. The following keys can be remapped in the settings:

ActionDefaultDescription
RecenterC or middle-clickSnaps the price ladder back to the last traded price
Reset Delta/LegDClears all delta and volume leg data
Reset Bid × AskBClears all bid/ask volume data
Market ExitXMarket exits one contract
Move Stop LossSMoves all stop loss orders to the hovered price row
Flatten AllFCloses 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.

#Contract Management

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.

#Multi-Instrument Support

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.

#Ladder Behavior

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.

#Settings Window

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.

#Settings Reference

A complete list of every setting on each tab.

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
  • Column Background Color
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

#Per-Instrument Settings

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\.