直接動手,不寫前言了。
建立.NET 8的一個webapi計畫備用
本地安裝python庫 aktools
輸安裝完畢以後,輸入 python -m aktools 即可啟動有關服務
啟動以後,主頁地址: http://127.0.0.1:8080/
檢視swwager的api文件說明。我們主要使用公開存取的方式來存取skshare的介面數據,因為咱是在地化交易的,不搞那麽復雜,能獲取數據就行。如果你需要部署成大型服務,提供其他客製開發,你可以自行去參考aktools的官方源碼,源碼是MIT開源協定,你可以自己客製出其他許可權配置或者其他騷操作來使用。
具體介面參數,可以參考akshare的文件說明。我在本測試的開源計畫上頁提供了附錄說明,感興趣可以文末獲取開源地址:
接下來,我使用上面建立的.NET 程式來做個簡單的測試使用
咱們先測試下能不能獲取到數據先。在http檔內,新建一個api地址測試數據,例如前面提到的swagger文件裏面的地址:本地IP:8080/api/public
然後新建一個請求測試,例如獲取大A的所有股票程式碼和名字:stock_info_a_code_name
點選上面的「發送請求」,可以看到獲取到了所有A的基礎資訊
根據以上資訊,我們可以建立一個基礎實體類,程式碼和名字欄位。
新建一個服務類,例如叫 QuantDataService 量化數據服務
註冊HttpClient請求和上面服務的註冊
本地新建一個控制器,用來觸發請求測試使用,並提供一個Get請求操作,用於透過我們內建的swagger來觸發獲取所有大A的程式碼和名字
可以看見獲取所有大A數據,一共五千多條,大概耗時122毫秒。
接下來演示下,獲取歷史數據。歷史數據透過以上介面清單可以選擇 stock_zh_a_hist
先拓展一個Post表單請求方法
上面請求方法可能不一定適用,當做備選。財經數據我們基本上都是透過GET請求來。再繼續拓展一個Get請求的帶表單參數的方法
新增控制器內的方法,用來獲取歷史數據,例如獲取300532股票的2024年開始到現在2024-06-23(23是周日,最新應該獲取到06-21)。復權可選,此處我使用前復權
執行,可以看見獲取到歷史數據的json數據集合
根據返回的Json數據,我們開發一個對應的實體類
把字串轉集合物件,可以看見具體的內容了。就可以透過物件來進行一些操作。
如果需要我以上測試的計畫開源地址,可以在我個人公眾號【Dotnet Dancer】內回復 「量化開源」 即可獲取到開源計畫URL地址。該計畫會長期持續更新。