Signals Help Center
  • About Signals
  • Getting Started
    • Tutorials
      • Your First Strategy
        • Create a New Strategy
        • Define Variables
        • Define Setup Method
        • Define Register Actions Method
        • Backtest
        • Deploy Strategy & Start Receiving Signals
    • Dashboard
    • Strategies
      • Strategy Tools and Settings
        • Editor
        • Strategy Detail
        • Backtests
          • Backtest Detail
          • Deploying a Backtest
          • Delete a Backtest
        • Deployments
          • Deployment Detail
          • Edit About, Rules & Alternative Markets
          • Undeploy an Active Deployment
          • (Un)Publish a Deployment
          • (Un)Follow a Deployment
          • Delete a Deployment
        • Followings
          • Following Detail
          • Unfollow a Deployment
          • Delete Record of Following
      • Strategies Marketplace
        • Follow a Strategy
        • Publish Strategy
      • Strategy Details
      • Strategy Metrics
        • Initial Capital
        • Initial Capital (USDT)
        • Strategy Balance
        • Strategy Balance (USDT)
        • Total Performance
        • Total Performance (USDT)
      • Strategy Types
        • Single Market Strategy
        • Multi Market Strategy
    • Account
      • Change Plan
      • Change or Reset Password
      • Change Name, Username, or E-mail
  • Framework Documentation
    • Strategy
      • Methods
        • Setup()
          • DataMarketplace
          • IndicatorsMarketplace
        • RegisterActions()
        • Orders Management
          • CancelOrder()
          • CancelAllPendingOrders()
          • EnterLong()
          • EnterLongLimit()
          • EnterShort()
          • EnterLongStop()
          • EnterShortLimit()
          • ExitLong()
          • EnterShortStop()
          • ExitLongLimit()
          • ExitShort()
          • ExitShortLimit()
          • ExitLongStop()
          • ExitShortStop()
        • Risk Management
          • SetProfitTarget()
          • SetStopLoss()
      • Properties
        • Market
        • Markets
        • PendingOrders
        • Position
        • Time
      • Types
        • IOrder
        • PendingOrder
    • Data
    • Logs
  • Knowledge Base
    • Vocabulary
      • Base currency
      • Deployment
      • Following
      • Quote currency
      • Strategy
    • Technical Indicators
      • Oscillators
        • Average Directional Index (ADX)
        • Momentum Indicator (MOM)
        • Moving Average Convergence Divergence (MACD)
        • Relative Strength Index (RSI)
        • Stochastic RSI (STOCH RSI)
      • Volatility
        • Average True Range (ATR)
        • Bollinger Bands (BB)
      • Trend Analysis
        • Exponential Moving Average (EMA)
        • Simple Moving Average (SMA)
        • Volume-weighted Moving Average (VWMA)
        • Weighted Moving Average (WMA)
      • Volume
        • Accumulation/Distribution Line (ADL)
  • Have a question?
    • FAQ
    • Ask on the forums
    • Contact us
Powered by GitBook
On this page
  • Trading application
  • Calculation
  • Parameters
  • Examples
  1. Knowledge Base
  2. Technical Indicators
  3. Volume

Accumulation/Distribution Line (ADL)

Volume based indicator designed to measure underlying supply and demand.

Accumulation/Distribution Line (ADL) is a volume based indicator designed to measure underlying supply and demand. It determines whether traders are accumulating (buying) or distributing (selling).

Trading application

The Accumulation/Distribution Line can be used to gauge the general flow of volume. An uptrend in prices with a downtrend in the Accumulation/Distribution Line suggests an underlying selling pressure (distribution) that could foreshadow a bearish reversal. A downtrend in prices with an uptrend in the Accumulation/Distribution Line indicates an underlying buying pressure (accumulation) that could foreshadow a bullish reversal. It is not a standalone indicator.

Calculation

ADL=PreviousADL+CurrentPeriod′sMoneyFlowVolumeADL = Previous ADL + Current Period's Money Flow VolumeADL=PreviousADL+CurrentPeriod′sMoneyFlowVolume
MoneyFlowVolume=MoneyFlowMultiplier∗CurrentPeriod′sVolumeMoney Flow Volume = Money Flow Multiplier * Current Period's VolumeMoneyFlowVolume=MoneyFlowMultiplier∗CurrentPeriod′sVolume
MoneyFlowMultiplier=[(Close−Low)−(High−Close)]/(High−Low)Money Flow Multiplier = [(Close - Low) - (High - Close)] /(High - Low)MoneyFlowMultiplier=[(Close−Low)−(High−Close)]/(High−Low)

The multiplier is positive when the close is in the upper half of the high-low range and negative when in the lower half.

Parameters

Input Parameters

No input parameters.

Output Parameters

Indicator ouptuts a single value.

Type

Range of value

double

(0, double.MaxValue)

Examples

// Prints the current value of ADL.
adl = indicators.ADL().OnSeries(dailyBars);
Log("The current ADL value is " + adl.Value.ToString());

// Prints the previous value of ADL.
adl = indicators.ADL().Keep(2).OnSeries(dailyBars);
Log("The previous ADL value is " + adl.Values[1].ToString());

Complete example

using Signals.DataSeries.Bars;
using Signals.Framework;
using Signals.Indicators.ADL;

public class MyStrategy : SingleMarketStrategy
{
    private Bars dailyBars;
    private ADL adl;

    public override void Setup(DataMarketplace data, IndicatorsMarketplace indicators)
    {
        dailyBars = data.Bars(BarPeriodType.Day, 1).WithOffset(25);
        adl = indicators.ADL().Keep(2).OnSeries(dailyBars);
    }

    public override void RegisterActions()
    {
        OnUpdateOf(dailyBars).Do(() =>
        {   
            // Prints the current ADL value
            Log("The current ADL value is " + adl.Value.ToString());

            // Prints the previous ADL value
            Log("The previous ADL value is " + adl.Values[1].ToString());
        });
    }
}
PreviousVolumeNextFAQ

Last updated 5 years ago