Accumulation/Distribution (A/D) Indicator Class for MetaTrader 5
Info
The Accumulation/Distribution (A/D) Indicator Class for MetaTrader 5 is a Library for MetaTrader 5 that the accumulation/distribution (a/d) indicator class is designed for calculating accumulation/distribution values on indicator buffers. Usage:init()This method is called within the init() function with an optional parameter:int aperiod- This parameter specifies the indicator period.
Usage
This tool is typically used for enhancing chart analysis and decision making.
Platform
This Library works exclusively on MetaTrader 5 (both build 600+ and newer versions).
Setup
Place the downloaded file in MQL5/Libraries folder via File ? Open Data Folder in MetaTrader 5.
How to Install and Use Accumulation/Distribution (A/D) Indicator Class for MetaTrader 5
1. Storage: Place library files in the MQL/Libraries directory to ensure they are accessible to your projects.
2. Implementation: Include the library in your code using the #import directive, ensuring you match the exact function names and parameters.
3. Compilation: Ensure the library is present in the directory before you compile your main EA or script, as the compiler links them during this phase.
4. Management: Keep libraries organized in sub-folders if you manage many custom functions to maintain a clean project structure.
Frequently Asked Questions
Q: What is a library file used for? A: Libraries store reusable code modules, allowing you to centralize common logic used by multiple EAs or indicators.
Q: Is a library executable? A: No, libraries are non-executable files containing functions; they must be imported into an EA, indicator, or script to function.
Q: Can I update a library while the platform is running? A: You should compile your EA or script after updating a library to ensure the latest code changes are integrated.
What this tool does
The Accumulation/Distribution (A/D) Indicator Class is designed for calculating Accumulation/Distribution values on indicator buffers.
Typical Use Case
This Library excels in automated trading and technical analysis on MetaTrader 5.
Compatible Platform & Setup
This Library works on MetaTrader 5. Place the file in the MQL5/Libraries folder and restart the terminal.
Description & Settings
Related: Standard Deviation Calculation for Indicator Buffers - another powerful library for MetaTrader 5 traders.
The Accumulation/Distribution (A/D) Indicator Class is designed for calculating Accumulation/Distribution values on indicator buffers.Also recommended: smooth algorithms - corrected/modified - similar library with strong performance on MetaTrader 5.
Usage:
init()
This method is called within the init() function with an optional parameter:
int aperiod
- This parameter specifies the indicator period. If set to 0 (default), the indicator calculates based on all chart bars, similar to the built-in terminal indicator. If any other positive value is provided, the calculation uses the specified number of bars (similar to a moving average principle) for each chart bar.
solve()
This method is called within the OnCalculate() function with the following parameters:
const int aratestotal
- This is the rates_total variable from the OnCalculate() function parameters.
const int aprevcalc
- This is the prev_calculated variable from the OnCalculate() function.
double adatahigh[]
- The buffer containing the high price data for indicator calculation.
double adatalow[]
- The buffer containing the low price data for indicator calculation.
double adataclose[]
- The buffer containing the close price data for indicator calculation.
double adatavolume[]
- The buffer containing the volume data for indicator calculation.
double aad[]
- The buffer to store the calculated A/D values.
Additional Methods:
int barsrequired()
- Returns the minimum number of bars required for indicator calculation.
string name()
- Returns the indicator line name.
A sample indicator, test_adonarray.mq5, demonstrates the application of the A/D class. The inconad_array.mq5 file should be placed in the mql5\include\inconad_array directory of your MetaTrader terminal's data folder. You may need to create the inconad_array subfolder.
The Accumulation/Distribution technical indicator is determined by price and volume changes. Volume acts as a weighting factor for price changes; a higher volume results in a greater contribution of the price change for that period to the indicator's value.
This class was last updated in 2026.
You may also like: Average Directional Movement Index (ADX) Calculation Class for MQL5 - excellent alternative for library users on MetaTrader 5.
Source Code
#property copyright "robotfx"
#property link "https://robotfx.org"
#property version "1.00"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots 1
#property indicator_label1 "label1"
#property indicator_type1 draw_line
#property indicator_color1 clrred
#property indicator_style1 style_solid
.......
⚠ Limitations & Risk Warning
- This tool is provided for educational and testing purposes only.
- Past performance does not guarantee future results.
- Trading involves substantial risk of loss. Use on a demo account first.
- Results may vary depending on market conditions, broker, and settings.
- We recommend thorough backtesting and forward testing before using with real funds.