Files
mql5/Indicators/MyIndicators/VWMA_Pro.md
T
2026-05-25 19:33:34 +02:00

5.3 KiB

Volume-Weighted Moving Average Pro (VWMA Pro)

1. Summary (Introduction)

The VWMA_Pro is an advanced, high-performance trend-following indicator designed to incorporate trading volume directly into price analysis. While traditional moving averages (like SMA or EMA) treat all bars equally regardless of trading activity, the Volume-Weighted Moving Average (VWMA) weights prices based on the volume transacted during each bar.

This results in a moving average that reacts faster and more accurately during high-volume market events (such as breakouts, institutional positioning, and news releases) while remaining smooth and less prone to false signals during low-volume consolidation phases.

As a core component of our professional suite, VWMA_Pro features complete, seamless integration with Heikin Ashi price structures, allowing traders to smooth out market noise while maintaining precise volume-weighted calculations.

2. Mathematical Foundations and Calculation Logic

The mathematical structure of the VWMA calculates the sum of the product of price and volume over a given lookback period, divided by the sum of the volume over that same period.

Mathematical Formula

\text{VWMA}_t = \frac{\sum_{i=0}^{N-1} (P_{t-i} \times V_{t-i})}{\sum_{i=0}^{N-1} V_{t-i}}

Where:

  • P_{t-i} = The selected price (e.g., Close, Typical, Heikin Ashi Close) at bar t-i.
  • V_{t-i} = The volume (Real Volume or Tick Volume) at bar t-i.
  • N = The lookback period (InpPeriod).

VWMA vs. SMA Comparison

To understand the impact of volume, consider a lookback period (N) of 3 bars:

Bar Price (P) Volume (V) P \times V
Bar 1 100.00 1,000 100,000
Bar 2 101.00 2,000 202,000
Bar 3 105.00 7,000 735,000
Sum - 10,000 1,037,000
  • Simple Moving Average (SMA):

    \text{SMA} = \frac{100.00 + 101.00 + 105.00}{3} = 102.00
  • Volume-Weighted Moving Average (VWMA):

    \text{VWMA} = \frac{1,037,000}{10,000} = 103.70

Because the price surge to 105.00 on Bar 3 was backed by significantly higher volume (7,000), the VWMA dynamically adjusted upward to reflect true institutional buying pressure.

3. MQL5 Implementation Details

The architecture of VWMA_Pro is strictly split between data visualization and mathematical computations to ensure modularity and code reuse.

Decoupled Engine Pattern

  • Engine (VWMA_Calculator.mqh): A stateful mathematical calculator encapsulated in the class CVWMA_Calculator. It performs the calculations on native chronological arrays (ArraySetAsSeries(..., false)).
  • Wrapper (VWMA_Pro.mq5): A lightweight custom indicator that manages inputs, chart display buffers, and passes price and volume arrays to the engine.

Performance Optimization (O(1))

Rather than recalculating the entire history on every tick, the engine utilizes the platform's prev_calculated parameter. It limits calculation to the newest bars, achieving near-instantaneous execution even on large historical charts.

Platform-Aware Volume Selector

MT5 brokers differ in whether they provide Real Volume or only Tick Volume. The indicator checks this dynamically:

  • If SYMBOL_VOLUME_LIMIT is greater than 0, the engine uses Real Volume (volume[]).
  • If not, it automatically falls back to Tick Volume (tick_volume[]).

Robust Error and Edge-Case Handling

  • Zero Volume Safety: If the total volume sum within a lookback window is zero, the engine gracefully falls back to the current bar's price to prevent "Division by Zero" errors.
  • Missing Volume Fallback: If the calculator is called from a context without volume data, it flags a warning in the terminal journal and sets the indicator buffer to EMPTY_VALUE, preventing the display of misleading chart data.

4. Parameters

  • Period (InpPeriod): The lookback window (N) for the average calculation. Default is 20.
  • Applied Price (InpSourcePrice): The price source used as P in the formula. Supports standard MT5 prices as well as custom Heikin Ashi calculated prices:
    • Standard: Close, Open, High, Low, Median, Typical, Weighted.
    • Heikin Ashi: HA Close, HA Open, HA High, HA Low, HA Median, HA Typical, HA Weighted.

5. Usage and Interpretation

A. Volume Confirmation (VWMA vs. SMA)

By plotting a VWMA and an SMA of the same period on the same chart, traders can visualize institutional participation:

  • Bullish Institutional Pressure: When the VWMA is above the SMA, it means prices are rising on higher volume.
  • Bearish Institutional Pressure: When the VWMA is below the SMA, it means prices are falling on higher volume.
  • Low-volume divergence: If price rises but the VWMA falls below the SMA, the upward move lacks volume confirmation and is likely a retail trap.

B. Breakout Validation

During major support or resistance breakouts:

  • If the price crosses the VWMA on expanding volume, the breakout is validated.
  • If the price moves past a level but the VWMA remains sluggish, the breakout is weak and prone to failure.

C. Dynamic Support and Resistance

The VWMA acts as a highly reliable support/resistance level because it represents the average transaction price weighted by actual volume. Markets tend to retest and bounce off the VWMA line during healthy trends.