Delta Aggression Volume — User Manual (MetaTrader 5, free version 3.20 and PRO version 5.20)

3 November 2026, 23:17
JETINVEST
0
9

Available on the MQL5 Market: Delta Aggression Volume PRO

Risk notice. Trading involves risk of loss. These indicators count the buy and sell aggression of the trades already executed; they do not predict the market, do not place trades and do not guarantee any result. Use them together with your own analysis and risk management, and test on a demo account first.

Delta Aggression Volume shows, for each candle, the difference between the volume bought by aggressive buyers and the volume sold by aggressive sellers — the aggression delta. It reads every trade (time & sales) of the symbol, classifies it as a buy or a sell aggression and draws the balance of each candle as a column above or below zero in a separate window. The family has two products:

  • Delta Aggression Volume (free, version 3.20): the delta columns, with a choice of volume type and calculation start.
  • Delta Aggression Volume PRO (version 5.20): the same engine plus reverse-bar colours, a range channel, a moving average of the total volume, six alerts and buffers for Expert Advisors.

Both work only on symbols whose broker delivers real trades with the aggressor side, such as B3 futures and stocks or CME futures (section 1). They do not open trades.

1. Requirements: real trades with buy / sell side

The indicators are built on the trade ticks of the symbol ( COPY_TICKS_TRADE ). Each trade must arrive with its aggressor side (buy or sell), as on exchange-traded instruments.

Symbol / feedLive result
B3 futures and stocks (WIN, WDO, IND, DOL, PETR4, VALE3 …) at a broker that delivers time & salesworks
CME / CBOT / NYMEX / COMEX futures (ES, NQ, CL, GC and their micro contracts) at a broker that delivers exchange tradesworks
Forex, CFDs, most cryptocurrenciesdoes not calculate: the feed has quotes (bid / ask) but no trades, so the window stays empty
Exchange symbol at a broker that streams quotes onlydoes not calculate

To check a symbol, open View → Market Watch, right-click the symbol → Ticks or Time & Sales: if you see a list of trades with volume and buy / sell side, the indicator can work on it. In the Strategy Tester the behaviour is different (section 11).


2. Installation and first start

  1. Download (free) or buy / rent (PRO) the indicator on the MQL5 Market and install it from the Market tab of the terminal (Toolbox → Market → Purchased → Install).
  2. Open a chart of a symbol with real trades (for example WINZ26 or WDOZ26 on M1-M15) and drag Delta Aggression Volume or Delta Aggression Volume PRO from the Navigator (Indicators → Market) onto it.
  3. Keep the default inputs or adjust them (section 9) and press OK.

The indicator opens in its own window below the price chart. The window name shows the volume type: RSJ Delta Aggression (REAL VOL): (free) or RSJ Delta Aggression PRO (REAL VOL): , followed by the values of the bar under the mouse or of the last bar.

First load. At start the indicator downloads every trade from the Start Calculation date to now and classifies them one by one. On liquid symbols this is millions of trades: the first load can take from a few seconds to several minutes, more on M1 and with long starts such as LAST_MONTH or ALL_AVAILABLE_DAYS. The terminal must also have the tick history of that period; on the first use it is downloaded from the broker. Until the history is ready the window stays empty.


3. Indicator window legend

In the indicator windowMeaning
Green column above zeroPositive delta: more volume bought by aggression than sold in that candle.
Red column below zeroNegative delta: more volume sold by aggression than bought.
Height of the columnSize of the delta, in contracts / shares (Real volume) or in number of trades (Tick volume).
Blue column above zero (PRO)Reverse bar: positive delta, but the price candle closed below its open (section 5).
Magenta column below zero (PRO)Reverse bar: negative delta, but the price candle closed above its open.
Two blue horizontal lines (PRO)Upper and lower lines of the range channel over the last Period bars (section 6).
Blue line above the columns (PRO, PLOT_ALL only)Moving average of the total volume of each candle (section 7).
No columns on the leftBars before Start Calculation: they are not calculated.

A candle with a delta of exactly zero is drawn flat at zero. The column of the candle that is still forming grows and shrinks with each new trade; it is final when the candle closes.

Colours: in the free version change the two colours (positive, negative) on the Colors tab. In the PRO version the four column colours are inputs (section 9); the channel lines and the volume average are changed on the Colors tab (POSITIVE DEVIATION, NEGATIVE DEVIATION, VOLUME MOV AVG).


4. What the delta shows

4.1 Buy and sell aggression

Every trade of the candle is counted on the side of the participant who attacked the book: a trade that took the offer is buy aggression, a trade that hit the bid is sell aggression. On B3 and CME feeds the side arrives with each trade. The few trades that a feed does not mark clearly (for example some auction or cross trades) are also assigned to a side by the indicator, so every candle shows a complete balance.

4.2 Volume type

Volume TypeWhat each trade adds
Real volume (default)its traded volume (contracts or shares)
Tick volume1 — the indicator counts the number of trades, not the tick volume of the bar

Delta of the candle = buy aggression − sell aggression of all trades inside the candle.

The trades of each candle are taken from the timeframe of the chart, so the indicator works on any timeframe (M1 to D1). Short timeframes show the alternation of aggression in detail; on H1 and above the deltas of a whole session are summed into few columns.

4.3 Start Calculation

Start Calculation sets the first day whose trades are read. The date is counted back from the last server time and rounded down to 00:00 (server time) of that calendar day; the current day is always included.

OptionFirst day calculatedFreePRO
CURRENT_DAYtoday—yes
LAST_DAYyesterday (calendar day)yes (default)yes
LAST_TWODAYS2 calendar days backyesyes
LAST_FOURDAYS4 calendar days back—yes
LAST_WEEK7 calendar days backyesyes (default)
LAST_MONTHabout 30 days backyesyes
LAST_6MONTHSabout 6 months backyesyes
LAST_YEARabout 1 year backyesyes
LAST_2YEARSabout 2 years backyesyes
ALL_AVAILABLE_DAYSall trades the terminal hasyesyes

The days are calendar days: on a Monday, LAST_TWODAYS starts on Saturday and therefore shows only Monday. A longer start gives more history but a slower first load and more memory use; the tick history available depends on the broker.

If there is no trade yet between the start date and the current candle (for example CURRENT_DAY in the first candle of the session), the window starts drawing as soon as the first trades arrive; it no longer stays empty until the candle closes.

4.4 While the market is open

New trades are read on every tick and added to the forming candle. Closed candles are not changed afterwards, with one exception in the free version: when a candle closes and its total does not match the real volume reported by the broker, that candle is read again from the tick history once, which can correct it slightly.


5. Reverse bars (PRO)

A reverse bar is a candle where aggression and price disagree:

Colour (default)DeltaPrice candleWhat it shows
Delta Reverse Bar Positive Color (blue)positiveclosed below its openbuyers attacked, but price still fell: the buy aggression was absorbed by passive sellers
Delta Reverse Bar Negative Color (magenta)negativeclosed above its opensellers attacked, but price still rose: the sell aggression was absorbed by passive buyers

Reverse bars often appear near the end of a move or at a level where large passive orders are resting. They are a description of the candle, not a signal by themselves: read them together with the location of price and the bars that follow. A doji (open = close) is never a reverse bar.


6. Range channel (PRO)

The channel marks how large a delta is compared with the recent deltas. It looks at the size of the delta (regardless of the side) over the last Period bars (default 144) and is drawn as two horizontal lines, symmetrical around zero, over those bars.

Calculation TypeWhat the lines show
LINEAR_REGRESSION (default)a range that follows the typical size of the recent deltas
STD_DEVIATIONa range based on how much the size of the recent deltas varies

In both modes the lower line mirrors the upper line. The two modes give channels of different width on the same chart; choose the one that fits your symbol and timeframe.

  • A column beyond a line is an unusually strong aggression for the recent rhythm of the symbol.
  • The lines are recalculated once per candle, a few ticks after a new candle opens; during the first ticks of a candle the lines are not drawn on it.
  • The channel needs Period bars with data since Start Calculation. With a short start on a higher timeframe (for example LAST_DAY on M15) there are not enough bars and no lines are drawn: use a longer start or a smaller Period.
  • After a load, only the last Period bars show the lines. While the chart runs, the bars that leave the window keep the level they had, so a stepped trace builds up to their left.

7. Volume moving average and Information to Plot (PRO)

Information to PlotWhat is drawn
PLOT_DELTA (default)delta columns and channel lines
PLOT_ALLdelta columns, channel lines and the VOLUME MOV AVG line

The VOLUME MOV AVG line is a moving average (Method, default SMA; Period, default 20) of the total aggression volume of each candle (buy + sell). The total volume itself is not drawn; it can be read from buffer 19. Because the total volume is always larger than the delta, the line usually stays above the columns, and on very active days it can compress the scale of the window. Alert 5 works only with PLOT_ALL.


8. Alerts (PRO)

The six alerts are checked once per candle, on the third tick after a new candle opens, for the candle that has just closed. No alerts are sent for past candles when the indicator is loaded.

InputFires when (closed candle)Message
DELTA Change Trend Colorthe delta changes sign: positive after zero or negative, or negative after zero or positiveDELTA Changes to UP Trend! / DELTA Changes to DOWN Trend!
DELTA Cross Range Up Linethe delta crosses above the upper channel lineDELTA Crosses UP Range Line!
DELTA Cross Range Down Linethe delta crosses below the lower channel lineDELTA Crosses DOWN Range Line!
DELTA Cross Defined Range Levelthe delta crosses above DELTA Defined Range Level (%) of the upper line, or below the same percentage of the lower line (default 70 %)DELTA Crosses UP Defined Range Level! / DELTA Crosses DOWN Defined Range Level!
VOLUME Cross UP Signal Linethe total aggression volume crosses above its moving average (PLOT_ALL only)VOLUME Crosses UP Signal Line!
DELTA BAR REVERSE Signalthe candle is a reverse bar (section 5)DELTA Reverse UP Signal! (negative delta, price candle up) / DELTA Reverse DOWN Signal! (positive delta, price candle down)

Alerts 2 to 5 are crosses: they fire only on the candle where the delta (or the volume) moves beyond the line or level. While the following candles stay beyond it, no new alert is sent; the next alert comes after it returns and crosses again. Alerts 2 to 4 wait until the channel is calculated (section 6): while the channel lines are not drawn, they stay silent.

Each alert can be NONE (off), POPUP, SOUND, NOTIFICATION (smartphone), POPUP_SOUND, NOTIFICATION_SOUND, POPUP_NOTIFICATION or POP_SOUND_NOTIFICATION. All alerts are off by default. Each alert has its own Sound Type, one of the 13 terminal sounds: alert (default), alert2, connect, disconnect, email, expert, news, ok, request, stops, tick, timeout, wait.

The text includes the product, symbol and timeframe, e.g. Delta Aggression PRO: WINZ26 | PERIOD_M5 | DELTA Changes to UP Trend! . After a sound the indicator pauses for about 1.5 seconds so that consecutive sounds do not overlap. Push notifications need the MetaQuotes ID in Tools → Options → Notifications. There is no e-mail option. The free version has no alerts. The Strategy Tester shows no pop-ups, sounds or notifications.


9. Inputs

9.1 Delta Aggression Volume (free)

VOLUME CONFIGURATION

InputDefaultDescription
Volume TypeReal volumeReal volume: traded volume of each trade; Tick volume: number of trades (4.2).

CALCULATIONS CONFIGURATION

InputDefaultDescription
Start CalculationLAST_DAYFirst day calculated (4.3): LAST_DAY, LAST_TWODAYS, LAST_WEEK, LAST_MONTH, LAST_6MONTHS, LAST_YEAR, LAST_2YEARS, ALL_AVAILABLE_DAYS.

Debug Config

InputDefaultDescription
Imprime Erros?falseWrites diagnostic messages to the Experts log. Keep it off.

9.2 Delta Aggression Volume PRO

VOLUME CONFIG

InputDefaultDescription
Volume TypeReal volumeReal volume or Tick volume (number of trades) (4.2).

CALCULATIONS CONFIG

InputDefaultDescription
Start CalculationLAST_WEEKFirst day calculated (4.3): CURRENT_DAY, LAST_DAY, LAST_TWODAYS, LAST_FOURDAYS, LAST_WEEK, LAST_MONTH, LAST_6MONTHS, LAST_YEAR, LAST_2YEARS, ALL_AVAILABLE_DAYS.
Information to PlotPLOT_DELTAPLOT_DELTA or PLOT_ALL (section 7).

CHANNEL RANGE CONFIG

InputDefaultDescription
Calculation TypeLINEAR_REGRESSIONLINEAR_REGRESSION or STD_DEVIATION (section 6).
Period144Number of bars used by the channel.

VOLUME MOV AVG CONFIG

InputDefaultDescription
MethodSimpleSimple, Exponential, Smoothed or Linear weighted.
Period20Period of the volume moving average (PLOT_ALL).

COLORS CONFIG

InputDefaultDescription
Delta Positive ColorForestGreenPositive delta.
Delta Negative ColorFireBrickNegative delta.
Delta Reverse Bar Positive ColorMediumBluePositive delta on a bearish price candle (section 5).
Delta Reverse Bar Negative ColorMagentaNegative delta on a bullish price candle.

ALERT 1 CONFIG to ALERT 6 CONFIG

InputDefaultDescription
DELTA Change Trend ColorNONEAlert mode, alert 1 (section 8).
DELTA Change Trend Color Sound TypealertSound used by the sound modes.
DELTA Cross Range Up LineNONEAlert mode, alert 2.
DELTA Cross Range Up Line Sound TypealertSound.
DELTA Cross Range Down LineNONEAlert mode, alert 3.
DELTA Cross Range Down Line Sound TypealertSound.
DELTA Defined Range Level (%)70.0Percentage of the channel lines used by alert 4.
DELTA Cross Defined Range LevelNONEAlert mode, alert 4.
DELTA Cross Defined Range Level Sound TypealertSound.
VOLUME Cross UP Signal LineNONEAlert mode, alert 5 (PLOT_ALL only).
VOLUME Cross UP Signal Line Sound TypealertSound.
DELTA BAR REVERSE SignalNONEAlert mode, alert 6.
DELTA BAR REVERSE Signal Sound TypealertSound.
Enable Debug MODEfalseWrites diagnostic messages to the Experts log. Keep it off.

10. Buffers for Expert Advisors / dashboards

All buffers of both versions can be read with iCustom + CopyBuffer , including the calculation buffers that are not drawn. Values are in the unit of Volume Type. Bars before Start Calculation hold 0 .

10.1 Delta Aggression Volume (free) — 6 buffers

BufferContentValues
3Deltabuy − sell aggression of the candle
4Colour0 positive (or zero), 1 negative
5Deltasame value as buffer 3

Buffers 0-2 are the open (always 0), high and low of the drawn column.

10.2 Delta Aggression Volume PRO — 20 buffers

BufferContentValuesEmpty
3Deltabuy − sell aggression of the candle0
4Colour0 positive, 1 negative, 2 reverse bar with positive delta, 3 reverse bar with negative delta0
5Upper channel linelevel of the line on the last Period barsEMPTY_VALUE
6Lower channel line− upper lineEMPTY_VALUE
7Volume moving averagemoving average of buffer 19 (PLOT_ALL)EMPTY_VALUE with PLOT_DELTA
11Size of the deltaabsolute value of buffer 30
13Alert 1 — delta changes sign+1 to positive, -1 to negative0
14Alert 2 — delta crosses above the upper line+1 0
15Alert 3 — delta crosses below the lower line-1 0
16Alert 4 — delta crosses the defined level+1 above, -1 below0
17Alert 5 — volume crosses above its average+1 0
18Alert 6 — reverse bar+1 negative delta on a bullish candle, -1 positive delta on a bearish candle0
19Total aggression volumebuy + sell aggression of the candle (PLOT_ALL)EMPTY_VALUE with PLOT_DELTA

The other buffers (0-2, 8-10 and 12) are for internal use.

Alert buffers. Buffers 13-18 can be read from an Expert Advisor with iCustom and use one sign convention: +1 bullish / buy, -1 bearish / sell, 0 no signal. They are filled even when the alerts are off, on the closed candle (shift 1), a few ticks after the new candle opens. They are written only for candles that close while the indicator is running; read shift 1 after the third tick of the new candle, and do not use them for the history.

Loading. The Market versions are installed in MQL5\Indicators\Market\ ; check the exact file name in the Navigator. With no parameters after the name the default inputs are used. To change inputs, pass them in the order of section 9. Every input group heading is a parameter too: pass an empty string "" in its place, otherwise every following value shifts. Inputs left out at the end keep their defaults. Volume Type is passed as 0 (tick) or 1 (real); the lists in the order shown in section 9 starting at 0 (for example Start Calculation PRO: 0 CURRENT_DAY … 4 LAST_WEEK … 9 ALL_AVAILABLE_DAYS); Method as 0 SMA, 1 EMA, 2 SMMA, 3 LWMA; alert modes as 0 (NONE) to 7 (POP_SOUND_NOTIFICATION) and sounds as 0 (alert) to 12 (wait).

```mql5 // every input group is one "" parameter int h = iCustom(_Symbol, PERIOD_M5, "Market\Delta Aggression Volume PRO", "", 1, // VOLUME CONFIG: Real volume "", 4, 0); // CALCULATIONS CONFIG: LAST_WEEK, PLOT_ALL (needed for buffers 7, 17, 19) if (h == INVALID_HANDLE) return(INIT_FAILED);

double delta[1], up[1], rev[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 3, 1, 1, delta) == 1 && CopyBuffer(h, 5, 1, 1, up) == 1 && up[0] != EMPTY_VALUE) Print("delta ", delta[0], " upper line ", up[0]); if (CopyBuffer(h, 18, 1, 1, rev) == 1 && rev[0] != 0.0) Print("reverse bar ", (int)rev[0]); } ```

Free version: iCustom(_Symbol, PERIOD_M5, "Market\\Delta Aggression Volume", "", 1, "", 0) (Real volume, LAST_DAY), then buffer 3.

Notes: an indicator created by iCustom sends its own alerts when their modes are not NONE — keep them off in the EA call. Wait until BarsCalculated(h) > 0 before the first read: the first load of the trades can take a while (section 2). On a symbol without trades the handle is valid but the indicator never calculates.


11. Strategy Tester

Both versions can be used in the Strategy Tester (visual and non-visual mode), also from an Expert Advisor through iCustom . The tester does not always provide the same data as the live market, so the values are produced in three ways:

Situation in the testerHow the delta is obtained
Real trade ticks with buy / sell side (B3 or CME symbol, mode Every tick based on real ticks)as live (section 4.1)
Trade ticks without side (for example ticks generated by the tester in Every tick mode)the side of each trade is estimated from the price movement
No trade ticks at all on that day: forex, CFDs, continuous series such as WIN$N, days whose real ticks the tester replaced by generated onesbid mode: the delta is estimated from the changes of the Bid price, counted like the tick volume of the bar
Bars between Start Calculation and the test start (the tester provides no ticks before the start date)estimated: these bars receive an approximate delta based on the bar itself, so that the history is not empty

What this means in practice:

  • The closest results to the live indicator come from Every tick based on real ticks on a symbol and period with real trades. Check in the tester journal that the real ticks were used for the days you test.
  • 1 minute OHLC and Open prices only produce very few ticks per bar: the values are coarse and are not recommended for this indicator.
  • In bid mode and on estimated bars the values are an approximation built from price movement, not the aggression of real trades. Their scale is also different (counts of price changes instead of contracts).
  • On forex or CFDs the tester shows values (bid mode), but live on the same symbol the indicator shows nothing, because there are no trades. Do not take a tester result on forex as what you will see on a live chart.
  • Start Calculation is counted back from the test start date. The estimated bars give the channel (PRO) enough bars to start at the beginning of the test.
  • The volume check of the free version (4.4) is off in the tester.
  • Pop-ups, sounds and notifications are not sent; buffers 13-18 (PRO) are filled bar by bar during the test.

12. Free vs PRO

Delta Aggression Volume (free)Delta Aggression Volume PRO
Delta per candle from real tradesyesyes
Volume type: real volume or number of tradesyesyes
Start Calculation options8 (default LAST_DAY)10, adds CURRENT_DAY and LAST_FOURDAYS (default LAST_WEEK)
Reverse bars (blue / magenta)—yes
Range channel (LINEAR_REGRESSION or STD_DEVIATION)—yes
Moving average of the total volume—yes (PLOT_ALL)
Colours as inputsColors tab only4 column colours
Alerts (pop-up, sound, push)—6
Buffers for Expert Advisors6 (delta, colour)20, including 6 alert buffers
Strategy Testeryesyes

The free version is a good way to check that your broker delivers the trades with their side and to learn how the delta reads on your symbol. Move to PRO when you want to see absorption (reverse bars), compare each delta with the recent range, receive alerts or use the values in an Expert Advisor. For the delta accumulated through the day, see the Aggression Wave family by the same author.


13. Tips

  • Timeframe: M1 to M15 are the usual timeframes for the delta of B3 mini contracts (WIN, WDO); on CME futures M1-M5 during the regular session.
  • Load time: use the shortest Start Calculation that covers what you need. CURRENT_DAY or LAST_DAY load in seconds; months of M1 trades can take minutes.
  • Contracts or trades:Real volume shows where the size is; Tick volume (number of trades) shows how many participants attacked, so a few large orders weigh less. Comparing the two on two copies of the indicator helps to spot large players.
  • Context first: a strong delta at a support, a resistance or a level of the previous day is more informative than the same delta in the middle of a range.
  • Absorption: a reverse bar followed by a candle in the direction of the price (not of the delta) shows that the aggression was absorbed.
  • Channel too wide or too narrow: change Period (shorter reacts faster to the rhythm of the day) or switch between LINEAR_REGRESSION and STD_DEVIATION.
  • Fewer alerts: on M1 the channel and volume crosses (alerts 2-5) can be frequent; use them on M5 or higher, or rely on alerts 1 and 6.

14. Questions and troubleshooting

  • The window is empty. The symbol has no trade ticks with buy / sell side (forex, CFD, crypto, quotes-only feed — section 1), or the tick history is still being downloaded. Check Time & Sales of the symbol and wait for the first load. With CURRENT_DAY in the first candle of the session the window starts drawing as soon as the first trades arrive.
  • Does it work on forex? No, not on a live chart: forex feeds have no trades. In the Strategy Tester it shows approximate values (section 11), which do not represent live behaviour.
  • Does it repaint? The candle that is forming changes with each trade. Closed candles are not changed afterwards (the free version can correct the last closed candle once if its total did not match the broker volume). The PRO channel is recalculated at each new candle, so its level moves with the last Period bars.
  • Does it predict where price will go? No. It shows who was more aggressive in the trades already done. Strong buying can be absorbed and followed by a fall.
  • Why are the values different from another order-flow tool? Feeds and tools classify some trades differently (for example auction trades or trades without a clear side). The totals per candle can therefore differ slightly.
  • The first load is slow. It reads every trade from the start date (section 2). Use a shorter start or a higher timeframe.
  • No channel lines (PRO). There are fewer than Period bars since Start Calculation (section 6).
  • The volume average line is missing (PRO). It is drawn only with Information to Plot = PLOT_ALL.
  • I get the same alert on many candles (PRO). Since version 5.20 alerts 2-5 fire only on the crossing candle (section 8); update the indicator if you still use an older version. Alert 6 fires on every reverse bar.
  • Renko or other custom charts. A custom symbol has trades only if the tool that builds it also creates trade ticks with their side; otherwise the indicator does not calculate on it.
  • Strategy Tester. Supported, with the data limits described in section 11.

Support: send a private message on MQL5 to the author.