Skip to content

nenjotsu/deno-talib

Repository files navigation

description cover coverY
Technical Analysis written in Typescript for Deno
.gitbook/assets/dylan-calluy-JpflvzEl5cg-unsplash.jpeg
0

🦕 deno-talib

https://deno.land/x/talib

Installation

deno install https://deno.land/x/talib/index.ts

# or force to upgrade
deno install -f https://deno.land/x/talib/index.ts

# or specific version
deno install -f https://deno.land/x/[email protected]/index.ts

Basic Usage

import { RSI } from 'https://deno.land/x/talib/index.ts';
# or specific version 
# import { RSI } from 'https://deno.land/x/[email protected]/index.ts';

const inputRSI = {
  values : [127.75,129.02,132.75,145.40,148.98,137.52,147.38,139.05,137.23,149.30,162.45,178.95,200.35,221.90,243.23,243.52,286.42,280.27,277.35,269.02,263.23,214.90],
  period : 14
};
const expectedResult = [
    86.41,86.43,89.65,86.50,84.96,80.54,77.56,58.06
];

RSI.calculate(inputRSI)

There are three ways you can use to get the indicator results.

1. calculate

Every indicator has a static method calculate which can be used to calculate the indicator without creating an object.

import { SMA } from 'https://deno.land/x/talib/index.ts';

let prices = [1,2,3,4,5,6,7,8,9,10,12,13,15];
let period = 10;

sma({period : period, values : prices})
import { SMA } from 'https://deno.land/x/talib/index.ts';

let prices = [1,2,3,4,5,6,7,8,9,10,12,13,15];
let period = 10;

SMA.calculate({period : period, values : prices})

2. nextValue

nextValue method is used to get the next indicator value.

let sma = new SMA({period : period, values : []});
let results = [];

prices.forEach(price => {
  let result = sma.nextValue(price);
  if(result)
    results.push(result)
});

3. getResult

This a merge of calculate and nextValue. The usual use case would be

  • Initialize indicator with available price value
  • Get results for initialized values
  • Use nextValue to get next indicator values for further tick.
let sma = new SMA({period : period, values : prices});

sma.getResult(); // [5.5, 6.6, 7.7, 8.9]
sma.nextValue(16); // 10.1

Note: Calling nextValue will not update getResult() value.

Precision

This uses regular javascript numbers, so there can be rounding errors which are negligible for a technical indicators, you can set precision by using the below config. By default there is no precision set.

import talib from 'https://deno.land/x/talib/index.ts';

talib.setConfig('precision', 10);

Bullish or Bearish Indicator

Search for all bullish or bearish using

import { bullish } from 'https://deno.land/x/talib/index.ts';

const twoDayBullishInput = {
  open: [23.25,15.36],
  high: [25.10,30.87],
  close: [21.44,27.89],
  low: [20.82,14.93],
}

bullish(twoDayBullishInput) // true

Available Indicators

  • Accumulation Distribution Line (ADL)
  • Average Directional Index (ADX)
  • Average True Range (ATR)
  • Awesome Oscillator (AO)
  • Bollinger Bands (BB)
  • Commodity Channel Index (CCI)
  • Force Index (FI)
  • Know Sure Thing (KST)
  • Money Flow Index (MFI)
  • Moving Average Convergence Divergence (MACD)
  • On Balance Volume (OBV)
  • Parabolic Stop and Reverse (PSAR)
  • Rate of Change (ROC)
  • Relative Strength Index (RSI)
  • Simple Moving Average (SMA)
  • Stochastic Oscillator (KD)
  • Stochastic RSI (StochRSI)
  • Triple Exponentially Smoothed Average (TRIX)
  • Typical Price
  • Volume Weighted Average Price (VWAP)
  • Volume Profile (VP)
  • Exponential Moving Average (EMA)
  • Weighted Moving Average (WMA)
  • Wilder’s Smoothing (Smoothed Moving Average, WEMA)
  • WilliamsR (W%R)
  • Ichimoku Cloud

Other Utils

  • Average Gain
  • Average Loss
  • Cross Up
  • Cross Down
  • Cross Over
  • Highest
  • Lowest
  • Standard Deviation
  • Sum

Chart Types

  • Renko
  • Heikin-Ashi (HA)

CandleStick Pattern

  • Abandoned Baby
  • Bearish Engulfing Pattern
  • Bullish Engulfing Pattern
  • Dark Cloud Cover
  • Downside Tasuki Gap
  • Doji
  • DragonFly Doji
  • GraveStone Doji
  • Bullish Harami
  • Bearish Harami
  • Bearish Harami Cross
  • Bullish Marubozu
  • Bearish Marubozu
  • Evening Doji Star
  • Evening Star
  • Piercing Line
  • Bullish Spinning Top
  • Bearish Spinning Top
  • Morning Doji Star
  • Morning Star
  • Three Black Crows
  • Three White Soldiers
  • Bullish Hammer
  • Bearish Hammer
  • Bullish Inverted Hammer
  • Bearish Inverted Hammer
  • Hammer Pattern
  • Hammer Pattern (Unconfirmed)
  • Hanging Man
  • Hanging Man (Unconfirmed)
  • Shooting Star
  • Shooting Star (Unconfirmed)
  • Tweezer Top
  • Tweezer Bottom

Reference

Deno Url

{% embed url="https://deno.land/x/talib" %} https://deno.land/x/talib {% endembed %}

Documentation

{% embed url="https://nenjo-tsu.gitbook.io/deno-talib" %} API Documentation {% endembed %}

Contribute

Create issues about anything you want to report, change of API's, or request for adding new indicators. You can also create pull request with new indicators.

Thanks

Original node package is from anandanand84. Thanks to https://github.com/anandanand84/technicalindicators