量化投资基础之常见金融数据读取方式(端口)

量化投资基础之常见金融数据读取方式(端口)点赞 关注再看 养成良好习惯 Life is short U need Python 1 前言 作为投资者 尤其是量化投资者 时常听到的一句话是 不要把鸡蛋放入同一个篮子中 即所谓的分散投资策略 于是 从中可以看出分散投资可以降低投资风险 但是

大家好,我是讯享网,很高兴认识大家。
  • 点赞、关注再看,养成良好习惯
  • Life is short, U need Python

1. 前言

作为投资者,尤其是量化投资者,时常听到的一句话是“不要把鸡蛋放入同一个篮子中”,即所谓的分散投资策略。于是,从中可以看出分散投资可以降低投资风险,但是,投资者面对几千种各式各样的篮子,选择哪一个篮子,然后每个篮子该放多少个鸡蛋,大多数投资者仅仅凭自己的感觉或者一时冲动;另外,即使投资者选对篮子且鸡蛋数量也控制的很好,可是何时把手里的鸡蛋换成超额收益又是跟着感觉走。针对上述种种问题,量化投资破壳而出,专门解决上述问题的一种工具。

众所周知,金融数据是量化投资的基础和前提,投资者制定的量化投资策略都是建立在对金融数据分析的基础上。本文博主将带领大家尝试如何利用Python实现金融数据的获取。

据博主所知,目前在线编程量化投资平台众多,而且各种在线策略平台都支持Python语言(而且大多策略平台仅支持Python语言,且对应的Python课程资源以及策略案例众多,社区非常活跃),例如JoinQuant(聚宽量化交易平台)、BigQuant(点宽量化交易平台)、UQER(优矿量化交易平台)、WQ(万矿量化交易平台)等,这也是博主推出Python量化投资基础系列的原因。但是,本文不再涉及利用Python调取这些平台端口的金融数据(因为这些平台需要注册,且每天流量有限制,速度有点慢)。

2. 雅虎网

(1)官网:https://www.yahoo.com/

(2)安装 pandas-datareader

  • 命令行窗口:pip install pandas-datareader(建议)
  • 下载本地安装:https://pypi.org/project/pandas-datareader/

(3)读取数据

import pandas_datareader.data as pdr # 读取标普500 sp500 = pdr.DataReader(name='^GSPC',data_source='yahoo',start='1/1/2020',end='2/26/2020) # 查看数据前5行 sp500.head() # 输出数据 sp500.to_csv('sp500.csv') 

讯享网

或者

讯享网import pandas_datareader.data as pdr # 读取标普500 sp500 = pdr.get_data_yahoo('^GSPC',start='1/1/2020',end='20/2/2020') # 查看数据前5行 sp500.head() # 输出数据 sp500.to_csv('sp500.csv') 

在这里插入图片描述
讯享网

  • 上证、深证标的
import pandas_datareader.data as pdr # 读取浦发银行:(上证) stock_ = pdr.get_data_yahoo('.ss','1/1/2015','20/8/2015') stock_.head() # 读取广发证券:000776(深证) stock_000776 = pdr.get_data_yahoo('000776.sz','1/1/2015','20/8/2015') stock_000776.head() 

3. TuShare

考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas DataFrame类型。

(1)官网:http://tushare.org/

(2)安装 tushare

  • 命令行窗口:pip install tushare
  • 下载本地安装:https://pypi.python.org/pypi/tushare/

(3)读取数据

讯享网import tushare as ts # 读取中国平安()数据 zgpa = ts.get_hist_data('', start='2019-01-01', end='2019-02-20') # 查看数据前5行 zgpa.head() # 输出数据 zgpa.to_csv('zgpa.csv') 

或者

import tushare as ts # 读取中国平安()数据: ktype='D'/'W'/'M'(日/周/月); 默认日线数据 zgpa = ts.get_hist_data('', start='2019-01-01', end='2019-02-20', ktype='D') # 查看数据前5行 zgpa.head() # 输出数据 zgpa.to_csv('zgpa.csv') 

在这里插入图片描述

  • 注: "ts.get_hist_data"接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
讯享网import tushare as ts # 事先安装:pip install tushare pro = ts.pro_api() df_000776 = pro.daily(ts_code='000776.SZ', start_date='', end_date='') # 日线数据 df_000776 = pro.weekly(ts_code='000776.SZ', start_date='', end_date='') # 周线数据 df_000776 = pro.monthly(ts_code='000776.SZ', start_date='', end_date='') # 月线数据 df_000776.head() 

4. BaoStock

(1)官网:http://baostock.com/baostock/index.php

(2)安装baostock

  • 命令行窗口:pip install baostock
  • 下载本地安装:https://pypi.python.org/pypi/baostock

(3)读取数据

import baostock as bs # 无需注册,直接输入此行代码即可 lg = bs.login(user_id="anonymous", password="") # 浦发银行数据():frequency=’d'/'w'/'m'(日/周/月) # 选取特征 fields = 'date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST' rs = bs.query_history_k_data('sh.',fields,start_date='2019-01-01', end_date='2019-02-20', frequency="d") # 获取数据 pfyh = rs.get_data() # 查看数据前5行 pfyh.head() # 输出数据 pfyh.to_csv('pfyh.csv') 

在这里插入图片描述

  • date(日期);code(代码);open(开盘价);high(最高价);high(最高价);low(最低价);close(收盘价);preclose(前收盘价);volume(成交量);amount(成交额);adjustflag(复权状态:1-后复权2-前复权3-不复权);turn(换手率);tradestatus(交易状态:1-正常0-停盘);pctChg(涨跌幅);peTTM(动态市盈率);pbMRQ(市净率);psTTM(市销率);pcfNcfTTM(市现率);isST(是否ST:1-是0-否)

  • 写作不易,切勿白剽
  • 博友们的点赞关注就是对博主坚持写作的最大鼓励
  • 持续更新,未完待续…

下一篇:量化投资基础(一)之 K线图策略

小讯
上一篇 2025-01-14 12:50
下一篇 2025-02-09 11:48

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46824.html