Skip to main content

Data Access — mzVolumeDelta

Demonstrates how to access volume delta bar data from StrategyVolumeDeltaIndicator. The OnBarCloseHandler prints volume, delta, cumulative delta, and iceberg volume for each bar.

Source: [INSTALL PATH]/API/Samples/DataAccess_mzVolumeDelta.cs Class: DataAccess_mzVolumeDelta : MZpackStrategyBase

Indicator Setup

volumeDeltaIndicator = new StrategyVolumeDeltaIndicator(this, @"Volume Delta")
{
VolumeDeltaMode = VolumeDeltaMode.Delta,
DeltaMode = DeltaMode.Cumulative,
TradeFilterMin = 0,
TradeFilterMax = 10,
ZeroLine = true
};

Apply UI property overrides in State.Configure:

else if (State == State.Configure)
{
volumeDeltaIndicator.TradeFilterMin = TradeFilterMin;
volumeDeltaIndicator.TradeFilterMax = TradeFilterMax;
}

Accessing IVolumeDeltaBar

void StrategyOnBarCloseHandler(MarketDataEventArgs e, int currentBarIdx)
{
if (volumeDeltaIndicator.VolumeDeltaBars.ContainsKey(currentBarIdx))
{
IVolumeDeltaBar bar = volumeDeltaIndicator.VolumeDeltaBars[currentBarIdx];
// ...
}
}

Available Data

// Volume (use FromInternalVolume() for crypto)
volumeDeltaIndicator.FromInternalVolume(bar.Volume) // Total volume
bar.VolumeBySide(TradeSide.Bid) // Sell volume
bar.VolumeBySide(TradeSide.Ask) // Buy volume

// Iceberg volume
bar.IcebergVolume // Total iceberg volume
bar.IcebergVolumeBySide(TradeSide.Bid) // Iceberg on bid
bar.IcebergVolumeBySide(TradeSide.Ask) // Iceberg on ask

// Delta
bar.Delta // Bar delta
bar.OpenDelta // Open delta (cumulative delta of previous bar)
bar.CumulativeDelta // Cumulative delta of this bar
bar.DeltaHi // Max delta within bar
bar.DeltaLo // Min delta within bar

// Cumulative extremes
bar.DeltaHi + bar.OpenDelta // Max cumulative delta in bar
bar.DeltaLo + bar.OpenDelta // Min cumulative delta in bar

Properties

PropertyDefaultDescription
TradeFilterMin0Minimum trade size filter
TradeFilterMax-1Maximum trade size filter (-1 = no limit)

See Also