从网上获取和绘制股票价格数据(步骤图解)
发布时间:2023-05-25 07:14:59
大家好,我们做量化投资研究的第一步,就是获取数据,因为没有数据就没有分析的基础。
看网上的资料,很多策略它的逻辑其实比较简单,但是我们需要进行分析的时候,却需要花大量的精力在数据上。量化交易数据就是你用来做交易的信息,它分两种:市场数据和另类数据。
市场数据就是告诉你股票的价格、成交量、涨跌幅等信息,它是量化交易的基础,可以让你知道市场的情况,做出合理的决定。市场数据可以从很多地方找到,通过查询和搜索,目前我知道的比较好用的A股数据接口有:
目前还免费的,使用比较方便的有:
Baostock
Akshare
tushare免费版
不免费或者使用起来有一定门槛的:
tushare pro
各大量化平台
行情软件提供的数据服务
另类数据就是除了市场数据以外的其他信息,它们通常告诉你一些特别的信息,比如网上的评论、新闻事件、经济指标、网购销售等。
另类数据可以让你看到市场上别人看不到的东西,比如一些市场情绪数据、增发、分红等数据。另类数据的找和用通常需要更多的技术和创新,也需要更多的验证和测试。
总之,量化交易数据是量化交易的核心要素,没有好的数据,就没有好的交易。某种程度上来说,量化交易者需要不断地找、用、处理、分析各种类型的数据,找到别人忽视的数据,以提升自己的交易能力和竞争优势。
量化交易是用电脑和数学公式来买卖股票,以前很多人觉得这很难,因为要会编程。但是现在有了AI,这些都不是问题了,你可以直接和AI聊天,让它告诉你需要的信息。
比如你想查一些股票的历史数据,你就可以用AI,它会用Python这种编程语言和baostock这个数据平台,帮你写代码。
首先我们可以看下baostock数据宝,官网链接如下:
http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5
## 安装和登录baostock
我们需要安装python的baostock这个包:
然后,我们就可以查询我们需要查询的数据了,比如我想查询沪深300从2015年1月1日,到今天的数据,我可以打开ai,直接问它:
使用baostock库,查询沪深300指数从2015年1月1日,至2023年5月2日,每日的价格数据(日期,开盘价、收盘价、最高价、最低价),输出为一个csv文件,用python实现,请给出具体代码
它会非常快速的给你完整的代码,这些代码可以直接复制运行的。
然后无脑的复制代码到PyCharm,运行。
如果出现报错,直接将错误提示复制会AI问它解决方案。根据它提供的解决方案,一般可以很快解决。
因为我要求查询以后,直接生成一个SCV文件,程序运行完成以后,我们会在同一个文件夹下得到一个包含所有需要查询的数据的csv文件。
需要查询的内容都是可以自行定义的,非常的省时省力。
(代码我放在最后)
## 绘制数据
有了数据之后,我们就可以对它进行分析和可视化了。比如,我们想看看沪深300指数的收盘价走势图
导出沪深300的数据的详细代码如下:
# 导入baostock库
import baostock as bs
# 登录系统
lg = bs.login()
# 查询沪深300指数的开盘价、收盘价、最高价、最低价
rs = bs.query_history_k_data_plus("sh.000300",
"date,open,close,high,low",
start_date='2015-01-01',
end_date='2023-05-02',
frequency="d")
# 创建一个空列表,用于存储结果
data_list = []
# 循环读取结果
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录添加到列表中
data_list.append(rs.get_row_data())
# 登出系统
bs.logout()
# 导入csv库
import csv
# 创建一个csv文件对象
f = open('hs300.csv', 'w', encoding='utf-8', newline="")
# 创建一个csv写入对象
csv_writer = csv.writer(f)
# 写入表头
csv_writer.writerow(["date", "open", "close", "high", "low"])
# 写入数据
csv_writer.writerows(data_list)
# 关闭文件对象
f.close()