gpt4 book ai didi

javascript - 确定一个值是否在两个价格之间跳跃或者是否实际上在演变

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:53 25 4
gpt4 key购买 nike

我制作了一个个人网络工具,用于收集有关图表中价格变化的数据。价格每 20 秒通过 websocket 输入到我的脚本中。截至目前,价格的每次变化都会在图表上创建一个新点。这很好用!

问题:大多数商品每 1-2 小时就会更新一次实际价格,但有些商品似乎会波动几美分。这意味着,一个商品的价格可能会在数小时内从 1.50 欧元涨到 1.51 欧元,然后每隔 20 秒就会回落,从而创建无穷无尽的图表点。来自 websocket 的数据将始终包含数百件商品的完整价目表 - 即使它们的价格没有变化。

我的方法似乎部分有效。我将最后两个已知价格保存在每个项目的一个短数组中。如果价格发生变化,它将检查最近两次更改是否包含此新价格,如果是:没有新点,只需更新旧点。如果新价格未包含在“黑名单”数组中(因此是“真实”价格变化),则生成一个新点并相应地更新黑名单数组。问题是,如果一个项目在“真正”更新后再次开始抖动,它将产生一个带有附加点的微小尖峰。

有没有更聪明的方法来做到这一点,没有错误?

var db = { // Example object in my database
apple: {currentPrice: 1.44, graphX: [1.42, 1.41, 1.44], graphY: [1534175049283, 1534175019374, 1534175082191], blackList = [1.44, 1.41]}
}

function newPrice(name, price){
if(db[name].currentPrice != price){ // Check if the price changed at all
if(db[name].blackList.indexOf(.price) == -1){ // Check if the price has been seen within the last 2 changes, if not, treat it as a new price
db[name].graphX.push(price); // Add price...
db[name].graphY.push(Date.now()); // ...and timestamp to X and Y arrays for a plotly graph to read when requested
db[name].currentPrice = price; // Update the current price (for easier access)
db[name].blackList[1] = db[name].blackList[0]; // Move the blacklist array by one up, delete the oldest one
db[name].blackList[0] = price; // set the new price to [0] on the blacklist
console.log("New graph point created!")
} else { // If it's one of the recent prices, dont add a new graph point, just update the old one
db[name].currentPrice = price; // Update the current price (for easier access)
db[name].graphX[db[name].graphX.length - 1] = price; // update the last array segment (price)
db[name].graphY[db[name].graphY.length - 1] = Date.now(); // update the last array segment (time)
console.log("Jittering price, updated last graph point!");
}
}
}

newPrice("apple", 1.41) // Gets called by a websocket every ~30 seconds, providing a name and a price

最佳答案

如果实际价格除了每小时左右不会更新一次,为什么不让它每小时运行一次,而不是每 20 秒左右运行一次?考虑研究如何在设定的时间间隔运行脚本的选项。

参见:Running a node.js script every 10 seconds并进行编辑以满足您的需求。

关于javascript - 确定一个值是否在两个价格之间跳跃或者是否实际上在演变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com