denoinstallhttps://deno.land/x/talib/index.ts# or force to upgradedenoinstall-fhttps://deno.land/x/talib/index.ts# or specific versiondenoinstall-fhttps://deno.land/x/talib@0.0.9/index.ts
Basic Usage
import { RSI } from'https://deno.land/x/talib/index.ts';# or specific version # import { RSI } from'https://deno.land/x/talib@0.0.5/index.ts';constinputRSI= { 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};constexpectedResult= [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 =newSMA({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 =newSMA({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.
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.