Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

kaelzhang/kdj

Repository files navigation

Build Status Coverage

WARNING

This module is lack of maintainance.

If you are familiar with python programming maybe you could check stock-pandas which provides powerful statistic indicators support, and is backed by numpy and pandas. Its performance is many times higher than JavaScript libraries, and can be directly used by machine learning programs.


kdj

FinTech utility method to calculate the KDJ indicator.

KDJ is a derived form of the Stochastic Oscillator Indicator with the only difference of having an extra line called the J line.

The J line represents the divergence of the %D value from the %K.

Install

$ npm install kdj

Usage

import kdj from 'kdj'

kdj(close, low, high)

// is equivalent to
kdj(close, low, high, 9, 3, 3, 3, 2)

// which returns:
// {
//   K: <Array>,
//   D: <Array>,
//   J: <Array>
// }

kdj(close, low, high, periods, kPeriods, dPeriods, kTimes, dTimes)

To understand the parameters better, we need to mathematically describe the calculation of K, D, J lines. (via wikipedia)

%K = SMA( (closePrices - L) / (H - L), kPeriods )

L is the lowest prices over the last periods periods.

H is the highst prices over the last periods periods.

%D = SMA( %K, dPeriods )

%D is the dPeriods-periods moving average of %K.

KDJ is calculated quite alike Stochastic indicator, but the difference is in having a J line, which Stochastic does not have.

%J = %K * kTimes + %D * dTimes
  • close Array.<Number> array of closing prices.
  • low Array.<Number> array of low prices.
  • high Array.<Number> array of high prices.
  • periods Number=9 the size of time periods to get the highest / lowest prices. Defaults to 9.
  • kPeriods Number=3 the time periods to calculate the moving average for %K. Defaults to 3.
  • dPeriods Number=3 the time periods to calculate the moving average for %D. Defaults to 3.
  • kTimes Number=3
  • dTimes Number=2

Returns DKJValue

struct DKJValue

  • K Array.<Number|> the array of K values.
  • D Array.<Number|> the array of D values.
  • J Array.<Number|> the array of J values.

License

MIT