量化交易系列【5】:如何快速的将日K线数据转换为周K线及月K线数据,神奇的resample函数

简介: 量化交易系列【5】:如何快速的将日K线数据转换为周K线及月K线数据,神奇的resample函数

在股票量化交易时,经常会使用到日K、周K及月K数据,那么我们如何利用日K的数据得到我们想要的周K及月K数据呢?


pandas中有一个专门处理周期的resample函数,可以很方便的对周期进行转换,下面以日K数据转化为周K及月K数据为例进行说明。


示例中使用的‘000001.XSHE.csv’文件,已上传至csdn资源中,可直接下载


导入数据


import pandas as pd


# 读取CSV文件
df = pd.read_csv('./000001.XSHE.csv')
# 显示前n行,默认是5
df.head()

image.png

# 将交易日期字符串变为日期类型
df['date'] = pd.to_datetime(df['date'])  
# 将日期列设为索引
df.set_index('date', inplace = True)
df.head(10)

image.png


计算周K线数据,求每周的开盘价、收盘价、最大值、最小值


# 定义一个空的df
week_df = pd.DataFrame()


# 求每周的开盘价
week_df['open'] = df['open'].resample('W').first()
# 求每周的收盘价
week_df['close'] = df['close'].resample('W').last()
# 求每周的最大值
week_df['high'] = df['high'].resample('W').max()
# 求每周的最小值
week_df['low'] = df['low'].resample('W').min()
week_df.head(10)

image.png


以上我们便通过股票的日K数据得到了周K数据。


定义周期转换函数,方便求周K与月K等数据


为了后续更方便的进行数据转换,我们可以直接封装一个函数,只需传输数据及想要转换的周期参数,即可得到相应周期的K线数据,函数定义如下:


def transfer_price_freq(data, time_freq):
    """
    将数据转化为指定周期:开盘价(周期第一天)、收盘价(周期最后一天)、最高价(周期)、最低价(周期)
    :param data:日数据,包含每天开盘价、收盘价、最高价、最低价
    :param time_freq: 转换周期,周:‘W’,月:‘M’
    :return:
    """
    df_trans = pd.DataFrame()
    df_trans['open'] = data['open'].resample(time_freq).first()
    df_trans['close'] = data['close'].resample(time_freq).last()
    df_trans['high'] = data['high'].resample(time_freq).max()
    df_trans['low'] = data['low'].resample(time_freq).min()
    return df_trans
# 我们传入df,及"M"参数即可得到月K数据
month_df = transfer_price_freq(df, 'M')
month_df.head()

image.png


同理如果我们有每分钟的股票数据,我们也可以通过该函数得到5分钟K线、10分钟K线、30分钟K线等。


如果内容对你有帮助,记得点赞、关注哦!也欢迎小伙伴们和我共同学习交流。


更多干货内容持续更新中…


也欢迎关注下方我的公众号,共同学习交流,获取更多学习资源。

相关文章
|
存储 数据挖掘 数据处理
Pandas 数据筛选:条件过滤
Pandas 是 Python 最常用的数据分析库之一,提供了强大的数据结构和工具。本文从基础到高级,介绍如何使用 Pandas 进行条件过滤,包括单一条件、多个条件过滤、常见问题及解决方案,以及动态和复杂条件过滤的高级用法。希望本文能帮助你更好地利用 Pandas 处理数据。
1119 78
用于演化博弈中,列出复制动态方程后,求解复制动态方程的均衡点
用于演化博弈中,列出复制动态方程后,求解复制动态方程的均衡点
|
数据挖掘 数据处理 索引
Pandas数据重命名:列名与索引为标题
Pandas 是强大的数据分析工具,支持灵活的数据结构和操作。本文介绍如何使用 Pandas 对 `DataFrame` 的列名和索引进行重命名,包括直接赋值法、`rename()` 方法及索引修改。通过代码示例展示了具体操作,并讨论了常见问题如名称冲突、数据类型不匹配及 `inplace` 参数的使用。掌握这些技巧可使数据更清晰易懂,便于后续分析。
1251 29
|
11月前
|
机器学习/深度学习 数据可视化 安全
点亮交通 “智慧眼”:路口监测平台应用实践
点亮交通“智慧眼”:路口监测平台应用实践 该平台基于YOLOX模型,通过PyQt5实现可视化界面,对交通路口的行人、汽车和自行车进行实时监测。系统支持摄像头实时监测和视频文件上传检测,并统计目标数量。训练环境配置、数据集准备及exe文件打包说明详见README.MD。此方案有效提升交通管理效率,保障出行安全。
211 6
|
Python
在Python中绘制K线图,可以使用matplotlib和mplfinance库
【5月更文挑战第1天】使用Python的matplotlib和mplfinance库可绘制金融K线图。mplfinance提供便利的绘图功能,示例代码显示如何加载CSV数据(含开盘、最高、最低、收盘价及成交量),并用`mpf.plot()`绘制K线图,设置类型为'candle',显示移动平均线(mav)和成交量信息。可通过调整参数自定义图表样式,详情参考mplfinance文档。
963 2
|
安全 Windows
win10系统:局域网下共享文件夹设置,解决其他电脑访问不成功问题
这篇文章是关于如何在Windows 10系统下设置局域网共享文件夹,并解决其他电脑访问不成功的问题的详细指南。
52191 7
win10系统:局域网下共享文件夹设置,解决其他电脑访问不成功问题
|
数据可视化 定位技术 Python
数据可视化——绘制带有时间线的柱状图
数据可视化——绘制带有时间线的柱状图
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
7711 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
前端开发 JavaScript 数据处理
用Python轻松制作一个股票K线图网站
用Python轻松制作一个股票K线图网站
348 0