python - 如何处理高频时间序列数据?
问题描述
我正在处理高频时间序列数据:
date values
2019-12-30 21:00:00 7134.0
2019-12-30 21:00:27 7147.0
2019-12-30 21:04:27 7135.0
2019-12-30 21:08:27 7122.0
2019-12-30 21:12:27 7121.0
2019-12-30 21:16:27 7125.0
2019-12-30 21:20:27 7135.0
2019-12-30 21:24:27 7121.0
2019-12-30 21:28:27 7125.0
2019-12-30 21:32:27 7127.0
2019-12-30 21:36:27 7130.0
谁能帮我展示如何处理这些数据来进行预测?我见过的每种方法都使用所有低频数据(每天、每周、每年)。假设我们不能进行平均,因为这可能会改变信息。
非常欢迎任何帮助或建议。
PS:我正在使用python。
解决方案
注意点差(如果您被收取点差费用,请始终接受报价数据作为时间、询价和报价 - 或至少从您的价格值中打折点差)。
如果您需要处理时间序列数据,并且您只有刻度输入,那么一些事情可能会派上用场:
- pandas.DataFrame - 这是原始数据的表格表示形式。许多统计分析库都接受 pandas DataFrame 格式。
- 熟悉 pandas 中的窗口函数,以及如何将刻度时间序列转换为 OHLC(Open-High-Low-Close)数据框 [如果您需要这样做以解决某些问题]。
- StreamZ 之类的库- 它基本上允许您为数据构建管道。(因此,您可以通过管道流式传输您的分时数据并将其转换为您想要的特定目的,或者将其传递给执行某些预测部分的处理程序)
- Ta-Lib(技术分析库)也有一套不错的技术指标,可以在 pandas.DataFrame 中轻松使用。
- 请注意,根据您所使用的市场的波动性 - 您可能希望通过选择更大的时间范围来避免噪音,或者尽可能深入地研究包含大量噪音的报价数据。
如果您正在努力预测价格,您将需要阅读大量关于回归分析的内容(ARIMA、SARIMA 等主题是回归分析的结果,您需要在开始进一步了解之前了解基础知识)
同样,预测可以做很多事情。你真的永远不会知道市场的方向是什么。这完全是一个概率优化问题,所以如果您可以/或打算这样做 - 我强烈建议您使用 AI 大脑进行交易。
对于 AI,keras和 TF (tensorflow) 会派上用场,尤其是在 Python 中。Keras 位于 TF 之上,并提供大量特性/功能供您构建网络以满足您的需求。TF 还支持 Nvidia 的 CUDA SDK - 因此您可以利用 GPU 的处理器进行优化和训练。您可以构建不同风格的神经网络,例如 RNN(您的比率可以作为交易系统的奖励)、DeepQ 学习等。
现在,不要让你没有一个实际的例子(并提到一个我忘了告诉你上面的库...... statsmodels) - 我认为这是一个很好的起点:马尔可夫切换动态回归模型(它使用时间一系列联邦基金——所以没有 OHLC,只有日期和价格——它最终绘制了不同制度的概率)
我要研究的一个更高级的例子是TF 网站上的时间序列预测。它用天气数据来做,但这个过程很有趣——从转换输入数据到使用 LSTM 或 Conv NN 将其推送到不同的模型可能会给你一些想法。(:
推荐阅读
- azure - 将 .net core 2.2 应用程序迁移到 3.1,它不会在 Azure 中提供服务
- c - Visual Studio 2019 是否与 C99 兼容?
- sql - PostgreSQL 中的表变量和表值函数等价物
- java - 使用条件 Java 在列表中填充列表
- java - 方法中的多个泛型
- css - 我的 CSS 动画的 CPU 使用率很高。我可以使用 GPU 来减轻负担吗?
- c# - ASP.NET MVC 视图模型 SQL 查询语法
- mysql - JOOQ 日期原样,忽略时区
- sql - 提取数据库行及其所有引用的“对象”(递归)的工具?
- python-3.x - 当我在 Chrome 中单击检查时,如何让 Beautiful soup html 解析器与显示的代码相同?