【发布时间】:2020-07-14 09:42:53
【问题描述】:
我有一个脚本,它每隔 30 分钟从Binance API 获取数据,并在终端中显示。 我想计算数组中每个资产的平均值。
这是Node-Schedule package - const j = schedule.scheduleJob('* * * * *'
小例子:var array = ["ADABTC", "AEBTC", "AIONBTC"]
我想分别计算 "ADABTC"、"AEBTC" 和 "KAVABTC" 的平均值。
完整代码
const { MongoClient } = require('mongodb');
const schedule = require('node-schedule');
const fetch = require('node-fetch');
const symbols = ["ADABTC", "AEBTC", "AIONBTC", "ALGOBTC", "ARDRBTC", "ARKBTC", "ATOMTC"]
const getBTCData = async symbol => {
let data = await fetch(`https://api.binance.com/api/v3/klines?symbol=${symbol}&interval=30m&limit=1`).then(res => res.json());
const btcusdtdata = data.map(d => {
return {
Volume: parseInt(d[5]),
Timespan: 30,
}
});
console.log(btcusdtdata);
};
const sleep = ms => new Promise(res => setTimeout(res, ms));
const j = schedule.scheduleJob('* * * * *', async() => {
for (let symbol of symbols) {
await getBTCData(symbol);
await sleep(4000);
}
});
目标:如果我每 30 分钟收到一次资产,我如何计算这部分的平均交易量 - Volume: parseInt(d[5]),?
【问题讨论】:
-
此 API 将为我们提供给定交易品种(和区间)的一些统计数据,例如开盘价、最高价、最低价、收盘价等。您是否希望确定单个数据点的平均价格?还是您希望每 30 分钟获取一次价格,然后平均这些价格,比如当天?
-
@TerryLennox 你好!我想计算音量的平均值,这就是为什么我有'parseInt(d[5])。我将更新我的问题以使其更正确。我想获得每个资产的平均交易量,然后对即将到来的资产进行平均。就像在脚本工作 2 小时后,我为每个资产有 4 个数字,我想计算每个资产的这 4 个数字的平均值。
-
啊,是的,非常好。感谢您的详细更新!
-
@TerryLennox 期待任何关于如何制作它的建议。感谢您的评价
-
@TerryLennox 如果你有时间我想和你个人聊天,根据你的 SO 个人资料,我想你可以让我对 nodejs 后端系统有所了解。但我真的希望我们能先解决我的第一个问题。
标签: javascript node.js average