用向量数据库分析股票价格异常和趋势

2024/12/13 21:03:16

本文主要是介绍用向量数据库分析股票价格异常和趋势,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据中的模式告诉了我们一个故事。它们与现实生活中的事件、情绪变化以及意外情况相关联。比如说,我们经常看到的马斯克的推特:

这条推文对TSLA的股价产生了立竿见影且显著的影响,股价在几秒钟内飙升了。这只是众多例子中的一个,影响股价的事件随时都在发生,比如财报电话会议、季度报告以及公司合并。通过理解数据中的模式和异常情况,我们能够迅速适应,更好地定位自己和我们的公司,在如今快速变化的世界中。

监控和识别数据中的异常和感兴趣模式是一项困难的任务。而在这类实时数据中进行操作则更添一层难度。在这篇文章中,我们会通过一种叫时间相似性搜索(Temporal Similarity Search)的方法来探索两种模式和异常识别的变体。

时间相似度搜索(TSS)

‘TSS’(时间相似性搜索) 是KDB.AI向量数据库中可用的一种算法,该算法能够识别时间序列数据中的模式、趋势和异常情况。将此算法作为向量数据库的一部分实现的优势在于,可以在大规模数据集中进行快速相似性搜索。

注册 KDB.AI 以试试 TSS(包括几个可以在 GitHub 上找到的预建和可自定义的代码示例)。

TSS非变换扫描时间序列信号,查找与查询模式相似的模式或特征

TSS 包含两种关键的搜索方法:变换型 TSS 和非变换型 TSS。变换型 TSS 可以在大规模的时间序列数据集(例如历史或参考数据)上进行高效的向量搜索。非变换型 TSS 则专注于对实时变化的数据(例如实时数据)进行近乎实时的相似性搜索。这两种组件结合起来,使您能够快速且大规模地搜索和分析时间序列数据。

在这次演示中,我们将使用未转换的TSS,它更适合实时用例,例如实时匹配股票市场的价格和成交量数据。未转换的TSS能够直接扫描数据,而无需将数据附加到搜索索引上。当数据被插入向量数据库时,可以直接扫描,无需附加到索引上。这对实时数据处理来说至关重要,因为传入的时间序列数据不需要附加到索引上,因此可以非常快速地插入并进行查询。

有一点需要注意:对于未转换的TSS (TSS未经过转换),相似性搜索是根据数据的形状来进行的,而不是直接基于数据的具体数值。这一点很重要,因为即使这些模式的具体数值有所不同,它也能检测到相似的模式。

让我们来看看Andrew Magowan创建的这个例子的具体细节吧!

特斯拉数据集

我们将使用一周的特斯拉(TSLA)价格和成交量数据作为示例。为了我们的示例,TSLA的价格每秒记录一次,成交量每分钟记录一次。首先,我们将TSLA前四天的数据输入KDB.AI,然后将第五天的数据实时输入KDB.AI,模拟实时数据流。

以下是前四天在KDB.AI加载的样子:

这张表格里有特斯拉的价格和成交量数据。

如你所见,在这个表格中并没有创建任何向量嵌入。这是因为未转换的TSS直接在时间序列数据上进行搜索。这,因为它很有优势,我们不需要将TSS搜索的向量长度固定。换句话说,你的查询向量不必是固定的大小,它可以是适合你需求的任何长度。

异常检测方法:异常检测

第一个应用场景是检测模拟的实时传入数据中的异常。TSS 实现这一点是通过将传入的模式与历史数据集进行比较。如果新传入的模式与历史上的任何模式都不相似,则会被视为异常。

我们来看看实时传入数据的TSS搜索结果。

上面的图表显示了实时输入到KDB.AI的180个数据点的价格,下面的图表是TSS识别出与实时模式最近邻(nearest neighbors)的相似模式的结果。下面的图表展示了历史数据集中与实时模式相似的模式(过去四天)。

在每个类似的模式结束时,我们可以查看接下来的部分。这可以作为预测动态模式接下来可能发生什么的特性。

但是……Elon……

马斯克发推特后不久出现的异常情况

然后我们看到TSLA的价格突然上涨(正好是埃隆·马斯克发推特说要私有化TSLA后的约15秒)。实时数据图变红,表明出现了一个异常,因为在过去的四天里,没有相似的模式达到阈值。

让我们看看我们能不能找到再一个奇怪的现象。

停牌(异常情况)

在我们继续监控股价时,发现又出现了一个异常情况(实时图表变红)。这是因为马斯克的推特之后,特斯拉股票波动性过高,市场暂停了特斯拉的交易,从而导致数据流入中断。因为在过去的四天里,没有出现过在中午交易中断的情况,因此这种实时模式被标记为异常。

在这个情况下,我们寻找股价异常,你也可以用其他数据,比如成交量。

搜索方法:查找预设模式

技术分析是一种方法,用于尽快识别传入数据中的已知模式,以便预测未来可能发生的情况。TSS 可用于这种模式匹配——让我们来看一个例子:
这里我们看到 TSLA 的实时数据正在流入 KDB.AI,我们已经设定了要在这个数据流中寻找的模式。

实时显示的数据,感兴趣的模式被标出

预设的模式,还有在相似性搜索中找到的最近邻点

随着数据流入,TSS搜索(技术简称)会在新数据和历史数据上执行。最近邻点将在“历史NN模式”图中显示,包括在检测到该模式后的后续情况(用黄色标记)。任何实时数据中的最近邻点也会被记录。

模式匹配是通过信号的形状来判断相似性,而不是精确值——这种方法在从金融、制造到物联网等众多领域中非常灵活。

开始使用TSS
  • 学习基础知识:通过文档 更深入地了解 TSS,并在 GitHub 或直接在 Google Colab 上进行动手操作的[示例]。
  • 探索 TSS 实现:如果你正在处理时间序列数据,考虑将 TSS 集成到你的数据分析工作流中。开始评估它如何增强你当前的数据分析流程。
  • 用你自己的数据集进行试验:无论你是在金融、制造还是 IoT 领域,尝试使用异常检测和模式识别在你的数据上,以发掘有价值的见解。
  • 加入Slack 频道:直接联系 KX 团队以解答你的问题,并与其他社区成员分享你的学习成果。
收尾啦

未转换的时间相似性搜索(TSS)提供了强大的功能来分析时间序列数据,尤其是在像股市这样的快速变化环境中。通过演示特斯拉的股价数据,我们看到了TSS可以以两种方式应用:异常检测和模式识别。这些方法可以实时分析传入的数据,从而可以迅速发现异常事件或预定义模式,这些可能预示着重要的市场动向。

识别异常的能力,如马斯克推文后价格突然上涨并暂停交易所示,证明了TSS可提醒分析师市场中的意外行为。同样,模式识别功能可帮助识别技术分析模式,为交易策略提供宝贵的信息。



这篇关于用向量数据库分析股票价格异常和趋势的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程