
Damiani Volatmeter Indicator MT4
The Damiani Volatmeter is a free, instant-download MT4 indicator built to answer one specific question: is the market volatile enough right now, relative to its own background noise, to be worth trading? Rather than a directional signal, it's a volatility filter, and the formula behind it is genuinely a little more involved than a standard…
Download the Damiani Volatmeter Indicator MT4The Damiani Volatmeter is a free, instant-download MT4 indicator built to answer one specific question: is the market volatile enough right now, relative to its own background noise, to be worth trading? Rather than a directional signal, it’s a volatility filter, and the formula behind it is genuinely a little more involved than a standard ATR plot — here’s exactly what it’s computing.
What It Actually Calculates
Every bar, the indicator builds a volatility ratio: sa = iATR(Viscosity) divided by iATR(Sedimentation) — a fast ATR compared against a much slower ATR. If lag_supressor is enabled, it adds a correction term, 0.5 * (ind_c[i+1] - ind_c[i+3]), which nudges the ratio based on how the ratio itself has been changing over the last three bars, reducing lag in the reading.
In parallel, it builds an adaptive noise threshold: anti_thres is the ratio of a fast Standard Deviation to a slow Standard Deviation, both computed on typical price with an LWMA smoothing (iStdDev(..., MODE_LWMA, PRICE_TYPICAL, ...)), using the same Viscosity and Sedimentation periods as the ATR ratio. The final threshold for that bar is t = Threshold_level - anti_thres — meaning the bar the ratio needs to clear isn’t fixed; it moves depending on how noisy the standard-deviation comparison currently is.
If the volatility ratio exceeds that dynamic threshold, the bar is flagged as a “trade” condition: the lime vol_t[] line always plots the raw ratio, while the FireBrick vol_m[] series (drawn with DRAW_SECTION) only plots a value on bars that cleared the threshold — everywhere else it’s left empty, which is what creates the visual on/off “signal” segments. The silver thresholdBuffer[] line plots the moving threshold itself. The indicator’s short name in the terminal also updates live between “TRADE” and “DO NOT trade” along with the current ATR value.
How to Read the Chart
Watch the FireBrick section line: wherever it has a plotted value (rather than a gap), the fast-to-slow volatility ratio has cleared the adaptive threshold, which the indicator’s author frames as conditions being volatile enough, relative to recent noise, to be tradable. The lime line beneath it is the raw ratio at all times, and the silver line is the moving bar it needs to clear. When the FireBrick segments disappear, the market is being read as too quiet relative to its own recent noise floor.
Inputs
- Viscosity (default 7) — the fast ATR and fast StdDev period; the quicker, more reactive volatility reading.
- Sedimentation (default 50) — the slow ATR and slow StdDev period; the baseline the fast reading is compared against.
- Threshold_level (default 1.1) — the base level the volatility ratio must clear, before the adaptive anti_thres term is subtracted.
- lag_supressor (default true) — adds a lag-correction term based on the ratio’s recent 3-bar change to make the reading more responsive.
Why It’s Designed as a Filter, Not a Standalone System
Notice that nothing in the code places, closes, or even suggests a trade direction — there’s no long/short logic anywhere in start(). The only output is the on/off “TRADE” versus “DO NOT trade” read from the FireBrick section line and the terminal short name. The original author (documented at damianifx.com.br) built this specifically to sit alongside a separate directional system: the Volatmeter answers whether the current bar’s fast-versus-slow volatility ratio has cleared a noise-adjusted bar, and leaves the buy/sell decision entirely to whatever other tool or rule set you pair it with.
Repaint Behavior
The Damiani Volatmeter is non-repainting. It follows the standard MT4 incremental pattern using IndicatorCounted(), only recalculating the small batch of bars that haven’t been processed yet rather than rewriting its whole history every tick. The lag-suppressor term reaches back to ind_c[i+1] and ind_c[i+3] — both older bars relative to the one being calculated — never a bar that hasn’t closed yet, so a bar’s plotted value doesn’t change again once that bar closes. As with any real-time indicator, the value on the currently forming (unclosed) bar will naturally shift tick-to-tick until that bar closes; that’s expected behavior, not repainting.
Limitations
- This is a volatility filter, not a directional signal — a “TRADE” reading tells you conditions are volatile enough by this specific measure, but says nothing about which direction to trade.
- The threshold is adaptive but the base
Threshold_levelof 1.1 was tuned by the original author on specific markets; it may need recalibrating for symbols with very different typical volatility ratios. - With the default Sedimentation of 50, the indicator needs a meaningful amount of prior history to produce a stable slow-ATR/StdDev baseline; expect noisier readings on symbols with limited history.
- Because it depends on ATR and Standard Deviation, both lagging-by-nature volatility measures, expect the on/off trade flag to shift a bar or two after a genuine volatility regime change, even without any repainting involved.
- Viscosity (default 7) — Fast ATR and fast Standard Deviation period; the quicker, more reactive volatility reading.
- Sedimentation (default 50) — Slow ATR and slow Standard Deviation period; the baseline the fast reading is compared against.
- Threshold_level (default 1.1) — Base level the volatility ratio must clear, before the adaptive noise term (anti_thres) is subtracted.
- lag_supressor (default true) — Adds a lag-correction term based on the ratio's 3-bar change to make the reading more responsive.
FAQs About the MT4 Damiani Volatmeter Indicator MT4
Does the Damiani Volatmeter repaint?
No. It uses the standard IndicatorCounted() incremental calculation and its lag-correction term only references older, already-closed bars, so a closed bar’s value is never changed again after the fact.
What does the Threshold_level input actually control?
It’s the base level the fast/slow ATR ratio must exceed. The indicator subtracts an adaptive noise term (anti_thres, built from a fast/slow Standard Deviation ratio) from this base level every bar, so the effective threshold moves with market noise rather than staying fixed.
What does the FireBrick line mean when it disappears?
The FireBrick vol_m[] series only plots a value on bars where the volatility ratio cleared the dynamic threshold; when it’s blank, the market is being read as too quiet, relative to its own recent noise, to meet the indicator’s trade condition.
How is this different from just plotting ATR directly?
Raw ATR only tells you absolute volatility. This indicator compares a fast ATR against a slow ATR (a ratio, not an absolute level) and additionally filters that ratio against an adaptive noise threshold built from a separate fast/slow Standard Deviation comparison, which is meant to distinguish real volatility expansion from background noise.
What timeframes or pairs does the Damiani Volatmeter suit best?
Not Specified in the code — there’s no hardcoded restriction. It was originally documented by its author (damianifx.com.br) as a general volatility filter usable alongside a separate trading system, rather than being tied to one specific timeframe or instrument.
