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中的函數(定義和基本函數編寫及應用)或者類(定義和基本類的編寫及應用),可以再去補一下課,網上資料非常多。
#不需要各位了解的非常深入(我看到有些人已經在糾結裝飾器了),咱們在具體源代碼遇到的時候可以再作說明或提示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM