bollinger-bands
Version:
Fintach math utility to calculate bollinger bands.
74 lines (52 loc) • 2.92 kB
Markdown
[](https://travis-ci.org/kaelzhang/bollinger-bands)
[](https://codecov.io/gh/kaelzhang/bollinger-bands)
<!-- optional appveyor tst
[](https://ci.appveyor.com/project/kaelzhang/bollinger-bands)
-->
<!-- optional npm version
[](http://badge.fury.io/js/bollinger-bands)
-->
<!-- optional npm downloads
[](https://www.npmjs.org/package/bollinger-bands)
-->
<!-- optional dependency status
[](https://david-dm.org/kaelzhang/bollinger-bands)
-->
# MAINTENANCE WARNING
This module is lack of maintenance.
If you are familiar with python programming maybe you could check [**stock-pandas**](https://github.com/kaelzhang/stock-pandas) which provides powerful statistic indicators support, and is backed by [`numpy`](https://numpy.org/) and [`pandas`](https://pandas.pydata.org/).
The performance of [**stock-pandas**](https://github.com/kaelzhang/stock-pandas) is many times higher than JavaScript libraries, and can be directly used by machine learning programs.
****
# bollinger-bands
Fintach math utility to calculate [bollinger bands](https://en.wikipedia.org/wiki/Bollinger_Bands).
## Install
```sh
$ npm install bollinger-bands
```
## Usage
```js
import boll from 'bollinger-bands'
boll([1, 2, 4, 8], 2, 2)
// {
// upper: [, 2.5, 5, 10],
// mid : [, 1.5, 3, 6],
// lower: [, 0.5, 1, 2]
// }
```
## boll(datum, size, times, options)
- **datum** `Array.<Number>` the collection of data
- **size** `Number=20` the period size, defaults to `20`
- **times** `Number=2` the times of standard deviation between the upper band and the moving average.
- **options** `Object=` optional options
- ma `Array.<Number>=` the moving averages of the provided `datum` and period `size`. This option is used to prevent duplicate calculation of moving average.
- sd `Array.<Number>=` the standard average of the provided `datum` and period `size`
Returns `Array.<Band>` the array of the `Band` object.
### struct `Band`
- **upper** `Number` the value of the upper band
- **mid** `Number` the value middle band (moving average)
- **lower** `Number` the value of the lower band
## Related Fintech Modules
- [moving-averages](https://www.npmjs.com/package/moving-averages): The complete collection of utility methods for [Moving average](https://en.wikipedia.org/wiki/Moving_average).
- [s-deviation](https://www.npmjs.com/package/s-deviation): Math utility to calculate standard deviations.
## License
MIT