Git Product home page Git Product logo

technicalindicators's Introduction

TechnicalIndicators

A javascript technical indicators written in javascript.

Installation

For nodejs install using npm

npm install --save technicalindicators
const SMA = require('technicalindicators').SMA;

For browser install using bower

bower install --save technicalindicators
<script src="bower_components/technicalindicators/browser.js"></script>

All indicators will be available in window object. So you can just use

SMA.calculate({period : 5, values : [1,2,3,4,5,6,7,8,9]});

or

sma({period : 5, values : [1,2,3,4,5,6,7,8,9], reversedInput : true});

#Available Indicators

  1. Simple Moving Average.
  2. Exponential Moving Average.
  3. Weighted Moving Average.
  4. Moving Average Convergence Divergence.
  5. MACD Histogram.
  6. Bollinger Bands.
  7. Average True Range.
  8. Relative Strength Index.
  9. Wilder’s Smoothing (Smoothed Moving Average).
  10. Rate of Change (ROC).
  11. Know Sure Thing (KST).
  12. Stochastic (Stochastic).
  13. WilliamsR (WilliamsR).
  14. Accumulation Distribution Line (ADL).
  15. On Balance Volume (OBV).
  16. TRIX (TRIX).

API

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

##calculate

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

const SMA = require('technicalindicators').SMA;
var prices = [1,2,3,4,5,6,7,8,9,10,12,13,15];
var period = 10;
SMA.calculate({period : period, values : prices})

##nextValue

nextValue method is used to get the next indicator value.

var sma = new SMA({period : period, values : []});
var results = [];
prices.forEach(price => {
  var result = sma.nextValue(price);
  if(result)
    results.push(result)
});

##getResult

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

1.Initialize indicator with available price value

2.Get results for initialized values

3.Use nextValue to get next indicator values for further tick.

var 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.

#Running tests and getting coverage

npm test
npm run cover

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.

Adding new indicators.

  1. Fork the project, clone it, run
npm install
gulp watch-test
  1. Add tests for the indicator. Make it pass. It would be better if a sample of the stockcharts excel is used for the test case.
  2. Add the indicator to the index.js
  3. Run npm run build so it adds the indicator to the browser.js
  4. Add it to read me, with the link to the tonicdev url containing the sample.
  5. Add indicator it to keywords in package.json and bower.json
  6. Send a pull request.

technicalindicators's People

Contributors

anandanand84 avatar

Watchers

James Drew avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.