Python – 将 Tick-by-Tick 数据转换为 OHLC (Open-High-Low-Close) 数据
在这篇文章中,我们将探索Python的 pandas 包功能。我们经常发现有关将逐笔报价数据转换为 OHLC(开盘价、最高价、最低价和收盘价)的查询。使用 pandas 套件可以轻松完成。 OHLC 数据用于单位时间(1 天、1 小时等)内对价格变动进行技术分析。
第一步:
第一步涉及样本数据的收集。让我们按报价数据导入报价样本报价。在本教程中,我们将使用从 Pepperstone(外部来源)下载的 AUD / JPY(澳元/日元)对的 1 月份数据。
Pepperstone 提供特定货币对的免费历史报价数据。 .csv 文件包含本书顶部的逐笔市场数据,以及分数点差的毫秒详细信息。对于我们的研究,数据绰绰有余。
Python中的步骤:
如您所见,数据没有标题。我们将包含标题并以编程方式完成必要的任务。
# importing libraries
import pandas as pd
代码:加载数据。
data_frame = pd.read_csv(
'AUDJPY-2016-01.csv', names=['Symbol', 'Date_Time', 'Bid', 'Ask'],
index_col=1, parse_dates=True)
data_frame.head()
数据以名称“AUDJPY-2016-01.csv”存储在工作目录中。正如我们之前看到的,数据没有标题。然后,我们将在导入数据时为其添加标题。因此,导入和添加标题发生在同一行代码中。
使用了 pandas 数据框的 resample 属性。重采样功能允许重新检查标准时间序列数据。在 15 分钟内,我们必须重新采样数据并将其分区为 OHLC 格式。使用 L 代表毫秒,U 代表微秒,S 代表秒,如果你想在更小的时间范围内重新采样(毫秒/微秒/秒)等。
data_ask = data_frame['Ask'].resample('15Min').ohlc()
data_bid = data_frame['Bid'].resample('15Min').ohlc()
代码:“询问”数据框
data_ask.head()
代码:“出价”数据框
data_bid.head()
代码:合并“询问”和“出价”数据框
data_ask_bid = pd.concat(
[data_ask, data_bid], axis=1,
keys=['Ask', 'Bid'])
结论:
这是使用 TBT 数据计算 OHLC 的一种快速方法。这可以跨资产应用,并且可以根据 OHLC 数据设计各种策略。我们还可以绘制基于 OHLC 的地图,并生成交易信号。使用数据的另一种方法是在Python中构建技术指标,或计算风险调整后的回报。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。