从网上获取和绘制股票价格数据(步骤图解)

发布时间: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

1

  ## 安装和登录baostock

  我们需要安装python的baostock这个包:

2

  然后,我们就可以查询我们需要查询的数据了,比如我想查询沪深300从2015年1月1日,到今天的数据,我可以打开ai,直接问它:

  使用baostock库,查询沪深300指数从2015年1月1日,至2023年5月2日,每日的价格数据(日期,开盘价、收盘价、最高价、最低价),输出为一个csv文件,用python实现,请给出具体代码

  它会非常快速的给你完整的代码,这些代码可以直接复制运行的。

3

  然后无脑的复制代码到PyCharm,运行。

  如果出现报错,直接将错误提示复制会AI问它解决方案。根据它提供的解决方案,一般可以很快解决。

4

  因为我要求查询以后,直接生成一个SCV文件,程序运行完成以后,我们会在同一个文件夹下得到一个包含所有需要查询的数据的csv文件。

  需要查询的内容都是可以自行定义的,非常的省时省力。

  (代码我放在最后)

5

  ## 绘制数据

  有了数据之后,我们就可以对它进行分析和可视化了。比如,我们想看看沪深300指数的收盘价走势图

6

  导出沪深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()



下一篇:实现双均线回测(附python代码)

上一篇:《常识的力量》投资的无效和有效策略