Python抓取美股数据 [Daily data] [Tushare数据社区]

目录

1. Failed Test [python pkg yfinance]

1.1 install pkg

1.2 yfinance无法使用

2. Successful Test [python pkg tushare]

2.1 安装pkg

2.2 注册tushare账号

2.3 python code

美股行情

3. Other

3.1 python相关问题

3.1.1 字典(dict)和集合(set)

3.1.2 datetime 用于时间处理

3.1.3 python快捷键

3.1.4 python绘图

        a. matplotlib基本知识

        b. 坐标轴+子图设置

        c. 折线图+数据标签

        d. 网格线设置

        e. 竖直、水平线绘图

        f. 保存图像

3.1.4 excel处理【xlrd】

3.2 其他参考

3.2.1 CS自学指南

3.2.2 量化

3.2.3 Pytorch

3.2.4 聚类之DBSCAN


Alex Wang. (2023.7.7)

1. Failed Test [python pkg yfinance]

        尝试了用python的yfinance包来扒取美股数据,但是尝试失败了。

        以下介绍使用yfinance的步骤,可以尝试一下。

        如果想直接看用tushare实现扒取,请跳到第2部分。

1.1 install pkg

import yfinance as yf

yf.download("AAPL", start='2020-01-01', end='2021-01-01')

        使用yfinance的步骤如上,需要import一个包,在pycharm中直接下载即可。

        如果conda下载失败 [代理错误:ProxyError],可参见:

两种方法解决Anaconda安装库出现ProxyError错误

1.2 yfinance无法使用

        此时遇到一个问题:

[*********************100%***********************]  1 of 1 completed

1 Failed download:
['AAPL']: Exception('%ticker%: No price data found, symbol may be delisted (1d 2020-01-01 -> 2021-01-01)')

        查阅相关资料,目测是因为国内雅虎终止了服务。       

        因此需要科学上网解决该问题,参见:

yfinance 国内使用,下载雅虎财经数据

        然而本人经过尝试,依然没有使yfinance正常使用,于是转头前往找寻其他数据库。

2. Successful Test [python pkg tushare]

        主要参考资料:

如何利用python抓取美股数据

        也可以不看这个,跟着下面的步骤来

2.1 安装pkg

        首先安装python的tushare包

        Step1. Win+R打开cmd

        Step2. pip下载

C:\Users\xxxxx>conda activate C:\anaconda\envs\torch

(torch) C:\Users\xxxxx>pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple

        先active conda,本人是在torch下pip下载tushare的包,采用清华源

        其他下载pkg的方式参见:下载安装tushare pkg

2.2 注册tushare账号

        采用了一个开源的数据社区Tushare,提供了免费的daily股票数据,但monthly或yearly的数据需要积分兑换。

        因此,对于量化初学者,扒取daily的数据即可,以下将介绍如何应用该网站获取账户。

        注册账户,获取token:注册链接

        a. 注册界面:

         b. 保存token:获取token

2.3 python code

        将2.2.b中获得的token写入pro_api(...),即可访问【注意不要过于频繁扒取数据】 

import tushare as ts

pro = ts.pro_api('input your own token at this place')
# aapl = pro.us_basic(ts_code='AAPL',start_date='2022-01-01',end_date='2023-01-01')
df = pro.us_daily(trade_date='20230705')
print(df)

         上述代码扒取了美股日线行情数据

美股行情

接口:us_daily
描述:获取美股行情(未复权),包括全部股票全历史行情,以及重要的市场和估值指标
限量:单次最大6000行数据,可根据日期参数循环提取,开通正式权限后也可支持分页提取全部历史
要求:120积分可以试用查看数据,开通正式权限请在QQ群联系群主或积分管理员。

        得到如下数据:

     ts_code trade_date   close  ...       vol       amount    vwap
0      UMEWF   20230705     NaN  ...      10.0          NaN     NaN
1        NSP   20230705  116.70  ...  104352.0  12227289.07  117.17
2      HANNF   20230705    0.21  ...   59100.0     11774.49    0.20
3       MATX   20230705   76.50  ...  267050.0  20553314.98   76.96
4       MICR   20230705    1.52  ...     280.0       431.20    1.54
...      ...        ...     ...  ...       ...          ...     ...
5995     SCI   20230705   64.23  ...  792982.0  51067963.88   64.40
5996   OVCHY   20230705   18.03  ...   27581.0    500761.24   18.16
5997    AMWL   20230705    2.03  ...  919098.0   1873673.18    2.04
5998  GLTA.U   20230705     NaN  ...       NaN          NaN     NaN
5999   UPTDU   20230705   10.71  ...     680.0      7237.85   10.64

        可以综合使用pandas保存到csv中,参见:
Pandas: 强大的 Python 数据分析支持库 | PandasPandas中文网、Pandas官方中文文档。https://pypandas.cn/docs/        由于平台限制,部分数据需要积分获取:Tushare数据(平台积分)

        同样,平台提供免费代码生成功能:Tushare数据工具

3. Other

最近在投量化的实习(玩玩),因此分享一些最近用到的参考文档。

3.1 python相关问题

pandas学习文档【很全面】:Pandas: 强大的 Python 数据分析支持库 | Pandas

基础教程【理解变量、语句】:Python 基础教程 | 菜鸟教程

3.1.1 字典(dict)和集合(set)

Python之字典添加元素_python字典添加元素

Python—哈希表的应用(字典与集合)_python 哈希表

3.1.2 datetime 用于时间处理

Python 日期时间 【datetime使用】

3.1.3 python快捷键

        a. pycharm(Python) 常用快捷键使用

        b. 格式化代码+常用快捷键

3.1.4 python绘图

        a. matplotlib基本知识

        Python 各种画图_python画图_流浪猪头拯救地球的博客-CSDN博客

        b. 坐标轴+子图设置

        matplotlib.pyplot详解_千禧皓月的博客-CSDN博客

        c. 折线图+数据标签

        【python】画折线图_python绘制折线图_AXIMI的博客-CSDN博客

        d. 网格线设置

        Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())_南阜止鸟的博客-CSDN博客

        e. 竖直、水平线绘图

        Python 使用 Matplotlib 做图时,如何画竖直和水平的分割线? - 知乎 

        f. 保存图像

        Python Matplotlib 中如何用 plt.savefig 存储图片_码农研究僧的博客-CSDN博客

3.1.4 excel处理【xlrd】

        python读取excel表格数据_python读取表格数据_Swlaaa的博客-CSDN博客

        还是推荐用pandas,一般还是避免用xlrd吧

3.2 其他参考

3.2.1 CS自学指南

        北大信科学长巨作,十分全面:CS自学指南

3.2.2 量化

        复旦量化投资协会共享信息:企业招聘信息平台

        量化必刷【绿皮书】:A Practical Guide to Quantitative Finance Interviews

3.2.3 Pytorch

        学习参考(CN):主页 - PyTorch中文文档

        学习参考(EN):Welcome to PyTorch Tutorials

3.2.4 聚类之DBSCAN

        DBSCAN介绍及sklearn库中的使用

本作者为该文章原创作者,保留对该文章所有权,非经允许,不得转载 (Alex Wang.2023)

### 使用Python免费获取股票数据 为了实现这一目标,可以利用多个第三方库来简化过程并提高效率。以下是几种常用方法: #### 方法一:使用 `yfinance` 库 `yfinance` 是一个非常流行的用于下载市场数据的库,支持多种金融产品的历史和实时价格查询。 安装该库可以通过 pip 命令完成: ```bash pip install yfinance ``` 下面是一个简单的例子展示如何通过此库获得特定公司的股票信息: ```python import yfinance as yf def fetch_stock_data(ticker_symbol, period="1mo"): ticker = yf.Ticker(ticker_symbol) hist = ticker.history(period=period) return hist data = fetch_stock_data('AAPL') print(data.tail()) ``` 这段代码会打印苹果公司最近一个月的历史股价记录[^2]。 #### 方法二:采用 Tushare Pro API (部分功能免费) Tushare 提供了一个强大的API接口访问中国A股市场的各种公开数据资源。尽管某些高级特性可能需要付费订阅,但对于基础的数据请求来说仍然是完全免费的。 注册账号后可得到个人专属token,之后便能轻松调用其服务端口进行数据抓取工作。 ```python from tushare import pro_api pro = pro_api('your_token_here') df_daily = pro.daily(ts_code='600519.SH', start_date='20230101', end_date='20230701') print(df_daily.head()) ``` 上述脚本展示了怎样从Tushare获取贵州茅台(股票代码600519)自年初以来的日K线图数据。 #### 方法三:借助 Baostock 平台 Baostock 同样是国内知名的证券资讯提供商之一,允许开发者们以较低的成本甚至零成本的方式接入自家数据库中的海量财经资讯。 同样先要申请账户取得合法授权密钥才能正常使用各项服务。 ```python import baostock as bs bs.login() rs = bs.query_history_k_data_plus("sh.600519", "date,code,open,high,low,close,volume", start_date='2023-01-01', end_date='2023-07-01') result_list = [] while (rs.error_code == '0') & rs.next(): result_list.append(rs.get_row_data()) bs.logout() for row in result_list[:5]: print(row) ``` 这里给出了一段用来检索同一时间段内相同标的物每日收盘价变动情况的小程序片段。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值