我正在使用python pandas数据框中的alpha_vantage API下载欧元兑美元汇率的时间序列数据。我用这个来练习使用pandas和scikit学习在加入附加的技术指标列后尝试使模型与数据相适应。我成功地建立了一个包含价格和技术指标的大数据框,但惊讶地发现所有的开盘价、收盘价、高价和低价在每一行都是相等的。我知道这不可能是准确的。这是alpha_vantage API以前见过的问题吗?在
#timeseries class from alpha_vantage module
ts = timeseries.TimeSeries(key = '(My Key)',output_format = 'pandas')
#price pandas dataframe
price_df = ts.get_daily(symbol = 'EURUSD', outputsize='full')[0]
#show dataframe
price_df
1. open 2. high 3. low 4. close 5. volume
date
1998-01-02 1.0866 1.0866 1.0866 1.0866 0.0
1998-01-05 1.0776 1.0776 1.0776 1.0776 0.0
1998-01-06 1.0754 1.0754 1.0754 1.0754 0.0
1998-01-07 1.0733 1.0733 1.0733 1.0733 0.0
1998-01-08 1.0784 1.0784 1.0784 1.0784 0.0
1998-01-09 1.0764 1.0764 1.0764 1.0764 0.0
1998-01-12 1.0769 1.0769 1.0769 1.0769 0.0
1998-01-13 1.0755 1.0755 1.0755 1.0755 0.0
1998-01-14 1.0749 1.0749 1.0749 1.0749 0.0
1998-01-15 1.0699 1.0699 1.0699 1.0699 0.0
1998-01-16 1.0719 1.0719 1.0719 1.0719 0.0
1998-01-19 1.0669 1.0669 1.0669 1.0669 0.0
1998-01-20 1.0646 1.0646 1.0646 1.0646 0.0
1998-01-21 1.0722 1.0722 1.0722 1.0722 0.0
1998-01-22 1.0868 1.0868 1.0868 1.0868 0.0
1998-01-23 1.1002 1.1002 1.1002 1.1002 0.0
这是一个“坏勾子”。阅读TickData的白皮书https://s3-us-west-2.amazonaws.com/tick-data-s3/pdf/Tick_Data_Filtering_White_Paper.pdf
问题归结为人机交互之间的接口。人类接触到机械过程的那一点就是数据中错误的来源。在
论文第4页概述了一个情况,即一行三个记号等于55个偶数:
“数据点代表连续3个坏的记号。有趣的是,坏勾数的值是55.00。最有可能的是,这些滴答声看起来很糟糕,因为价格的一小部分已经“损失”
在上面的例子中,发生了类似的情况,人为错误使O/H/L/C列中的一个列成为所有列的值。我相信,由于存储的数据太大,在压缩文件以存储在磁盘上时发生了一些事情。在
压缩实用程序试图通过查找相似的内容来节省空间,为它们分配一个公共变量,然后在需要时提取原始值。但是,如果没有指示压缩实用程序在数值中保留微小的分数差,则它可能会将一行中的所有这些值视为相同的,除非另有指示。因此,当文件被提取时,它会从一个压缩文件中读取,这个压缩文件损坏了有价值的数据。在
我不知道在您的例子中是否确实如此,但是如果发生类似的事情,我也不会感到惊讶。在
无论如何,这是一个很好的例子,说明了获取可靠数据是多么困难。在
欢迎使用堆栈溢出。我不知道你问题的答案,但有几件事要考虑:
1)日期范围很旧,可能没有保留该级别的详细信息—您可以检查更当前的数据,看看是否有变化。在
2)数据应该有高低(我想答案是肯定的,否则你不会问)
这可能是一个更大的问题,发送给阿尔法华帝支持,因为他们会知道这是否“正常”
相关问题 更多 >
编程相关推荐