如今,量化分析在股市领域风靡一时,根据自身需求和预算选择性价比高的API。而对数据要求高、数据使用量大的金融机构或专业量化交易者,付费但功能强大、数据质量高的API则是更好的选择,需综合考量数据质量、功能与价格之间的平衡。股票市场瞬息万变,API的响应数度和稳定性直接影响决策效率。我将分享200多个实测可用的专业股票数据接口,并通过Python、JavaScript(Node.js)、Java、C#、Ruby等五种主流语言,逐一演示如何高效获取各类股票数据,希望能够对大家有所帮助。
先把数据接口的地址给大家,大家可以直接点击地址或复制到地址栏打开,马上就可以验证接口的有效性
沪深A股历史分时MA数据API接口:http://api.momaapi.com/hsstock/history/ma/股票代码(如000001.SZ)/分时级别(如d)/除权类型(如n)/您的Token?st=开始时间&et=结束时间<=最新条数
接口URL中,000001是股票代码,d是分时级别,TEST-API-TOKEN-MOMA-836089C22111是请求证书,这个是官方提供的测试证书只能测试000001的数据,随后大家自己可以去领取一个免费的请求证书就可以获取其他股票的数据了。
分时级别支持5分钟、15分钟、30分钟、60分钟、日周月年级别(包括前后复权),对应的值分别是5、15、30、60、d(日线)、dq(日线前复权)、dh(日线后复权)、w(周线)、wq(周线前复权)、wh(周线后复权)、m(月线)、mq(月线前复权)、mh(月线后复权)、y(年线)、yq(年线前复权)、yh(年线后复权)。目前提供了ma3,ma5,ma10,ma15,ma20,ma30,ma60,ma120,ma200,ma250这些常用的移动平均线。
1、python
importrequests url="http://api.momaapi.com/hsstock/history/ma/000001.SZ/d/n/TEST-API-TOKEN-MOMA-836089C22111"response=requests.get(url)data=response.json()print(data)2、JavaScript (Node.js)
constaxios=require('axios');consturl="http://api.momaapi.com/hsstock/history/ma/000001.SZ/d/n/TEST-API-TOKEN-MOMA-836089C22111";axios.get(url).then(response=>{console.log(response.data);}).catch(error=>{console.log(error);});3、Java
importjava.net.URI;importjava.net.http.HttpClient;importjava.net.http.HttpRequest;importjava.net.http.HttpResponse;importjava.io.IOException;publicclassMain{publicstaticvoidmain(String[]args){HttpClientclient=HttpClient.newHttpClient();HttpRequestrequest=HttpRequest.newBuilder().uri(URI.create("http://api.momaapi.com/hsstock/history/ma/000001.SZ/d/n/TEST-API-TOKEN-MOMA-836089C22111")).build();try{HttpResponse<String>response=client.send(request,HttpResponse.BodyHandlers.ofString());System.out.println(response.body());}catch(IOException|InterruptedExceptione){e.printStackTrace();}}}4、C#
usingSystem;usingSystem.Net.Http;usingSystem.Threading.Tasks;classProgram{staticasyncTaskMain(){using(HttpClientclient=newHttpClient()){stringurl="http://api.momaapi.com/hsstock/history/ma/000001.SZ/d/n/TEST-API-TOKEN-MOMA-836089C22111";HttpResponseMessageresponse=awaitclient.GetAsync(url);stringresponseBody=awaitresponse.Content.ReadAsStringAsync();Console.WriteLine(responseBody);}}}5、Ruby
require'net/http'require'json'url=URI("http://api.momaapi.com/hsstock/history/ma/000001.SZ/d/n/TEST-API-TOKEN-MOMA-836089C22111")http=Net::HTTP.new(url.host,url.port)request=Net::HTTP::Get.new(url)response=http.request(request)data=JSON.parse(response.read_body)puts data返回数据示例:
[{"t":"2025-07-21 15:00","ma3":12.6,"ma5":12.598,"ma10":12.597,"ma15":12.5927,"ma20":12.591,"ma30":12.5903,"ma60":12.6127,"ma120":12.6279,"ma200":12.6154,"ma250":12.6638},{"t":"2025-07-22 09:35","ma3":12.6,"ma5":12.596,"ma10":12.595,"ma15":12.5933,"ma20":12.5915,"ma30":12.5897,"ma60":12.6115,"ma120":12.628,"ma200":12.6146,"ma250":12.6622}]返回的数据字段说明:
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| ma3 | number | MA3,没有则为null |
| ma5 | number | MA5,没有则为null |
| ma10 | number | MA10,没有则为null |
| ma15 | number | MA15,没有则为null |
| ma20 | number | MA20,没有则为null |
| ma30 | number | MA30,没有则为null |
| ma60 | number | MA60,没有则为null |
| ma120 | number | MA120,没有则为null |
| ma200 | number | MA200,没有则为null |
| ma250 | number | MA250,没有则为null |