calculate rsi
const newFunction = async () => {
// https://stackoverflow.com/questions/70452789/node-js-find-the-same-rsi-as-tradingview
// https://gist.github.com/jmoz/1f93b264650376131ed65875782df386
// https://stackoverflow.com/questions/50203625/calculate-rsi-based-on-kraken-ohlc
// topdown1.count({}, function( err, count){
// console.log( "Number of data in db :", count );
// topdown1.find(async (err,items)=>{
// if(err){
// console.log(err)
// }
// else{
const ticker = await exchange.fetchTicker('BTC/USDT')
const ohlcv = await exchange.fetchOHLCV('BTC/USDT','1m')
console.log( ohlcv[ohlcv.length - 1][4])
// console.log(ohlcv[ohlcv.length - 1])
// console.log(ohlcv[ohlcv.length - 2])
// console.log(ohlcv)
let jrr = [];
// const dc = parseInt(count)
const data = [
ohlcv[ohlcv.length -15][4],
ohlcv[ohlcv.length -14][4],
ohlcv[ohlcv.length -13][4],
ohlcv[ohlcv.length -12][4],
ohlcv[ohlcv.length -11][4],
ohlcv[ohlcv.length -10][4],
ohlcv[ohlcv.length -9][4],
ohlcv[ohlcv.length -8][4],
ohlcv[ohlcv.length -7][4],
ohlcv[ohlcv.length -6][4],
ohlcv[ohlcv.length -5][4],
ohlcv[ohlcv.length -4][4],
ohlcv[ohlcv.length - 3][4],
ohlcv[ohlcv.length - 2][4],
ohlcv[ohlcv.length - 1][4],
]
// const result = rsi2(data);
// console.log(result)
// console.log(data)
console.log(data.length)
// ta.add( ohlcv[ohlcv.length - 1][4]);
// Calculate the RSI
// ta.RSI
// const rsi1 = ta.rsi(data); // You can adjust the number of periods (14) to your liking
// console.log(`BTC/USDT RSI: ${rsi1}`);
var length = 15; // default = 14
let res = await ta.rsi(data, length);
// console.log({mine:res})
// let arr = [];
let sub = [];
let add = [];
let avgGain = 0.0;
let aveLoss = 0.0;
for(var i = 0 ; i < data.length;i++){
let sd = data[i+1]
if(sd != undefined){
// console.log(sd)
let d = sd - data[i];
if(d > 0 ){
let nd1 = d.toFixed(2)
avgGain += d;
add.push(parseFloat(nd1))
}
else if(d<0){
let nd2 = d.toFixed(2)
sub.push(parseFloat(nd2))
aveLoss += d * -1;
}
let nd = d.toFixed(2)
jrr.push(parseFloat(nd))
}
}
avgGain /= 14;
// console.log(avgGain)
// console.log(aveLoss)
aveLoss /= 14
// console.log(jrr)
let sum =0
for(a=0;a<add.length;a++){
// if(a == add.length -1){
// }
// else {
sum += add[a]
// }
}
let min = 0;
for(a=0;a<sub.length;a++){
// if(a == sub.length-1 ){
// }
// else {
min += sub[a]
// }
}
let s = 0;
for(a=0;a<jrr.length;a++){
if(a == jrr.length -1){
}
else {
s += jrr[a]
}
}
let sma = s/13
console.log({jrr:jrr[jrr.length-1]})
let currentdiff = jrr[jrr.length-1]
let nmin = min * -1
let ag = sum/ 15;
let al = nmin/ 15;
var rs = ag / al;
let rsi = (100 - (100 / (1 + rs)))
console.log({releativestrengthindex: (rsi)})
// }
// })
// })
}
// newFunction()
setInterval(newFunction, 1000)
Comments
Post a Comment