Files
QuanTAlib/lib/volume/adl/adl.pine
T

29 lines
1.2 KiB
Plaintext

// Licensed under the Apache License, Version 2.0
// © mihakralj
//@version=6
indicator("Accumulation/Distribution Line (ADL)", "ADL", overlay=false)
//@function Calculates the Accumulation/Distribution Line (ADL), a volume-based indicator that measures money flow into and out of a security
//@param src_high The high price (default: built-in high)
//@param src_low The low price (default: built-in low)
//@param src_close The close price (default: built-in close)
//@param src_vol The volume (default: built-in volume)
//@returns The cumulative ADL value representing buying/selling pressure
adl(src_high = high, src_low = low, src_close = close, src_vol = volume) =>
float mfm = 0.0
if not na(src_high) and not na(src_low) and not na(src_close)
mfm := (src_close - src_low) - (src_high - src_close)
mfm := src_high != src_low ? mfm / (src_high - src_low) : 0.0
float mfv = na(src_vol) ? 0.0 : src_vol * mfm
var float cumulativeSum = 0.0
cumulativeSum := na(mfv) ? cumulativeSum : cumulativeSum + mfv
cumulativeSum
// ---------- Inputs ----------
// ---------- Calculations ----------
adl_val = adl(high, low, close, volume)
// ---------- Plotting ----------
plot(adl_val, "ADL", color=color.yellow, linewidth=2)