Implementation of most popular technical stock indicators for debut environment
npm install @debut/indicatorsThe main feature of these indicators is their continuous operation, which means that you can use them both for real trading and for teaching trading strategies on history, since this is a passage from the beginning to the end of the stream of candles. This approach allows you to reduce the number of necessary calculations by tens of times and is the most optimal in terms of performance.
SMA, for easy getting SMA(SMA(SMA(SMA())) some sampled x-times values.Releases are available under Node Package Manager (npm):
npm install @debut/indicators
``js
import { SMA } from '@debut/indicators';
const sma = new SMA(4); // Create SMA with 4 period
// SMA workflow
//=> [ '2.50', '3.50', '4.50', '5.50', '6.50', '7.50' ]
//=> │ │ │ │ │ └─(6+7+8+9)/4
//=> │ │ │ │ └─(5+6+7+8)/4
//=> │ │ │ └─(4+5+6+7)/4
//=> │ │ └─(3+4+5+6)/4
//=> │ └─(2+3+4+5)/4
//=> └─(1+2+3+4)/4
sma.nextValue(1); // undefined
sma.nextValue(2); // undefined
sma.nextValue(3); // undefined
sma.nextValue(4); // 2.50
sma.nextValue(5); // 3.50
sma.nextValue(6); // 4.50
sma.nextValue(7); // 5.50
sma.momentValue(8); // 6.50
sma.nextValue(8); // 6.50
sma.momentValue(9); // 7.50
sma.nextValue(9); // 7.50
``
Apple M1 Pro, Node v16.14.0. Tested on dateset with 100k elements.
| Indicator name | @debut/indicators (ops/sec)|technicalindicators (ops/sec)|indicatorts (ops/sec)|
|:---------------:|:---------------:|:---------------:|:---------------:|
|AwesomeOscillator|318|23|158|
|ADX|358|42|x|
|ATR|613|136|95|
|Bollinger Bands|347|9|219|
|CCI|151|12|158|
|DC|474|x|74|
|PSAR|1,453|278|666|
|EMA|1,720|452|1,537|
|MACD|1,417|90|467|
|ROC|3,625|64|x|
|RSI|1,239|38|315|
|SMA|678|65|645|
|WEMA|1,462|455|x|
|WMA|287|41|x|
|Stochastic|340|25|67|
Benchmarks results is autogenerated by https://github.com/coin-unknown/indicators-benchmark