stock-indicator
Version:
Stock Indicator Library
28 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CCI = CCI;
const common_1 = require("../common");
/**
* - CCI (Commodity Channel Index)
* @param {number[]} CLOSE - closing prices series
* @param {number[]} HIGH - highest prices series
* @param {number[]} LOW - lowest prices series
* @param {number} N - number of periods,default 14
* @returns {{ CCI: TMixed[] }} - CCI values
* TYP:=(HIGH+LOW+CLOSE)/3;
* CCI:(TYP-MA(TYP,N))*1000/(15*AVEDEV(TYP,N));
*/
function CCI(CLOSE, HIGH, LOW, N = 14) {
(0, common_1.checkArrayOfNumbers)(CLOSE, "CLOSE");
(0, common_1.checkArrayOfNumbers)(HIGH, "HIGH");
(0, common_1.checkArrayOfNumbers)(LOW, "LOW");
(0, common_1.checkNumber)(N, 2, 1000, "N", "CCI");
const typ = CLOSE.map((cur, index) => (HIGH[index] + LOW[index] + cur) / 3);
const mytyp = (0, common_1.funMA)(typ, N);
const avedevtype = (0, common_1.funAVEDEV)(typ, N);
const CCI = typ.map((cur, index) => mytyp[index] === null || avedevtype[index] === null
? null
: (0, common_1.funRound)(((cur - mytyp[index]) * 1000) / (15 * avedevtype[index]), 3));
return { CCI };
}
//# sourceMappingURL=cci.js.map