Skip to main content

StrategyDeltaDivergenceIndicator

StrategyDeltaDivergenceIndicator wraps mzDeltaDivergence for use inside MZpack strategies. It implements IDeltaDivergenceIndicator and inherits all volume/delta properties from IVolumeDeltaIndicator.

Namespace: MZpack.NT8.Algo.Indicators Inheritance: StrategyDeltaDivergenceIndicator : mzDeltaDivergence, IDeltaDivergenceIndicator Conditional: #if !FREE Data level: Level 1 Source: [INSTALL PATH]/API/Indicators/StrategyDeltaDivergenceIndicator.cs

Setup in a Strategy

public class MyStrategy : MZpackStrategyBase
{
StrategyDeltaDivergenceIndicator ddIndicator;

protected override void OnStateChange()
{
if (State == State.Configure)
{
ddIndicator = new StrategyDeltaDivergenceIndicator(this, "DD");

// ZigZag settings
ddIndicator.ZigzagDeviationType = DeviationType.Percentage;
ddIndicator.ZigzagDeviationThreshold = 0.3;
ddIndicator.ZigzagUseHighLow = true;

// Delta deviation filter
ddIndicator.DeltaDeviationType = DeviationType.Value;
ddIndicator.DeltaDeviationMin = 500;

// Display
ddIndicator.BreakPointShow = true;
ddIndicator.BuySellAreasShow = true;
}
}
}

Accessing Data

protected override void OnBarUpdate()
{
if (CurrentBar < 10) return;

Divergences divergences = ddIndicator.Divergences;
if (divergences == null || divergences.Count == 0) return;

// Get the most recent divergence
IDivergence lastDiv = divergences[divergences.Count - 1];

if (lastDiv.IsBuy())
{
// Bullish divergence detected
// Price made a lower low while delta made a higher low
double deltaChange = lastDiv.GetDeltaChange(DeviationType.Value);
double priceChange = lastDiv.GetPriceChange(DeviationType.Value);
}
else if (lastDiv.IsSell())
{
// Bearish divergence detected
// Price made a higher high while delta made a lower high
}
}

See Also