Hi carlos. Heres the INDEX.JS Code
global.fetch = require("node-fetch");
const GeminiAPI = require("gemini-api").default;
const secret = "3tCsg7JfkYAebKdtfnAv9JWG8AFT";
const key = "account-vQ9nv4dTXUMI9ugKQ4vT";
const restClient = new GeminiAPI({key, secret, sandbox:true});
const indicators = require("./indicators.js");
indicators.hourlyMovingAverage("BTC", "USD", 100, function(result){
console.log("MA hourly: ", result)
});
indicators.dailyMovingAverage("BTC", "USD", 360, function(result){
console.log("MA daily: ", result)
});
indicators.minutelyMovingAverage("BTC", "USD", 60, function(result){
console.log("MA minutely: ", result)
});
here is the indicators.js Code
const CCAPIKey = "14faf0c094ded9546b142ec0aa4944643f01af10322ea42aae5e997efd378218";
const CC = require("cryptocompare")
CC.setApiKey(CCAPIKey);
module.exports = {
hourlyMovingAverage:function movingAverage(cryptoAsset, fiatCurrency, hours, callback){
if(hours>169){
console.error("Only up to 169 hours allowed!")
return
}
// 1 get data from CC
CC.histoHour(cryptoAsset, fiatCurrency)
.then(data => {
// 2 calculate MA from past hours
data = data.reverse()
var sum = 0;
for(var i =0;i<hours;i++){
sum+=data[i].close;
}
var movingAverage = sum/hours;
callback(movingAverage);
})
.catch(console.error);
}
, dailyMovingAverage:function movingAverage(cryptoAsset, fiatCurrency, days, callback){
if(days>365){
console.error("Only up to 365 days allowed!")
return
}
// 1 get data from CC
CC.histoDay(cryptoAsset, fiatCurrency)
.then(data => {
// 2 calculate MA from past hours
data = data.reverse()
var sum = 0;
for(var i =0;i<days;i++){
sum+=data[i].close;
}
var movingAverage = sum/days;
callback(movingAverage);
})
.catch(console.error);
}
, minutelyMovingAverage:function movingAverage(cryptoAsset, fiatCurrency, minutes, callback){
if(days>365){
console.error("Only up to 169 minutes allowed!")
return
}
// 1 get data from CC
CC.histoMinute(cryptoAsset, fiatCurrency)
.then(data => {
// 2 calculate MA from past hours
data = data.reverse()
var sum = 0;
for(var i =0;i<minutes;i++){
sum+=data[i].close;
}
var movingAverage = sum/minutes;
callback(movingAverage);
})
.catch(console.error);
}
};
The error code switches between one of the following:
âDays is not definedâ // or
" daily.indicators is not a function" (same with minetyl)
looking forward to see what i didnt get right in this exercise⌠appreciate your help. Have a good start for this week.