路过的大兄弟好,我是阿尔法电波脑,现在是宅家学习量化投资的73天。

最近这一个月有点松懈了哈,这个月开始想改变一下之前闭门造车式的学习,用通俗易懂的话在B站、CSDN上分享自己的所学所思所想,并用采用边做边记录的形式。那么话不多说直接进入正题。

  • 实现功能:用tushare(一个免费开源的股票数据接口),在本地建立股票数据库。

一、问题:避免重复调取数据

首先股票数据调取过程为:1、通过接口获取数据。2、保存股票数据。

所以我的思路是创建或更新文件时,记录下文件位置和修改时间,以供下次更新数据时做为判断条件,下面来一步一步实现。

  1. 获取股票列表

首先先定义获取股票列表的函数

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)

到这里我们就得到了更新股票数据所需的,股票代码。

在下一个篇章我会继续介绍如何批量获取股票数据。

宅家自学量化投资 - 建立股票数据库 (上)相关推荐

  1. 自学量化投资之旅 - 建立股票数据库 (下)

    路过的大兄弟好,我是阿尔法电波脑.昨天我已经把要获取的股票代码,以及上市退市日期的数据整理到本地了.今天我将根据这份列表,批量获取股票数据,建立自己的本地股票数据库.那正式开始吧! 功能:根据股票列表 ...

  2. 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看

    原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...

  3. python线上课程-零基础学Python量化投资,超值线上课程反复回看

    原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...

  4. Python量化投资与股票量化实战|StudyQuant

    <<<****[点击]传送门-加入 Python量化投资与A股量化实战课程(网易云课堂)>>>>> Python量化投资与A股量化实战课程概述 越来越多 ...

  5. 自学量化投资之旅 - 建立股票数据库 (拓展)

    今天在学习策略开发的时候发现一个问题,下面这张是获取的股票数据 可以看出日期是按照降序进行排列的,这对后期策略的开发不是很友好.当然如果在读取数据后再进行升序的处理也是可以的哈,不过我个人是比较倾向于 ...

  6. 自学量化投资之旅-计算股票的复权价

    在学习策略的开发之前,有一个必须要做的事,那就是对股票价格进行复权.tushare有提供复权数据的,不过鉴于很多软件对于复权处理都存在一些问题,(不知道tushare是否和其他的软件不一样,欢迎指正) ...

  7. 量化投资:股票投资组合优化与评估

    Portfolio Optimization and Performance Evaluation 这个文本主要讨论了投资组合优化和表现评估.为了在市场条件下测试策略,需要模拟算法进行交易并验证其表现 ...

  8. python量化投资实战-股票实盘分析

    数据库设计 CREATE TABLE `stock_lowest` (`stock_code` VARCHAR(50) NOT NULL COMMENT '股票代码' COLLATE 'utf8_un ...

  9. 量化投资和主观投资到底有什么区别?

    摘要:量化投资作为一个新兴行业,在中国近几年得到长足发展,但由于时间较短,很多从业者和机构投资者都没有对这个行业有着充分的理解,本文会试图对量化投资是什么,超额收益的来源,量化投资和主观调研型投资的区 ...

最新文章

  1. head和tail命令详解
  2. Apache VFS:基本介绍
  3. Scikit-Learn机器学习入门
  4. Webkit之Frame
  5. Eclipse正式代替Oracle接管Java EE
  6. 怎样进入金蝶服务器修改参数,金蝶KIS专业版的系统参数在哪里设置
  7. 3D建模电脑配置推荐(收藏)
  8. 宋朝人物第一,朱熹都说他是“天地间第一流人物”
  9. 什么是增量绩效管理?华为是如何做
  10. c语言出现源文件未编译,dev运行C语言出问题
  11. matlab c1083,致命錯誤C1083:不能打開包含文件:'mexutils。沒有這樣的文件或目錄。...
  12. 如何将DVD的vob视频格式转换成mp4格式
  13. svg中marker元素的理解
  14. JavaScript实现简单星星闪烁特效
  15. 彻底删除aws亚马逊服务器使之不再计费
  16. order by(排序查询结果)和LIMT
  17. mysql --show-warnings=false_SHOW WARNINGS语句
  18. 多线程专题之线程死锁原因之谜
  19. hp计算机如何进入启动界面,BIOS使用之HP BIOS篇-惠普电脑怎么进入bios
  20. 软件工程作业二——结对编程(用HTML5搭建3D俄罗斯方块)

热门文章

  1. 『网易实习』周记(四)
  2. 模具保护器国内十大厂家排名榜
  3. 计算机类学术论文 28个常见出版社一般写法(参考文献用)
  4. VMware16 NAT端口映射外网访问虚拟机Centos7
  5. h5隐藏video控制按钮controls(腾讯云点播禁用video音量全屏等按钮)
  6. idea控制台乱码、读取cookie乱码
  7. Java - 在进行数据库编程时,连接池有什么作用?
  8. QLabel 实现单击事件
  9. SQL中UPDATE 语句
  10. 传苹果开发ChatGPT类的AI产品;iPhone 15 Pro系列或将涨价;PyTorch 2.0 发布 |极客头条