當前位置: 妍妍網 > 碼農

.NET也能玩量化【2】搭建本地財經數據獲取服務,以及獲取復權歷史大A數據演示

2024-06-24碼農

直接動手,不寫前言了。

建立.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地址。該計畫會長期持續更新。