在zwPython2020中,股票数据下载更新时,所读取的股票列表文件的目录位置为“zwPython\TQDat\TQDown2020v1\data\tq_wrk_code.csv”。该文件的更新时间为2018年12月,打开后我们可以看到共列出股票3567只。我们如果用这个文件来获取股票数据,会遗漏近一年多新上市的股票,并且会下载这段时间内已经退市的股票数据。如果想获取当前正常上市交易的所有股票的数据,就需要我们对该文件进行更新。本文将介绍更新A股股票列表数据的流程。

  1. 注册Tushare账户

zwPython已经做好了对Tushare的集成,我们就使用Tushare下载股票列表。为了后续使用Tushare的高阶功能,我们首先注册Tushare的账户(有需要的读者可以用这个链接注册 )。

注册后会获得100积分,修改个人信息后,会再获得20积分。有了这120积分,就有资格进行基本的数据获取工作。但是如果想获取更高阶的功能权限,就需要更多的积分了。比如获取指数的日线数据需要200积分,获取基金列表需要1500积分。获取数据不会消耗积分,这里的积分只是个权限表示,但是有效期只有一年。如果想过去更多积分,可以做推广、代码贡献、社区维护等工作,具体可以参见Tushare的网站。

注册后,在个人主页里就能找到分配的Token,后面程序初始化Tushare时会用到:

  1. 调用Tushare接口,下载股票列表

在zwPython的股票列表文件中,只保留了股票代码(code)、股票名称(name)、交易所代码(sse)、类型(sec)4列数据:

因此在调用Tushare接口获取股票基础数据时,我们也只保留这4列数据:

import pandas as pd
import tushare as ts
# Tushare初始化,需要将XXX更换为自己的Token
pro = ts.pro_api('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
# 获取正常上市交易的股票基础数据
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name')
# 设置类型
data['sec'] = 'stock_cn'
# 重命名列名,与zwPython保持一致
data = data.rename(columns={'symbol': 'code', 'ts_code': 'sse'})
# 更新交易所代码列
data['sse'] = data['sse'].str.lower().str[-2:]
# 调整列顺序
data = data[['code', 'name', 'sse', 'sec']]
# 写入文件
data.to_csv('..\TQDat\TQDown2020v1\data\stock_code_update.csv', index = False, encoding = 'gbk')

我们将更新后的股票列表保存到了“zwPython\TQDat\TQDown2020v1\data\stock_code_update.csv”文件中。更新时间为2020年3月21日,更新后的股票列表可以看到有3797只股票,比更新前的3567多出了200多只,其中也包含了科创板的股票信息:

  1. 更新股票数据

在更新股票数据时,我们直接把原“zwPython\TQDat\TQDown2020v1\tqdown_day.py”中的第41行代码修改为:

finx=script_path + '/data/stock_code_update.csv'

我们这里引入了新的变量script_path,是为了方便在VSCode下可以直接运行Python文件,而不需要再切换工作目录。在“zwPython\TQDat\TQDown2020v1\tqdown_day.py”引入TopQuant包的部分修改为如下代码:

#  TopQuant
script_path = os.path.dirname(os.path.abspath(sys.argv[0]))
topqt_path = os.path.join(script_path, './topqt/')
sys.path.append(topqt_path)
import topquant2019 as tq
import topq_ddown2019 as tqdown

然后直接运行tqdown_day.py,就可以下载更新所有正常上市交易的A股日线数据了,具体可参加本系列笔记(2)。

为了便于相互交流学习,新建了微信群,感兴趣的读者请加微信。

Python量化交易学习笔记(21)——A股股票列表更新相关推荐

  1. Python量化交易学习笔记(1)

    Python量化交易学习笔记(1) http://zwpython.com/ http://www.topquant.vip/?p=2275 [更多参见] <zwPython,目前最好的py开发 ...

  2. Python量化交易学习笔记(36)——backtrader多股回测避坑3

    本文继续记录多股回测时可能遇到的异常情况. 坑描述 多股回测时,当日期达到所有股票的技术指标都能够计算出有效值后,backtrader才开始进行回测.由于这种逻辑的存在,如果某些股票在回测周期的最后几 ...

  3. python量化交易学习笔记_Python量化交易学习笔记(45)——深度学习挖短线股5

    前4篇文章分别记录了利用深度学习挖短线股的数据预处理.模型训练.结果预测及策略回测过程,本文记录根据筛选短线股票的过程. 选股流程 1.股票数据下载更新 例如现在是2020年11月23日19:00,我 ...

  4. Python量化交易学习笔记(45)——深度学习挖短线股5

    前4篇文章分别记录了利用深度学习挖短线股的数据预处理.模型训练.结果预测及策略回测过程,本文记录根据筛选短线股票的过程. 选股流程 1.股票数据下载更新 例如现在是2020年11月23日19:00,我 ...

  5. Python量化交易学习笔记(19)——连续下跌买入止盈止损卖出策略

    好友提出要验证连续下跌买入止盈止损卖出策略,本文对该策略回测和实现做分析记录. 买入条件中,连续下跌定义为收盘价连续4日低于前1日的收盘价.卖出条件中,止盈率设置为10%,止损率设置为5%.回测初始资 ...

  6. Python量化交易学习笔记(18)——放量突破布林线中轨买入策略

    本文将探索新的策略回测程序,主要是为了尝试不同的技术指标在backtrader平台上的应用,为后续复杂策略的实现做准备. 本文将实现的策略是,当股票放量突破布林线中轨时进行买入,当股票收盘价低于短期均 ...

  7. Python量化交易学习笔记(2)——A股数据下载

    由于笔者只接触过A股交易,因此本系列笔记仅针对A股交易展开.笔者的计算机为Windows 10 64位操作系统. TOP极宽量化总群(124134140)群文件中提供了大量的学习资料,一眼看去有点懵圈 ...

  8. Python量化交易学习笔记(46)——通达信日线数据获取

    序 从2020年初开始接触量化,马上就要满一年了.在这一年里,想过去做量化,想过去做机器学习,想过去做少儿编程教育.就这样大概折腾了小半年时间,最后在CSDN上看到这样一句话:"你把时间投在 ...

  9. Python量化交易学习笔记(33)——backtrader仓位管理

    本文将对backtrader的仓位管理进行介绍,具体以同时回测交易3只股票为例,查看每日仓位情况. 策略 买入条件:5日线金叉60日线 卖出条件:5日线死叉60日线 示例 仓位信息输出的核心代码位于策 ...

最新文章

  1. 优秀代码的必知必会(一)?
  2. php 静态方法继承,php 5.2中的类继承:重写扩展类中的静态变量?
  3. Mac pro 上安装 robotframework 时的一个版本问题
  4. 去除警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
  5. 05APR2022 日期格式这样的怎么转换成日期?
  6. 数据中心业界迎来机器学习工具
  7. Python Django通过牵引文件查看建表sql语句的命令sqlmigrate
  8. 记录 centos samba 安装
  9. springboot入门程序
  10. Mac截图高端操作,这些技巧你绝对不知道!
  11. linux 2.6内核进程调度,Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片,...
  12. 云时代下,移动云揭秘数据库“新解”
  13. 《Effective Java 3rd》读书笔记——创建和销毁对象
  14. javascript配置ckfinder的路径
  15. linux c 开发
  16. 纪念日或悼念人网页变灰仅需一行代码
  17. 微习惯--简单到四个
  18. 华为OD机试题 - 找出重复代码(JavaScript)| 包含代码编写思路
  19. C语言 % x的作用,关于c语言%#X意思大全
  20. html5 canvas纯js开发战棋类rpg游戏

热门文章

  1. ie8 阻止java运行_解决IE屏蔽Java Applet问题的方法
  2. Mac上安装R语言运行环境及RStudio [超详细!~]
  3. 不奋发,则心日颓靡;不检束,则心日恣肆 —— 北宋·朱熹
  4. [技术干货] zabbix docker安装详细教程
  5. 分部积分法解决二重积分问题
  6. 极验3forbidden,易盾d包
  7. Android 调用.so包时报错:UnsatisfiedLinkError: No implementation found for XXX 时的解决办法
  8. 6.10力扣 10号出去逛街了,11号补上! 打印n位数
  9. 【C++】三大易混概念之覆盖
  10. Windows使用SSH登录VM虚拟机