@ldrick/trade-indicators
v0.5.0
Published
Trade Indicators
Downloads
37
Maintainers
Readme
trade-indicators
Trade Indicators written in pure functional Typescript.
Results will beEither<Error, ReadonlyArray<number> | Readonly<Record<string, ReadonlyArray<number>>>>
depending on what is returned using these amazing libraries:
🚀 fp-ts
🌟 big.js
- Average Directional Index (adx)
- Average True Range (atr)
- Double Exponential Moving Average (dema)
- Exponential Moving Average (ema)
- Moving Average Convergence / Divergence (macd)
- Simple Moving Average (sma)
- Smoothed Moving Average (smma)
- Triple Exponential Moving Average (tema)
- Weighted Moving Average (wma)
Install
npm install @ldrick/trade-indicators fp-ts big.js
or yarn add @ldrick/trade-indicators fp-ts big.js
Usage
In TypeScript:
import { either as E, function as F } from 'fp-ts/lib';
import { ema } from '@ldrick/trade-indicators/averages/ema.js';
import { toPromise } from '@ldrick/trade-indicators/toPromise.js';
const prices = [3, 2.1, 3, 4, 5.3, 5, 4.8, 6, 7, 5];
const period = 3;
// possible usage to pipe the Result E.Either<Error, RNEA.ReadonlyNonEmptyArray<number>>
const expMovingAverage = F.pipe(
ema(prices, period),
E.getOrElse(() => <ReadonlyArray<number>>[]),
);
// or convert the Result to Promise<RNEA.ReadonlyNonEmptyArray<number>>
toPromise(ema(prices, period)).then(
(result) => console.log(result),
(error) => console.log(error),
);