问题描述
我写这篇文章是因为我没有找到解决这个疑问的公开文档或代码。我一直在将 AlphaVantage API 用于一个关于通过机器学习进行股票市场预测的项目。我一直在使用 AlphaVantage 库的许多技术指标,其中许多使用数据点的序列(窗口),滚动它们(例如移动平均线)。
但是,许多金融图书馆倾向于更新他们之前为其中一些指标计算的值,方法是使用保留有关指标所指时间点的未来信息的窗口。显然,这将代表像我这样的预测系统(仅依赖过去或现在的信息)不应该访问的“隐藏”信息。
因此,我想知道 AlphaVantage 库是否也是这种情况。我个人手动检查了很多引用同一只股票的指标(我对许多股票重复了这个过程),距离几天,我没有发现引用共同日期的值有任何不一致(唯一的区别是那些技术指标的最新版本有新点,指的是价格及时的新演变)。
如果你们中有人能帮我解决这个问题,我会很高兴。
解决方法
大多数指标将使用报价值(包括当前价格)的回顾窗口来计算当前指标值。许多还将包括先前计算的指标值作为当前指标值的基础。甚至更少根据新的价格信息重新计算旧的指标值。
对于最后一个场景,在查看 AlphaVantage library 时,我看不到任何会根据新数据重新计算旧指标值的内容。如果您看到指标值发生变化,则可能是由于其基础报价历史记录的修订或更新。
我有相当多的指标 large .NET library,因此我很熟悉哪种类型的指标会因数学而表现出这种行为。
具有追溯重新计算的指标的一些示例是 ZigZag 和 Williams Fractal。他们这样做的原因是因为他们找到了当地的高点和低点,如果没有几个确认的数据柱就无法验证。换句话说,在此后出现几个较低的柱线之前,您无法指示高点。