easyutils
模塊作者:shidenggui
網(wǎng)址:https://github.com/shidenggui/easyutils
強(qiáng)烈建議您學(xué)習(xí)了python3的教程之后再來看此文招拙,就會(huì)發(fā)現(xiàn)非常好理解啦~
為什么是python3栽燕?因?yàn)楣俜秸fpython2在2020年以后就不再支持了备禀。
就這么簡單链方。
本注釋作者:肖西耶
README.md
md文件是markdown文件格式,會(huì)使用markdown語法梯澜。具體的語法形式可以自行百度千康。在這里钞艇,我們只需要讀懂里面寫的內(nèi)容就可以了。
作者在這里直接給出了使用easyutils模塊的一些方式以及返回結(jié)果窍箍。僅通過這些內(nèi)容已經(jīng)可以進(jìn)行一些操作了串纺。
Install(安裝)
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">pip install easyutils</pre>
關(guān)于如何使用pip丽旅、如何借助anaconda或pycharm快速安裝模塊,這里不提供解答纺棺,可以自行百度榄笙。另外,這個(gè)模塊提供了setup.py文件祷蝌,因此您還可以百度一下怎樣用setup.py文件安裝模塊茅撞。
Usage
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">import easyutils
easyuitls.is_holiday_today()</pre>
這是在python中引入了這個(gè)easyutils模塊之后使用方法的案例。這里舉例使用該模塊的is_holiday_today()函數(shù)巨朦。乍看到這里米丘,只能猜測(cè)這個(gè)函數(shù)是判斷今天是不是節(jié)假日的。往下看就能證明確實(shí)是如此糊啡。但是當(dāng)前仍不知道應(yīng)該往這個(gè)函數(shù)里面放什么參數(shù)以及參數(shù)格式是什么蠕蚜。別著急,如果readme這個(gè)文檔沒有告訴你悔橄,咱們還是可以看源代碼的嘛:)
如果你不了解import的含義靶累,如果你不知道python的函數(shù)怎么使用,請(qǐng)先學(xué)習(xí)python3
is_holiday
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def is_holiday(day): """ 判斷是否節(jié)假日
:param day: 日期癣疟, 格式為 '20160404'
:return: Bool</pre>
從這里開始解釋easyutils模塊具體函數(shù)的使用方法挣柬。
第一個(gè)函數(shù)是is_holiday。光看名字睛挚,猜測(cè)與判斷是不是節(jié)假日有關(guān)邪蛔。再看函數(shù)體內(nèi)容,應(yīng)該是只給出了源代碼的一部分扎狱。我們可以立即去查看源代碼侧到,也可以根據(jù)這個(gè)給出的部分先大致猜測(cè)一下。
傳入的參數(shù)是一個(gè)被稱為day的變量淤击,這個(gè)day變量是一個(gè)str字符串類型匠抗,格式為'20160404',也就是說傳入的變量是8位數(shù)字污抬,年份是4位數(shù)字的年份汞贸。如果我們還想判斷另一個(gè)日期的話,就可以傳入'20180315'這樣時(shí)間格式的內(nèi)容印机。
返回值是一個(gè)布爾值矢腻。也就是說,如果你傳入的日期是節(jié)假日射赛,返回的值就是True多柑;如果不是節(jié)假日(也就是說是交易日),返回值就是False楣责。
關(guān)于python的函數(shù)內(nèi)容竣灌,請(qǐng)先學(xué)習(xí)python3诫隅。
is_holiday_today
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def is_holiday_today(): """ 判斷今天是否時(shí)節(jié)假日
:return: bool """</pre>
這個(gè)函數(shù)就是前文提到的is_holiday_today()函數(shù)。由于直接判斷今天是不是假期帐偎,所以無需傳入?yún)?shù)逐纬。
返回值當(dāng)然也是布爾值。直接判斷今天是不是節(jié)假日削樊。是假日就返回True豁生,不是假日(也就是說是交易日)就返回False。
is_tradetime_now
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def is_tradetime_now(): """ 判斷目前是不是交易時(shí)間, 并沒有對(duì)節(jié)假日做處理
:return: bool </pre>
這個(gè)函數(shù)is_tradetime_now()適用于判斷目前是不是交易時(shí)間的漫贞。注釋說沒有對(duì)節(jié)假日做處理甸箱,這里就需要看一下源代碼了。源代碼的內(nèi)容顯示:(我會(huì)帶著各位看源代碼的)
返回值是布爾值迅脐。如果當(dāng)前是交易時(shí)間芍殖,返回True;如果不是交易時(shí)間谴蔑,返回False豌骏。這里的交易時(shí)間應(yīng)該判斷的是A股的交易時(shí)間。
get_stock_type
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def get_stock_type(stock_code): """判斷股票ID對(duì)應(yīng)的證券市場
匹配規(guī)則
['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' 開頭直接返回對(duì)應(yīng)類型窃躲,否則使用內(nèi)置規(guī)則判斷
:return 'sh' or 'sz'"""</pre>
這個(gè)函數(shù)get_stock_type(stock_code)是用來判斷傳入的參數(shù)對(duì)應(yīng)的股票在哪個(gè)證券市場上市。中國當(dāng)前的股票市場共有兩個(gè)钦睡,分別是上海證券交易所和深圳證券交易所蒂窒。關(guān)于這兩個(gè)交易所的資料和上市公司的特征及代碼特征,請(qǐng)各位自行百度進(jìn)行了解:)
這個(gè)函數(shù)要求傳入的是stock_code荞怒,也就是一個(gè)證券代碼洒琢。不過,這個(gè)代碼并沒有嚴(yán)格限定為單一格式褐桌,而是在注釋中給出了多種格式作為參考衰抑。
規(guī)則1:股票代碼開頭前2位是這個(gè)列表中的數(shù)字['50', '51', '60', '90', '110']時(shí),函數(shù)返回值為’sh’撩嚼,意味著這些股票是在上交所上市的停士。
規(guī)則2:股票代碼開頭前2-3位是這個(gè)列表中的數(shù)字['00', '13', '18', '15', '16', '18', '20', '30', '39', '115']時(shí)挖帘,函數(shù)返回值為’sz’完丽,意味著這些股票是在深交所上市的。
規(guī)則3:股票代碼開頭第1位是這個(gè)列表中的數(shù)字['5', '6', '9']
時(shí)拇舀,函數(shù)返回值為’sh’逻族,意味著這些股票是在上交所上市的。其他開頭數(shù)字的股票是在深交所上市的骄崩,函數(shù)返回值為’sz’聘鳞。
規(guī)則4:如果傳入的股票代碼開頭就帶有’sh’薄辅、’sz’的話,那么函數(shù)返回值就直接返回’sh’或’sz’抠璃。
get_code_type
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def get_code_type(code): """ 判斷代碼是屬于那種類型站楚,目前僅支持 ['fund', 'stock']
:return str 返回code類型, fund 基金 stock 股票 """</pre>
這個(gè)函數(shù)get_code_type(code)是判斷你傳入的股票代碼對(duì)應(yīng)的股票是什么類型的金融資產(chǎn)。根據(jù)函數(shù)中的注釋搏嗡,當(dāng)前只支持判斷是基金('fund’)還是股票('stock’)窿春。
函數(shù)返回值是一個(gè)str,也就是'fund'或'stock'中的一個(gè)采盒。
get_all_stock_codes
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">def get_all_stock_codes(): """獲取所有股票 ID"""</pre>
這個(gè)函數(shù)get_all_stock_codes()旧乞,根據(jù)注釋是獲取所有股票的ID。因此不需要傳入?yún)?shù)磅氨。函數(shù)返回的應(yīng)該是一個(gè)列表尺栖。這個(gè)列表是相對(duì)較大的。當(dāng)前中國股票市場(這里模塊括了B股)有數(shù)千只證券(股票烦租、基金)延赌,所以這個(gè)列表如果直接print()出來是非常長的。
到這里叉橱,Readme文檔內(nèi)容就解讀完成皮胡。如果你以為看完readme就可以應(yīng)用這些函數(shù)接口做事情了的話,我只能說:如果這些接口不涉及你的錢赏迟,那么你盡可以去隨意嘗試屡贺。一旦你真的遇到需要真錢交易的API的時(shí)候,你就應(yīng)該盡可能完整的掌握它的代碼锌杀,然后在模擬賬戶上測(cè)試甩栈,然后是小規(guī)模資金測(cè)試,最后才能完全信任一個(gè)API糕再。
現(xiàn)在我還沒有帶大家讀easyutils的源代碼量没,但是我說了以上內(nèi)容,可能大家也猜到了突想,easyutils這個(gè)模塊是存在一定缺陷的殴蹄。雖然有缺陷,但是我們對(duì)源代碼作者的無常貢獻(xiàn)仍應(yīng)保持一顆感恩之心猾担,畢竟人家可以選擇不分享袭灯,這樣咱們也就沒法從這里分析,摸到python3金融API應(yīng)用的門道了绑嘹。
那么從下一篇開始稽荧,我們逐步來解讀easyutils各個(gè)子模塊的源代碼。