肝了这篇文章,我们一起来炒股!

作为一名老股民,我总是希望利用我掌握的技术来辅助决策,获取更好的收益。但是苦于股票数据来源难搞,之前用 python 爬取东方财富网、网易财经、同花顺的数据,虽然放在一起可以凑齐所需数据,但是不稳定。一方面是网站处于变化之中,爬虫需要随时应变,另一方面,网站的反爬也是越来越严格,导致以前可以获取的数据,现在获取不到。总之,干这种事情就是两个字——苦逼。最近,找到一个靠谱来源——聚宽,通过 API 的方式获取数据,能够基本满足需求,并且也比较稳定。

聚宽介绍

聚宽是一个量化交易平台,其网址是:https://www.joinquant.com/ 。 围绕着量化交易,该平台有以下这些模块:

  • 新手教程。聚宽提供了零基础量化交易入门课程以及量化课堂。前者提供了基本满足写入门量化策略所需的技术教程,后者提供了编程,数学,策略实例,统计研究,金融市场等量化相关的知识。
  • 聚宽社区。社区论坛,可以与爱好者一起交流。
  • 聚宽数据。详细介绍聚宽平台提供的多种数据服务。可以调用历史数据实现模型的回测。
  • 策略商城。策略交易商城,你可以在这里购买别人写好的策略,也可以在这里出售自己的策略。
  • 实盘交易。将自己的策略接入实时行情数据进行交易。

简单来讲,聚宽就是围绕着量化交易提供一站式服务。而我最关心的是聚宽数据,这是解决我股票数据问题的核心解决方案。获取到数据之后,我可以按照我自己的个性化需求,写程序去实现。

使用聚宽

首先需要注册网站,这个自不必说了,大家都会。注册之后登陆网站,进入首页,如下图:

首页

我的关注点在“数据字典”一栏,这里面是聚宽网站收录的各种数据。我们点击数据字典,进入到“股票数据”页面:

股票数据

这个页面的左侧为数据信息目录,点击左边的菜单,右边会自动跳到该数据信息处,在这里你可以看到调用该数据的方法、参数、返回信息和示例。例如,获取单只股票数据信息如下:

获取单只股票信息

了解了数据获取方法,我们就可以写程序了。

在首页,我们可以看到“我的研究文件”一栏,你可以理解为这是你写的项目列表。

我的研究文件

点击“进入研究环境”,就可以进入到我们的研究界面了,这里面有三个栏目,分别是:

  • 文件。这是我们写的研究项目列表。
  • 运行。当前正在运行的策略,或者说项目。注意我们被分配的内存只有1G,所以只运行必要的策略,节约使用内存。
  • 回收站。删除过的策略。在这里可以彻底删除策略,或者还原删除的策略。

我们来看一下这个界面的截图:

研究环境

下面讲讲我们怎么操作策略。

  • 新建策略。点击页面左上角的“新建”,出现下拉列表,我们可以新建文件夹、文本文件和 python 的 Notebook 文件。我们写程序当然是新建 python 文件,这里可以根据自己的需求选择 python2 或者 python3 的版本。我们点击 python3 ,进入编辑策略页面。

  • 编辑策略。这个页面是 Jupyter Notebook 格式的,我们可以写一行运行一行。这个用过的都知道,方便 debug 。我们尝试着写几行代码,获取股票平安银行的信息,并打印股票名称:

1
2
3
4
5
6
from pprint import pprint
from jqdata import *

data = get_security_info('000001.XSHE')
print(data.display_name)

  • 运行策略。点击页面菜单栏的“运行”,就可以运行当前的代码了,我们运行指挥,就会输出“平安银行”,如图所示:

运行策略

  • 其他操作。我们回到“我的研究文件”页面,勾选某个策略,上方菜单栏就会出现相关的操作:复制、关闭、视图、编辑、移入回收站,这些就留给大家去尝试了。

  • 我们还可以将策略文件导出到本地以及从外部导入策略文件。

掌握了上面这些操作,你就可以自己试着在线编写策略以及运行策略了,这时候你是不需要关心数据问题的,只需要掌握调用数据的方法即可。

本地化使用

掌握了以上技能之后,我们可以在线运用聚宽提供的数据编写策略以及使用运行。但是还没有达到我的目标,我需要获取到数据到本地,然后在我自己的编辑器上进行随意的使用历史数据。这个需求能不能满足呢?

我告诉你:安排!

我们的主角是 JQData,是一套能在本地调用的全品种量化金融数据。我们只需要本地安装这个包,就可以在本地的编辑器使用聚宽的数据了,这也意味着我们可以将获取到的数据转存到本地。

要使用 JQData,我们首先要进行申请,在 https://www.joinquant.com/default/index/sdk 这个页面的最底部进行申请,申请之后我们会获取到权限相关的账号密码,在本地使用的时候申请授权就可以了。

当然,申请之后我们只有一年的免费试用权限,一年之后要进行收费了。这一年之中,我们每天也是有额度限制的:单账号可同时开启连接数为3个,每天调用数据条数上限为100万条,可查询数据范围为2005年至今。

尽管有这些限制,我的想法是先用一年再说,一年之后如果有所成就那也不在乎交费了,如果一无所成,那也没必要继续研究下去了。

说一下两种获取历史数据的方法。

第一种是,每天获取数据上限是100万条,那么我每天可以将额度用完,每天获取一部分历史数据,通过一段时间的运行,我就可以将所有历史数据都获取到本地了,以后只用获取每天的增量数据就行。

第二种是,我可以申请几个不同的账号,每个账号获取不同的数据,就可以拓展我每天获取数据的上限了。

当然,如果你不需要获取历史数据,你可以直接在本地写 python 运行自己的策略,个人觉得本地写 python 比在线写方便,因为本地有上下文提示,有错误提示等等线上不具备的能力。

总结

本文给大家讲了一下聚宽平台的简单实用方法以及如何使用聚宽平台获取股票相关的历史数据。大家如果对炒股感兴趣的话,可以尝试一下使用 python 进行股票数据分析以及一些策略模型的研究。这样一方面可以让我们学有所用,用 python 去解决实际问题,提高编程能力;另一方面或许通过研究可以辅助自己对股票买卖的决策,亦或是建立起自己可持续盈利的股票模型。

Python Geek Tech wechat
欢迎订阅 Python 技术,这里分享关于 Python 的一切。