1.3.4 • Published 12 months ago

precision-trading-indicators v1.3.4

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

Precision Trading Indicators

High precision trading indicators: RSI, Bollinger Bands, MACD, EMA, MA, many moving averages and oscillators. Trend and reversal detection patterns available.

npm version

Dependencies

BigNumber.js V9.1

Load


Browser

<script src='/bignumber.min.js'></script>
<script src='/precision-trading-indicators.min.js'></script>

Node

npm install bignumber.js
npm install precision-trading-indicators

Config


Browser

const indicators = new PrecisionTradingIndicators.default(BigNumber);

Node

import BigNumber from 'bignumber.js';
import PrecisionTradingIndicators from 'precision-trading-indicators';
const indicators = new PrecisionTradingIndicators(BigNumber);

Usage


import PrecisionTradingIndicators from '../precision-trading-indicators.js';
import BigNumber from 'bignumber.js';
const indicators = new PrecisionTradingIndicators(BigNumber);

const {
	EMA, 
    MA, 
    MACD, 
    BollingerBands,
	IchimokuCloud,
    ADX, 
    MFI, 
    RSI, 
    STOCHASTIC_RSI, 
	getMomentum,
	getCandlestickPattern,
	findLastCross,
} = indicators;

const period = 14;

const response = await fetch('https://api.gpu.trading/v1/vpn/candlesticks/AAPL/365')
const json = await response.json()

const ohlcv = {
	open: json.map(item => BigNumber(item.open)),
	high: json.map(item => BigNumber(item.high)),
	low: json.map(item => BigNumber(item.low)),
	close: json.map(item => BigNumber(item.close)),
	volume: json.map(item => BigNumber(item.volume)),
	timestamp: json.map(item => item.timestamp)
}

const {open, high, low, close, volume} = ohlcv;
const rsi = RSI(close, period).get(); //outputs and array

//STOCHASTIC_RSI
//outputs an object with 4 array elements {K <array>, D <array>, crossInterval <number>, crossType <string: 'death' || 'golden'>}
//STOCHASTIC_RSI_VALUES are in D.
//crossInterval indicates in which intervar K and D lines crossed. 0 for the current interval, 1 for the previous interval...
//crossInterval indicates the current trend after the last cross.
const stochasticRsi = STOCHASTIC_RSI(rsi.rsi, period, 3, 3).get();


//MACD
//outputs an object with 5 array elements  {diff <array>, dea <array>, histogram <array>, crossInterval <number>, crossType <string: 'death' || 'golden'>}
//crossInterval indicates in which intervar diff and dea lines crossed. 0 for the current interval, 1 for the previous interval...
//crossInterval indicates the current trend after the last cross..
const macd = MACD(close, 12, 26, 9).get();
const {diff} = macd

//BollingerBands
//outputs an object with 4 array elements {upper <array>, lower <array>, mid <array>, loc <number>}
//loc is a percentage numeric representation of the current price in bollinger bands.
const bollingerBands = BollingerBands(close, 20, 2).get();
const {mid, loc} = bollingerBands;


const adx = ADX(ohlcv, period).get(); //outputs and array
const mfi = MFI(ohlcv, period).get(); //outputs and array
const ema20 = EMA(close, 20).get(); //outputs and array
const ema40 = EMA(close, 40).get(); //outputs and array
const momentum = getMomentum({close, fast: ema20, slow: ema40}); //ouputs a <string: 'up' ||  'strong up' || 'down' || 'strong down' || 'neutral'>
const ma = MA([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 200).get(); //outputs and array
const candlestickPattern = getCandlestickPattern(ohlcv).get();
//console.log({ema20, ema40, ma, rsi, stochasticRsi, macd, trend, momentum, bollingerBands, adx, mfi, candlestickPattern});

const ichi = IchimokuCloud(ohlcv).get()
const {conversionLine, baseLine, leadingSpanA, leadingSpanB, laggingSpan} = ichi

const csv = conversionLine.map((v, i) => {

	return {
		conversionLine: conversionLine[i], 
		baseLine: baseLine[i],
		leadingSpanA: leadingSpanA[i], leadingSpanB:
		leadingSpanB[i],
		laggingSpan: (typeof laggingSpan[i] === 'undefined') ? '' : laggingSpan[i]}

})

console.log(JSON.stringify(csv))
1.2.8

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.3.4

12 months ago

1.3.3

12 months ago

1.3.1

12 months ago

1.3.0

12 months ago

1.2.9

1 year ago

1.2.0

1 year ago

1.1.9

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.1

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.0

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago