当前位置: 欣欣网 > 码农

.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地址。该项目会长期持续更新。