量化交易系列【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线等。


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


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


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

相关文章
|
数据可视化 搜索推荐 Python
如何用mplfinance打造与众不同的K线图?红涨绿跌背后的实现原理!
【8月更文挑战第21天】在金融市场分析中,K线图是洞察市场动态的关键工具。Python的mplfinance库专为金融数据可视化设计,能高效绘制K线图。针对中国交易者习惯,需将上涨设为红色,下跌为绿色。首先安装mplfinance库,然后准备股票数据。使用自定义颜色函数配合`make_marketcolors`方法实现红涨绿跌效果。此设置让图表更直观,有助于快速把握市场趋势,同时mplfinance的强大功能支持进一步个性化图表。
711 0
|
8月前
|
机器学习/深度学习 数据采集 自然语言处理
《深度剖析:特征工程—机器学习的隐秘基石》
特征工程是机器学习中至关重要的环节,它通过数据预处理、特征提取、特征选择和特征变换等技术手段,将原始数据转化为模型易于学习和理解的形式。这一过程不仅提升了模型的预测精度和泛化能力,还降低了模型复杂度,加速了训练过程。特征工程作为连接原始数据与高性能模型的桥梁,虽然幕后工作,却对模型表现起着决定性作用。掌握特征工程,能够更有效地挖掘数据价值,解决复杂问题。
397 3
|
11月前
|
监控 前端开发 JavaScript
前端稳定性工具-Sentry
【11月更文挑战第9天】Sentry 是一个开源的错误和性能监控平台,支持多种编程语言和框架。它能够捕获前端应用中的各种错误和性能问题,提供详细的错误信息和用户行为关联,帮助开发团队快速定位和解决问题,优化应用性能。但需注意隐私保护、数据准确性和成本控制。
1028 3
|
12月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
4942 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
1452 4
|
机器学习/深度学习 人工智能 算法
【机器学习】深度神经网络(DNN):原理、应用与代码实践
【机器学习】深度神经网络(DNN):原理、应用与代码实践
2706 1
|
Java 编译器 API
Java中的动态编译与运行
Java中的动态编译与运行
|
SQL 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(五十七)(7)
SqlAlchemy 2.0 中文文档(五十七)
163 0
|
存储 开发者 Python
Python项目实战案例-批量下载网易云榜单音乐保存至本地
Python项目实战案例-批量下载网易云榜单音乐保存至本地
294 1
|
Python
python股票量化交易(7)---K线图:乌鸦、乌云压顶、十字星
python股票量化交易(7)---K线图:乌鸦、乌云压顶、十字星
1601 0
python股票量化交易(7)---K线图:乌鸦、乌云压顶、十字星