Accumulation/Distribution Line

Technical Analysis Indicator: ad

Fork me on GitHub

Function Prototype

/* Accumulation/Distribution Line */
/* Type: indicator */
/* Input arrays: 4    Options: 0    Output arrays: 1 */
/* Inputs: high, low, close, volume */
/* Options: none */
/* Outputs: ad */
int ti_ad_start(TI_REAL const *options);
int ti_ad(int size,
      TI_REAL const *const *inputs,
      TI_REAL const *options,
      TI_REAL *const *outputs);

Description

This documentation is still a work in progress. It has omissions, and it probably has errors too. If you see any issues, or have any general feedback, please get in touch.

The Accumulation/Distribution Line indicator is calculated as follows:

$$ad_{t} = ad_{t-1} + volume_{t} \frac{(close_{t} - low_{t}) - (high_{t} - close_{t})}{(high_{t} - low_{t})} $$

See Also

References

Example Usage

Calling From C

/* Example usage of Accumulation/Distribution Line */
/* Assuming that 'high', 'low', 'close', and 'volume' are pre-loaded arrays of size 'in_size'. */
TI_REAL *inputs[] = {high, low, close, volume};
TI_REAL options[] = {}; /* No options */
TI_REAL *outputs[1]; /* ad */

/* Determine how large the output size is for our options. */
const int out_size = in_size - ti_ad_start(options);

/* Allocate memory for output. */
outputs[0] = malloc(sizeof(TI_REAL) * out_size); assert(outputs[0] != 0); /* ad */

/* Run the actual calculation. */
const int ret = ti_ad(in_size, inputs, options, outputs);
assert(ret == TI_OKAY);

Calling From Lua (with Tulip Chart bindings)

-- Example usage of Accumulation/Distribution Line
ad = ti.ad(high, low, close, volume)

Example Calculation

datehighlowclosevolumead
2005-11-0182.1581.2981.595,653,100.00-1,709,076.74
2005-11-0281.8980.6481.066,447,400.00-3,823,823.94
2005-11-0383.0381.3182.877,690,900.002,436,210.94
2005-11-0483.3082.6583.003,831,400.002,730,934.02
2005-11-0783.8583.0783.614,455,100.004,444,434.02
2005-11-0883.9083.1183.153,798,000.001,031,041.61
2005-11-0983.3382.4982.843,936,200.00375,008.28
2005-11-1084.3082.3083.994,732,000.003,640,088.28
2005-11-1184.8484.1584.554,841,300.004,411,889.73
2005-11-1485.0084.1184.363,915,300.002,696,196.47
2005-11-1585.9084.0385.536,830,800.006,823,899.14
2005-11-1686.5885.3986.546,694,100.0013,067,975.61
2005-11-1786.9885.7686.895,293,600.0017,580,552.66
2005-11-1888.0087.1787.777,985,800.0021,140,487.60
2005-11-2187.8787.0187.294,807,900.0019,463,313.18

Chart

 

Other Indicators

Previous indicator: Vector Arccosine

Next indicator: Vector Addition

Random indicator: Ultimate Oscillator