Skip to main content

Indicators API Overview

The MZpack Indicators API exposes every chart indicator through a typed interface hierarchy. Each interface provides read-only access to the indicator's computed data — footprint bars, volume profiles, trades, DOM snapshots, and divergence signals. Strategy classes wrap the same interfaces, so data access is identical whether you read from a chart indicator or a strategy indicator.

Interface Hierarchy

IIndicator
├── ITickIndicator
│ ├── IOrderFlowIndicator
│ │ ├── IFootprintIndicator
│ │ ├── IBigTradeIndicator
│ │ └── IVolumeDeltaIndicator
│ │ └── IDeltaDivergenceIndicator
│ ├── IMarketDepthIndicator
│ └── IVolumeProfileIndicator (also ILevelsIndicator)
└── ILevelsIndicator

Base Interfaces

InterfaceWhat It Provides
IIndicatorCandle access, tick size helpers, chart coordinate helpers, logging, licensing — the base contract for every MZpack indicator
ITickIndicatorBest bid/ask prices, last trade side, volume conversion helpers — extends IIndicator with real-time tick data
IOrderFlowIndicatorOrder flow calculation mode, tape reconstruction settings, iceberg algorithm — shared config for all order flow indicators
ILevelsIndicatorUser-drawn price levels, level alerts, mouse drag, keyboard shortcuts — adds interactive level management

Per-Indicator Interfaces

InterfaceWhat It Provides
IFootprintIndicatorFootprint bars collection, sessions, imbalance/absorption S/R zones, cluster zones, statistic grid settings
IVolumeProfileIndicatorVolume profiles collection, profile creation modes, stacked profiles, TPO settings, VWAP/Value Area
IVolumeDeltaIndicatorVolume/delta bars, cumulative delta, iceberg detection, volume alerts
IBigTradeIndicatorFiltered trades list, trade filter settings (volume, iceberg, DOM pressure, aggression), presentation
IMarketDepthIndicatorReal-time order book, historical DOM blocks, liquidity, liquidity migration, Level II histogram
IDeltaDivergenceIndicatorDivergences collection, ZigZag settings, price/delta deviation filters

Indicator ↔ Strategy Class Mapping

Every chart indicator has a corresponding strategy wrapper class. The strategy class inherits from the chart indicator and implements the same interface, so data access code is identical.

InterfaceChart IndicatorStrategy ClassNamespace
IFootprintIndicatormzFootprintStrategyFootprintIndicatorMZpack.NT8.Algo.Indicators
IVolumeProfileIndicatormzVolumeProfileStrategyVolumeProfileIndicatorMZpack.NT8.Algo.Indicators
IVolumeDeltaIndicatormzVolumeDeltaStrategyVolumeDeltaIndicatorMZpack.NT8.Algo.Indicators
IBigTradeIndicatormzBigTradeStrategyBigTradeIndicatorMZpack.NT8.Algo.Indicators
IMarketDepthIndicatormzMarketDepthStrategyMarketDepthIndicatorMZpack.NT8.Algo.Indicators
IDeltaDivergenceIndicatormzDeltaDivergenceStrategyDeltaDivergenceIndicatorMZpack.NT8.Algo.Indicators

All interfaces are defined in the MZpack namespace. Strategy classes are in MZpack.NT8.Algo.Indicators.

Data Access Pattern

Regardless of which indicator you use, the pattern is the same:

// 1. Declare the strategy indicator
StrategyFootprintIndicator footprint;

// 2. Create and configure in strategy setup
footprint = new StrategyFootprintIndicator(this, "Footprint");
footprint.TicksPerLevel = 1;

// 3. Access data through the interface
IFootprintBar bar = footprint.FootprintBars[CurrentBar];
long delta = bar.Delta;
double poc = bar.POC;

Strategy indicator classes are not visible on the chart by default — use Partially Visible mode to show only the data relevant to validated signals. See Algo Strategy — Partially Visible for a code sample.