Package Exports
- @ldrick/trade-indicators
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ldrick/trade-indicators) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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, toPromise } from '@ldrick/trade-indicators';
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),
);