Tools / Indicator
Velotrak Footprint
A live bid/ask footprint for NinjaTrader 8. Every trade is sorted by which side was aggressive and stacked at the price it traded, with sells to the left of each candle and buys to the right. On top of that grid it highlights where one side overwhelmed the other: diagonal imbalances by strength, stacked imbalance zones that project forward until price revisits them, and absorption arrows at bar close.
For futures day traders and scalpers who read order flow, especially on the index futures and gold.
What it does
A normal candle shows you where price went. A footprint shows you how it got there. Every trade is sorted by which side was aggressive and stacked at the price it traded:
- A trade at or above the ask counts as a buy: someone lifted the offer.
- A trade at or below the bid counts as a sell: someone hit the bid.
- Anything in between is left unclassified rather than guessed.
A candle shows where price went, not how it got there. The footprint shows the auction inside the candle, without the cost or clutter of a large order-flow suite.
Sell volume is printed to the left of each candle and buy volume to the right, one row per price level. On top of that grid, the indicator highlights the places where one side overwhelmed the other.
Features
Live bid/ask footprint
Sells left, buys right, one row per price level, padded clear of the candle body so the numbers never sit on the wick. Text size adapts to how far you are zoomed in. If there is not enough room to draw cleanly, the footprint hides itself and tells you what to change, instead of printing an unreadable mess.
Heat-mapped diagonal imbalances
Imbalances are measured diagonally, the way the auction actually moves: buyers at a level against sellers one row above, sellers at a level against buyers one row below. A level counts when the winning side is at least 300% of the losing side and trades at least 5 contracts (both adjustable).
Strength is shown, not just presence. A coloured block grows out from the candle behind each imbalance, dim at the threshold and full brightness at 900%. A glance tells you a 3-to-1 from a 15-to-1.
Stacked imbalance zones
When 3 or more imbalances on the same side sit at consecutive price levels, they are framed as one zone. Any gap breaks the run: a level that isn't an imbalance, or a price that never traded. Buy and sell stacks are tracked separately.
Imbalance projection
Every level of a stacked zone projects a line forward across the chart until price comes back and touches it. A partly revisited zone keeps its untouched levels live. The lines pass behind your bars so they never cover data, and they stay visible even after the original candle has scrolled off screen.
Volume histogram and point of control
A neutral bar behind every level shows how much traded there, scaled against the busiest level in the candle. The level with the most total volume gets a thin gold box across both sides: the bar's point of control.
Two histogram modes
| Mode | Left side | Right side |
|---|---|---|
| Sells × Buys | Sell volume per level | Buy volume per level |
| Delta × Volume | Delta per level (buys minus sells), green or red | Total volume per level |
Switching modes only changes what is displayed. Imbalances, stacked zones and the POC are always calculated from the raw buys and sells.
Tick grouping
Merge 1, 2 or 4 ticks into each row, or pick any custom value up to 20. Rows sit on a fixed price grid, so they line up across every candle. Fast markets with tall candles stay readable without losing the recorded detail.
Bar summary: under each bar, or a table
Delta, sells, buys and total volume for every candle, shown one of two ways:
- Under each bar: a small stacked readout beneath the candle, always placed below the lowest of the wick or the bottom grid row.
- Table at bottom: a fixed band across the bottom of the chart, one column per candle with labelled rows. Delta is shown as vivid green and red blocks. Sell and buy volume use muted versions of the same colours so they never read as delta. Volume uses a grey heat. Shading scales to the busiest candle on screen, so heavy bars stand out. Large numbers shorten automatically (2,500 becomes 2.5K) when a column gets narrow.
Session markers and countdown
Dashed lines mark the Globex open (18:00), Tokyo (20:00), Tokyo close (02:00), London (03:00), New York open (09:30) and London close (11:30), New York time, converted to your chart’s time zone. A tag pinned to the right edge counts down to the current bar's close and to the next session, with a thin line linking it to the live price.
Survives settings changes
NinjaTrader normally rebuilds an indicator every time you open its settings, which would wipe recorded order flow. The footprint keeps its data in memory for the whole NinjaTrader session, so changing a setting or reloading the indicator doesn't cost you your levels. A full NinjaTrader restart starts clean on purpose, so stale overnight levels never come back.
Absorption signals
Absorption is aggressive selling that fails to push price down, or aggressive buying that fails to push it up. The footprint looks for it at the end of every candle.
| Bullish absorption | Bearish absorption | |
|---|---|---|
| Where | Bottom quarter of the candle | Top quarter of the candle |
| Delta in that zone | Net negative: sellers hitting the bid | Net positive: buyers lifting the offer |
| Size | At least 15% of the bar's total volume | At least 15% of the bar's total volume |
| Close | Bar closes up | Bar closes down |
| Arrow | Up arrow under the low | Down arrow over the high |
| Invalidation | Price takes out the bar's low | Price takes out the bar's high |
The threshold is a percentage of each bar's own volume, not a fixed contract count, so it calibrates itself between quiet Asia hours and a busy New York open. Tune it live from the panel.
No repainting
Arrows are only drawn once the candle has closed. You never see a signal appear mid-bar and then vanish.
Sound alert
An alert plays when an arrow prints, so you can work with the chart out of view.
What it does not mean
It is not a buy or sell instruction and doesn’t predict a reversal on its own. It marks a place where one side failed. The signal is invalidated if price takes out the bar’s low (bullish) or high (bearish). Use it with your own context and risk.
Drive a risk line automatically
If you size trades off a horizontal line on your chart, give the footprint that line's name. When an absorption arrow prints, the footprint moves the line just past the signal bar: below the low for a long, above the high for a short, offset by 1 tick (adjustable). Your trade tool then sizes from the new stop.
It only moves a line whose name matches exactly. The name is empty by default, so nothing moves until you set it. If the line isn't on the chart, nothing moves. The panel shows which line it is driving. It pairs with the TWJ Trade Panel out of the box link once the Trade Panel has a page.
The Velotrak Footprint panel
Everything you change mid-session lives in a panel on the chart, so you never have to open the settings window while trading.
Controls tab
Histogram mode, bar summary view, imbalance projection, ticks per row, panel size.
Strategy tab
Absorption on or off, the threshold stepper, and the risk line status.
Legend tab
A key to every colour and marker on the chart.
Licence row
Shows the licence state. When a newer version is live, a link opens this page to get it.
Footer link
Opens this page, the tool’s help page.
Each section has an info button that opens a card explaining every control, drawn with the control itself so you can see what you're reading about. Drag the panel by its header, click the header to collapse it, and scale it from 0.5× to 3× for high-resolution screens. Its position is saved with your chart.
Try it: switch tabs, flip the switches, and click an i to open its info card.
Settings reference
Every setting in NinjaTrader’s indicator settings window, with its default.
| Group | Setting | Default | What it does |
|---|---|---|---|
| Readout | Stats block under bars | On | Delta / sells / buys / volume under each candle |
| Stats block text size | 13 (6–48) | One size for the whole stats block | |
| Sells colour | Indian red | Sells line of the stats block | |
| Buys colour | Medium sea green | Buys line of the stats block | |
| Volume colour | White | Volume line of the stats block | |
| Show Velotrak Footprint panel | On | Shows the on-chart panel | |
| Legend starts collapsed | Off | Panel opens collapsed | |
| Help link (panel footer) | This page (the tool’s product page) | Page opened by the panel footer. Only http/https links open | |
| Panel scaling | 1.0 (0.5–3.0) | Panel size; raise on high-resolution screens. Also adjustable live | |
| Grid | Show footprint grid | On | Draws the sell/buy numbers |
| Max font size | 12 (6–24) | Largest the numbers get when zoomed in | |
| Min row height to draw | 8 px (4–30) | Below this row height the grid hides instead of overlapping | |
| Number padding from candle | 5 px (0–40) | Gap between the candle body and the numbers | |
| Grid text colour | Gainsboro | Colour of non-imbalance numbers | |
| Ticks per row | 1 (1–20) | 2+ merges ticks into fixed-grid rows to shorten tall bars | |
| Imbalances | Show imbalances | On | Highlights diagonal imbalances |
| Imbalance ratio | 3.0 = 300% (1–20) | How many times bigger the winning side must be | |
| Min volume on winning side | 5 | Ignores imbalances on tiny volume | |
| Buy imbalance colour | Lime green | ||
| Sell imbalance colour | Red | ||
| Strength (heat map) | Full-brightness ratio | 9.0 = 900% (1.5–100) | Ratio at which an imbalance reaches full brightness |
| Show strength blocks | On | Coloured block behind each imbalance, sized by strength | |
| Extra block length at threshold | 2 px (0–200) | Block length added at the imbalance threshold | |
| Extra block length at full strength | 30 px (0–400) | Block length added at full brightness | |
| Imbalance text colour (when blocks on) | White | Number colour on top of a block | |
| Stacked imbalances | Show stacked zones | On | Frames runs of same-side imbalances |
| Min consecutive levels | 3 (2–20) | Imbalances in a row needed for a zone | |
| Zone colour | White | ||
| Zone outline opacity | 70% | ||
| Zone fill opacity | 8% | ||
| Zone outline width | 1.5 px (0.5–6) | ||
| Imbalance projection | On | Each zone level projects forward until price revisits it. Also switchable from the panel | |
| Projection line opacity | 70% | ||
| Projection line width | 2 px (0.5–6) | ||
| Histogram & POC | Show volume histogram | On | Neutral volume bar behind every level |
| Histogram colour | Light grey | ||
| Histogram opacity | 22% | ||
| Histogram max length | 40 px (5–400) | Length of the busiest level's bar | |
| Show POC box | On | Box around the level with the most volume | |
| POC colour | Gold | ||
| POC outline width | 2 px (0.5–6) | ||
| Histogram mode | Sells × Buys | Or Delta × Volume. Also switchable from the panel | |
| Bar summary | Under each bar | Or a table at the bottom. Also switchable from the panel | |
| Absorption | Show absorption arrows | On | Closed bars only. Also switchable from the panel |
| Threshold (% of bar volume) | 15% (1–100) | Size of the opposing delta in the end quarter. Lower = more signals | |
| Arrow size | 12 px (6–40) | ||
| Risk line name | empty | Exact tag of a horizontal line on the chart to move when an arrow prints. Case-sensitive. Empty = moves nothing | |
| Risk line offset | 1 tick (0–20) | Ticks beyond the signal bar's low/high | |
| Sound alert | On | Plays a sound and logs to the Alerts window at bar close | |
| Alert sound file | Alert1.wav | A name from NinjaTrader's sounds folder, or a full path to your own .wav | |
| Sessions & countdown | Show session markers | On | Dashed lines at the six session anchors |
| Show countdown tag | On | Time to bar close and to the next session, pinned right | |
| Countdown tag size | 170% (50–400) | ||
| Show price line to tag | On | Thin line from the live candle to the tag | |
| Time zone override | empty | Leave empty: uses NinjaTrader's time zone. Only set (e.g. GMT Standard Time) if session lines land wrong | |
| Diagnostics (developer settings, leave off) | Show info panel (ladder + vol check) | Off | Developer check. Leave off |
| Max ladder rows | 40 (5–200) | Developer check | |
| Print closed bars to Output | Off | Developer check. Leave off |
Every colour (buy, sell, zone, POC, histogram, stats) can be changed in the settings window.
Requirements and limits
| NinjaTrader 8 | Version 8.1.8.3 or later (the version it was built and tested on). |
| Live bid and ask data | A live data feed with bid and ask (Level 1). No Tick Replay, no Level 2 or market depth. |
| Markets | Tested on NQ, MNQ, ES and gold. Should work on other liquid futures; not yet verified on them. |
| Charts | Any time-based chart. |
| Builds from when you load it | The footprint records live trades only; candles from before you loaded it show no grid. Load your chart early and let the levels build. The first candle is marked partial because it started mid-bar. |
| Countdown timing | Exact on minute charts whose period divides 30 (1, 2, 3, 5, 10, 15 or 30 minutes). Session times are New York times converted to your chart’s time zone; exchange holidays are not known. |
| Table mode | Reserves space at the bottom of the chart through auto-scale. If you drag the price axis manually, NinjaTrader turns auto-scale off and candles can run behind the table. |
| Memory | Recorded flow lasts for the NinjaTrader session. Long sessions on many charts use more memory; a restart clears it. |
Licence
The licence belongs to your account, not your computer. It runs on up to 2 machines at a time, shared by all your Velotrak tools. $19 a month; not on sale yet. Trial and refund terms TBD
Questions
Why is there no footprint on older candles?
It’s built from live trades as they happen and doesn’t load historical tick data, so it starts recording when you load it. Load your chart early.
Will I lose my levels if I change a setting?
No. Recorded flow is kept for the whole NinjaTrader session. Only a full restart clears it.
Do absorption arrows repaint?
No. They’re only drawn after the candle closes.
Why did the footprint disappear?
You’re zoomed out too far for the numbers to fit. The hint in the bottom-left says whether to zoom in, narrow the bars, or group more ticks per row.
Which markets does it work on?
Tested on NQ, MNQ, ES and gold. It should work on other liquid futures with a bid/ask feed.
How many computers can I use it on?
Two machines per subscription, for example a home PC and an office PC.
Do I have to activate each Velotrak tool separately?
No. Activate a machine once on your account and every Velotrak tool you own works on it.
What happens if I lose internet?
It keeps working for up to 7 days offline, but never past your subscription’s end date.