1.1-玩转Python3金融API应用-easyutils的Readme文件
easyutils
模块作者:shidenggui
网址:https://github.com/shidenggui/easyutils
强烈建议您学习了python3的教程之后再来看此文,就会发现非常好理解啦~
为什么是python3?因为官方说python2在2020年以后就不再支持了。
就这么简单。
本注释作者:肖西耶
README.md
md文件是markdown文件格式,会使用markdown语法。具体的语法形式可以自行百度。在这里,我们只需要读懂里面写的内容就可以了。
作者在这里直接给出了使用easyutils模块的一些方式以及返回结果。仅通过这些内容已经可以进行一些操作了。
Install(安装)
pip install easyutils
关于如何使用pip、如何借助anaconda或pycharm快速安装模块,这里不提供解答,可以自行百度。另外,这个模块提供了setup.py文件,因此您还可以百度一下怎样用setup.py文件安装模块。
Usage
import easyutils easyuitls.is_holiday_today()
这是在python中引入了这个easyutils模块之后使用方法的案例。这里举例使用该模块的is_holiday_today()函数。乍看到这里,只能猜测这个函数是判断今天是不是节假日的。往下看就能证明确实是如此。但是当前仍不知道应该往这个函数里面放什么参数以及参数格式是什么。别着急,如果readme这个文档没有告诉你,咱们还是可以看源代码的嘛:)
如果你不了解import的含义,如果你不知道python的函数怎么使用,请先学习python3
is_holiday
def is_holiday(day): """ 判断是否节假日 :param day: 日期, 格式为 '20160404' :return: Bool
从这里开始解释easyutils模块具体函数的使用方法。
第一个函数是is_holiday。光看名字,猜测与判断是不是节假日有关。再看函数体内容,应该是只给出了源代码的一部分。我们可以立即去查看源代码,也可以根据这个给出的部分先大致猜测一下。
传入的参数是一个被称为day的变量,这个day变量是一个str字符串类型,格式为'20160404',也就是说传入的变量是8位数字,年份是4位数字的年份。如果我们还想判断另一个日期的话,就可以传入'20180315'这样时间格式的内容。
返回值是一个布尔值。也就是说,如果你传入的日期是节假日,返回的值就是True;如果不是节假日(也就是说是交易日),返回值就是False。
关于python的函数内容,请先学习python3。
is_holiday_today
def is_holiday_today(): """ 判断今天是否时节假日 :return: bool """
这个函数就是前文提到的is_holiday_today()函数。由于直接判断今天是不是假期,所以无需传入参数。
返回值当然也是布尔值。直接判断今天是不是节假日。是假日就返回True,不是假日(也就是说是交易日)就返回False。
is_tradetime_now
def is_tradetime_now(): """ 判断目前是不是交易时间, 并没有对节假日做处理 :return: bool
这个函数is_tradetime_now()适用于判断目前是不是交易时间的。注释说没有对节假日做处理,这里就需要看一下源代码了。源代码的内容显示:(我会带着各位看源代码的)
返回值是布尔值。如果当前是交易时间,返回True;如果不是交易时间,返回False。这里的交易时间应该判断的是A股的交易时间。
get_stock_type
def get_stock_type(stock_code): """判断股票ID对应的证券市场 匹配规则 ['50', '51', '60', '90', '110'] 为 sh ['00', '13', '18', '15', '16', '18', '20', '30', '39', '115'] 为 sz ['5', '6', '9'] 开头的为 sh, 其余为 sz :param stock_code:股票ID, 若以 'sz', 'sh' 开头直接返回对应类型,否则使用内置规则判断 :return 'sh' or 'sz'"""
这个函数get_stock_type(stock_code)是用来判断传入的参数对应的股票在哪个证券市场上市。中国当前的股票市场共有两个,分别是上海证券交易所和深圳证券交易所。关于这两个交易所的资料和上市公司的特征及代码特征,请各位自行百度进行了解:)
这个函数要求传入的是stock_code,也就是一个证券代码。不过,这个代码并没有严格限定为单一格式,而是在注释中给出了多种格式作为参考。
规则1:股票代码开头前2位是这个列表中的数字['50', '51', '60', '90', '110']时,函数返回值为’sh’,意味着这些股票是在上交所上市的。
规则2:股票代码开头前2-3位是这个列表中的数字['00', '13', '18', '15', '16', '18', '20', '30', '39', '115']时,函数返回值为’sz’,意味着这些股票是在深交所上市的。
规则3:股票代码开头第1位是这个列表中的数字['5', '6', '9']
时,函数返回值为’sh’,意味着这些股票是在上交所上市的。其他开头数字的股票是在深交所上市的,函数返回值为’sz’。
规则4:如果传入的股票代码开头就带有’sh’、’sz’的话,那么函数返回值就直接返回’sh’或’sz’。
get_code_type
def get_code_type(code): """ 判断代码是属于那种类型,目前仅支持 ['fund', 'stock'] :return str 返回code类型, fund 基金 stock 股票 """
这个函数get_code_type(code)是判断你传入的股票代码对应的股票是什么类型的金融资产。根据函数中的注释,当前只支持判断是基金('fund’)还是股票('stock’)。
函数返回值是一个str,也就是'fund'或'stock'中的一个。
get_all_stock_codes
def get_all_stock_codes(): """获取所有股票 ID"""
这个函数get_all_stock_codes(),根据注释是获取所有股票的ID。因此不需要传入参数。函数返回的应该是一个列表。这个列表是相对较大的。当前中国股票市场(这里模块括了B股)有数千只证券(股票、基金),所以这个列表如果直接print()出来是非常长的。
到这里,Readme文档内容就解读完成。如果你以为看完readme就可以应用这些函数接口做事情了的话,我只能说:如果这些接口不涉及你的钱,那么你尽可以去随意尝试。一旦你真的遇到需要真钱交易的API的时候,你就应该尽可能完整的掌握它的代码,然后在模拟账户上测试,然后是小规模资金测试,最后才能完全信任一个API。
现在我还没有带大家读easyutils的源代码,但是我说了以上内容,可能大家也猜到了,easyutils这个模块是存在一定缺陷的。虽然有缺陷,但是我们对源代码作者的无常贡献仍应保持一颗感恩之心,毕竟人家可以选择不分享,这样咱们也就没法从这里分析,摸到python3金融API应用的门道了。
那么从下一篇开始,我们逐步来解读easyutils各个子模块的源代码。