1-玩转Python3金融API应用-查阅easytrader家族系列模块

市场上存在为数众多的金融API,这些API中用python3来编写的也有相当多的数量。在学习了一定python3的基础知识之后,通过阅读他人开发的API文档及源代码可以帮助一个初学者向成熟发展。然而,金融类API涉及的内容包罗万象,通常一个金融交易类的API可能涉及的内容包括:连接模块、交易模块、账户模块、信息获取模块等等。一个做的非常成熟的金融交易类API当属盈透(Interactive Brokers,或称IB)的API了。其API的开发主力是Java、C#等,而Python3的支持是最近半年时间才加入进来的。

这是盈透API的文档:http://interactivebrokers.github.io/tws-api/index.html#gsc.tab=0

各位打开看看左边的树形结构目录就知道了,这个开发文档包含的内容非常多。我已经将文档中除了类(class)的部分英文全部都机翻成了中文,这部分文字加上代码的总长度已经达到了几百页。可能你也听说过盈透是非常适合做程序化交易的平台,但是任何一个Python3的初学者刚结束入门的课程就来看这样长的API文档,再加上这个API对很多部分的使用没有写的很透彻,给小白造成的伤害绝对是暴击级别。

我曾经也在网上找如何去学习使用Python3写的API文档的源代码,但是却没有一个比较完整的教程。事实上,没有这类教程也是可以理解的,毕竟读文档读代码这样的事情,本身就是读的多了就懂了。但自己内心还是放不下,毕竟我走过的路其他入门Python3的朋友们也可能会遇到,因此,还是把我学习使用API的过程放到网上来,如果能起到抛砖引玉的作用,能对大家做出些贡献,我也就知足了。

那么适合于刚到达Python3入门级的朋友查阅的金融类API有哪些呢?其实这也不是很好寻找……事实上,一般金融类API的文档和源代码的阅读量都比较大,大多都还是英文材料,考虑到英文材料过多对入门帮助不是很大,而且不一定适用于国内的情况,于是这里我决定选取easytrader这个项目来作为引领各位Python3初学者学习使用API的起点。这一关过了,后面类似IB等较大规模的项目大家才能逐步看懂,大家说是不是呢?

easytrader项目,由shidenggui开发并发布到其个人GitHub页面上。

shidenggui的GitHub页面链接:https://github.com/shidenggui 如果无法链接,大家请自行百度链接GitHub方法。

在主页界面上就可以看到easytrader这个项目。事实上,他还制作了更多的项目,点击页面上的Repositories(项目仓库)就能够看到他做的更多内容。通过查看其项目仓库,我们可以发现有好些名称开头为easy的,下面标注着python的。这大致说明这些项目是使用python编写的(2还是3需要看他的代码),并且与easytrader项目可能存在一定的关联。

在这里,我就把这些easy开头用Python写的项目统称为easytrader家族系列模块(事实上easytrader模块不一定会用到下面的全部模块,这是我个人的称呼方式)。这些模块包括:

easyhistory:用于获取维护股票的历史数据

easyctp:用python连接ctp交易

easyutils:希望能提供一些股市常用的接口,减少重复劳动

easyquant:股票量化框架,支持行情获取以及交易

easytrader:提供银河/国金/华泰客户端/同花顺客户端/雪球的基金、股票自动程序化交易以及自动打新,支持跟踪 joinquant (聚宽)/ricequant(米筐) 模拟交易 和 实盘雪球组合, 量化交易组件

easyquotation:实时获取新浪 / 腾讯 的免费股票行情 / 集思路的分级基金行情

我一开始也不知道这些项目是做什么用的。不过好在这些项目都有注释文字,所以就列上来了。

我们随便打开其中的一个。比如easyquotation。打开之后,看到好些文档和文件夹的朋友可能就懵了:这么多东西,都是什么鬼?我该咋用这个东西啊?

别着急,我之后的文章会慢慢给大家说明的。事实上,这个项目里的文件算是比较少的了。大家可以先打开这个文档中的requirements.txt文档,打开的方法就是点击这个文字链接就可以了。这个文档记载的是如果想要使用这个项目模块,必须安装这个文档里面要求的模块。这个文档里面提到了哪些内容呢:分别是six、requests、yarl、aiohttp>=1.1.1和easyutils。第四个内容说明必须安装1.1.1版本以上的aiohttp模块,而第五个部分说明要应用easyquotation模块就必须要导入easyutils这个easytrader家族系列子模块。这里面有些模块我也从来没用过,我也得上网查。所以看到不认识的模块的时候不要觉得完蛋了神马的。

事实上,easytrader家族系列模块都是API项目,也就是你可以通过这些模块中提供的函数或类去获取、执行一些信息,而这些函数或类就被视为接口。可能我这么讲不是很恰当,但是能够理解大致意思就可以了。

如果你尝试打开这个家族系列的各个项目网页,你会发现好几个模块都用了easyutils这个模块,而easyutils模块的结构是非常简洁和清晰的。所以,我们下一篇就来分析easyutils这个模块。

#如果各位初学者还不了解Python3中的函数(定义和基本函数编写及应用)或者类(定义和基本类的编写及应用),可以再去补一下课,网上资料非常多。
#不需要各位了解的非常深入(我看到有些人已经在纠结装饰器了),咱们在具体源代码遇到的时候可以再作说明或提示。
原文地址:https://www.cnblogs.com/xiaoxiye/p/8564393.html