Function Prototype
/* Accumulation/Distribution Oscillator */
/* Type: indicator */
/* Input arrays: 4 Options: 2 Output arrays: 1 */
/* Inputs: high, low, close, volume */
/* Options: short period, long period */
/* Outputs: adosc */
int ti_adosc_start(TI_REAL const *options);
int ti_adosc(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 Oscillator is also known as the Chaikin Oscillator after its inventor.
It takes two parameters: a short period n
and a long period m
. The indicator
calculated by taking a moving average of n
periods of Accumulation/Distribution Line subtracted from a moving
average of m
periods of Accumulation/Distribution Line. The moving average used is Exponential Moving Average.
See Also
References
- Murphy, J. (1999) Technical Analysis of the Financial Markets
- Achelis, S. (2000) Technical Analysis from A to Z, 2nd Edition
Example Usage
Calling From C
/* Example usage of Accumulation/Distribution Oscillator */
/* 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[] = {2, 5}; /* short period, long period */
TI_REAL *outputs[1]; /* adosc */
/* Determine how large the output size is for our options. */
const int out_size = in_size - ti_adosc_start(options);
/* Allocate memory for output. */
outputs[0] = malloc(sizeof(TI_REAL) * out_size); assert(outputs[0] != 0); /* adosc */
/* Run the actual calculation. */
const int ret = ti_adosc(in_size, inputs, options, outputs);
assert(ret == TI_OKAY);
Calling From Lua (with Tulip Chart bindings)
-- Example usage of Accumulation/Distribution Oscillator
adosc = ti.adosc(high, low, close, volume, 2, 5)
Example Calculation
short period = 2, long period = 5
date | high | low | close | volume | adosc |
---|---|---|---|---|---|
2005-11-01 | 82.15 | 81.29 | 81.59 | 5,653,100.00 | |
2005-11-02 | 81.89 | 80.64 | 81.06 | 6,447,400.00 | |
2005-11-03 | 83.03 | 81.31 | 82.87 | 7,690,900.00 | |
2005-11-04 | 83.30 | 82.65 | 83.00 | 3,831,400.00 | |
2005-11-07 | 83.85 | 83.07 | 83.61 | 4,455,100.00 | 1,900,759.85 |
2005-11-08 | 83.90 | 83.11 | 83.15 | 3,798,000.00 | 399,262.04 |
2005-11-09 | 83.33 | 82.49 | 82.84 | 3,936,200.00 | -241,806.82 |
2005-11-10 | 84.30 | 82.30 | 83.99 | 4,732,000.00 | 757,828.29 |
2005-11-11 | 84.84 | 84.15 | 84.55 | 4,841,300.00 | 1,068,830.29 |
2005-11-14 | 85.00 | 84.11 | 84.36 | 3,915,300.00 | 328,526.25 |
2005-11-15 | 85.90 | 84.03 | 85.53 | 6,830,800.00 | 1,466,909.30 |
2005-11-16 | 86.58 | 85.39 | 86.54 | 6,694,100.00 | 3,475,262.29 |
2005-11-17 | 86.98 | 85.76 | 86.89 | 5,293,600.00 | 4,653,474.79 |
2005-11-18 | 88.00 | 87.17 | 87.77 | 7,985,800.00 | 5,067,839.27 |
2005-11-21 | 87.87 | 87.01 | 87.29 | 4,807,900.00 | 3,474,675.62 |
Chart
Other Indicators
Previous indicator: Vector Addition
Next indicator: Average Directional Movement Index
Random indicator: Fisher Transform
Copyright © 2016-2024 Tulip Charts LLC. All Rights Reserved.