宅家自学量化投资 - 建立股票数据库 (上)
路过的大兄弟好,我是阿尔法电波脑,现在是宅家学习量化投资的73天。
最近这一个月有点松懈了哈,这个月开始想改变一下之前闭门造车式的学习,用通俗易懂的话在B站、CSDN上分享自己的所学所思所想,并用采用边做边记录的形式。那么话不多说直接进入正题。
实现功能:用tushare(一个免费开源的股票数据接口),在本地建立股票数据库。
一、问题:避免重复调取数据
首先股票数据调取过程为:1、通过接口获取数据。2、保存股票数据。
所以我的思路是创建或更新文件时,记录下文件位置和修改时间,以供下次更新数据时做为判断条件,下面来一步一步实现。
获取股票列表
首先先定义获取股票列表的函数
def get_stock_list(list_status:tuple=('L')):'''获取股票列表:param list_status: 上市状态:默认'L'上市、D退市、P暂停上市:return: 返回股票列表'''pro = ts.pro_api('xxx')# 列表容器list = []for s in list_status:data = pro.stock_basic(exchange='', list_status=s, fields='ts_code,name,area,industry,list_date')list.append(data)return pd.concat(list)
然后获取股票列表的更新日期进行判断决定是否更新,如果没找到文件则初始化股票列表。这里我是将修改日期直接命名在了文件名上
Tips:运用datatime模块、r模块、os模块
if __name__ == '__main__':# 寻找ts_stock: 找后缀为_tss文件 -> 截取文件日期 -> 判断日期决定是否更新列表# 获取文件所在文件夹files = os.listdir(r'G:\PycharmProjects\DeltaTrader\data\finance')for f in files:file_date = re.search('(^\d{4}-\d{2}-\d{2})_tss', f) # 获取文件指定修改日期# 判断捕获到时间if file_date:date_str = file_date.group(1)date = datetime.datetime.strptime(date_str, '%Y-%m-%d') # 转换为时间类型# 获取对应时间的星期数 和 一年中的第几周 已经当前对应的日期weekday = date.weekday()week_count = date.isocalendar()[1]today = datetime.datetime.today()print(weekday, today.weekday())# 更新日期是否不是今天,则进行更新:不是同一周 or 不是同一星期且更新日期不是星期五if ((weekday != today.weekday()) & (weekday != 4)) or (week_count != datetime.datetime.now().isocalendar()[1]):# 获取股票列表并保存和修改更新日期data = get_stock_list()data.to_csv(r'G:\PycharmProjects\DeltaTrader\data\finance\{}'.format(f), index=False)os.rename(r'G:\PycharmProjects\DeltaTrader\data\finance\{}'.format(f),r'G:\PycharmProjects\DeltaTrader\data\finance\{}_tss.csv'.format(datetime.date.today()))else:print('股票list已是最新')# 结束循环break# 找不到文件则直接获取股票列表else:data = get_stock_list(('l', 'D'))data.to_csv(r'G:\PycharmProjects\DeltaTrader\data\finance\{}_tss.csv'.format(datetime.date.today()), index=False)
到这里我们就得到了更新股票数据所需的,股票代码。
在下一个篇章我会继续介绍如何批量获取股票数据。
宅家自学量化投资 - 建立股票数据库 (上)相关推荐
- 自学量化投资之旅 - 建立股票数据库 (下)
路过的大兄弟好,我是阿尔法电波脑.昨天我已经把要获取的股票代码,以及上市退市日期的数据整理到本地了.今天我将根据这份列表,批量获取股票数据,建立自己的本地股票数据库.那正式开始吧! 功能:根据股票列表 ...
- 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
- python线上课程-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
- Python量化投资与股票量化实战|StudyQuant
<<<****[点击]传送门-加入 Python量化投资与A股量化实战课程(网易云课堂)>>>>> Python量化投资与A股量化实战课程概述 越来越多 ...
- 自学量化投资之旅 - 建立股票数据库 (拓展)
今天在学习策略开发的时候发现一个问题,下面这张是获取的股票数据 可以看出日期是按照降序进行排列的,这对后期策略的开发不是很友好.当然如果在读取数据后再进行升序的处理也是可以的哈,不过我个人是比较倾向于 ...
- 自学量化投资之旅-计算股票的复权价
在学习策略的开发之前,有一个必须要做的事,那就是对股票价格进行复权.tushare有提供复权数据的,不过鉴于很多软件对于复权处理都存在一些问题,(不知道tushare是否和其他的软件不一样,欢迎指正) ...
- 量化投资:股票投资组合优化与评估
Portfolio Optimization and Performance Evaluation 这个文本主要讨论了投资组合优化和表现评估.为了在市场条件下测试策略,需要模拟算法进行交易并验证其表现 ...
- python量化投资实战-股票实盘分析
数据库设计 CREATE TABLE `stock_lowest` (`stock_code` VARCHAR(50) NOT NULL COMMENT '股票代码' COLLATE 'utf8_un ...
- 量化投资和主观投资到底有什么区别?
摘要:量化投资作为一个新兴行业,在中国近几年得到长足发展,但由于时间较短,很多从业者和机构投资者都没有对这个行业有着充分的理解,本文会试图对量化投资是什么,超额收益的来源,量化投资和主观调研型投资的区 ...
最新文章
- head和tail命令详解
- Apache VFS:基本介绍
- Scikit-Learn机器学习入门
- Webkit之Frame
- Eclipse正式代替Oracle接管Java EE
- 怎样进入金蝶服务器修改参数,金蝶KIS专业版的系统参数在哪里设置
- 3D建模电脑配置推荐(收藏)
- 宋朝人物第一,朱熹都说他是“天地间第一流人物”
- 什么是增量绩效管理?华为是如何做
- c语言出现源文件未编译,dev运行C语言出问题
- matlab c1083,致命錯誤C1083:不能打開包含文件:'mexutils。沒有這樣的文件或目錄。...
- 如何将DVD的vob视频格式转换成mp4格式
- svg中marker元素的理解
- JavaScript实现简单星星闪烁特效
- 彻底删除aws亚马逊服务器使之不再计费
- order by(排序查询结果)和LIMT
- mysql --show-warnings=false_SHOW WARNINGS语句
- 多线程专题之线程死锁原因之谜
- hp计算机如何进入启动界面,BIOS使用之HP BIOS篇-惠普电脑怎么进入bios
- 软件工程作业二——结对编程(用HTML5搭建3D俄罗斯方块)