-
-
Save Kazzje/e27d56946ed57a528e7c2699f7243056 to your computer and use it in GitHub Desktop.
Ichimoku cloud Javascript node
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const inputs = { tenkan: -9, kijun: -26, senkou: -52, chikou: -26 }; | |
main['ichimoku_' + pair] = generateIchimoku(pair, false); | |
main['chikou_' + pair] = generateIchimoku(pair, true); | |
const generateIchimoku = (pair, isChikou) => { | |
const high = isChikou ? main.high[pair].slice(0, inputs.chikou) : main.high[pair]; | |
const low = isChikou ? main.low[pair].slice(0, inputs.chikou) : main.low[pair]; | |
const getHi = val => Math.max(...high.slice(val)); | |
const getLo = val => Math.min(...low.slice(val)); | |
const tenkan = (getHi(inputs.tenkan) + getLo(inputs.tenkan)) / 2; | |
const kijun = (getHi(inputs.kijun) + getLo(inputs.kijun)) / 2; | |
const spliceTo = isChikou ? main.high[pair].length + inputs.chikou * 2 : main.high[pair].length + inputs.chikou; | |
const tenkanOld = (Math.max(...high.slice(spliceTo + inputs.tenkan, spliceTo)) + Math.min(...low.slice(spliceTo + inputs.tenkan, spliceTo))) / 2; | |
const kijunOld = (Math.max(...high.slice(spliceTo + inputs.kijun, spliceTo)) + Math.min(...low.slice(spliceTo + inputs.kijun, spliceTo))) / 2; | |
const senkouA = (tenkanOld + kijunOld) / 2; | |
const senkouB = (Math.max(...high.slice(spliceTo + inputs.senkou, spliceTo)) + Math.min(...low.slice(spliceTo + inputs.senkou, spliceTo))) / 2; | |
return { tenkan, kijun, senkouA, senkouB }; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment