在选择股票数据源时,需要考虑几个关键因数:数据的准确性、延迟时间、覆盖范围、API接口的易用性、多市场覆盖、低延迟、高可用性,低成本完成初期验证。
稳定的历史数据、完整的技术指标,支撑策略回测与中低频实盘。我将分享200多个实测可用的专业股票数据接口,并通过Python、JavaScript(Node.js)、Java、C#、Ruby等五种主流语言,逐一演示如何高效获取各类股票数据,希望能一起解锁它的潜力。
沪深历史涨停价格数据API接口:http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501\&et=20240601
接口URL中,000001是股票代码,TEST-API-TOKEN-MOMA-836089C22111是请求证书,这个是官方提供的测试证书只能测试000001的数据,随后大家自己可以去领取一个免费的请求证书就可以获取其他股票的数据了。 证书申请
描述:根据《股票列表》得到的股票代码获取历史涨跌停价格,开始时间以及结束时间的格式均为 YYYYMMDD,例如:'20240101'。不设置开始时间和结束时间则为全部历史数据。
更新频率:每日0点
1、python
python
import requests
url = "http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501&et=20240601"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
javascript
const axios = require('axios');
const url = "http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501&et=20240601";
axios.get(url)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error);
});
3、Java
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501&et=20240601"))
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
4、C#
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using (HttpClient client = new HttpClient())
{
string url = "http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501&et=20240601";
HttpResponseMessage response = await client.GetAsync(url);
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
5、Ruby
ruby
require 'net/http'
require 'json'
url = URI("http://api.momaapi.com/hsstock/stopprice/history/000001.SZ/TEST-API-TOKEN-MOMA-836089C22111?st=20240501&et=20240601")
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
返回数据示例:
json
[ { "o": 11.31, "fm": -0.09, "h": 11.39, "hs": 0.33, "lb": 0.82, "l": 11.3, "lt": 220059184779.0, "pe": 4.94, "pc": -0.26, "p": 11.34, "sz": 220063112365.0, "cje": 730375807.93, "ud": -0.03, "v": 643914, "yc": 11.37, "zf": 0.79, "zs": 0.0, "sjl": 0.52, "zdf60": -3.08, "zdfnc": -3.08, "t": "2025-04-03 15:29:10", "dm": "000001" }, { "o": 6.12, "fm": -0.16, "h": 6.22, "hs": 0.9, "lb": 0.89, "l": 6.1, "lt": 2147977873.0, "pe": 507.22, "pc": 0.98, "p": 6.2, "sz": 2147977873.0, "cje": 19206391.82, "ud": 0.06, "v": 31090, "yc": 6.14, "zf": 1.95, "zs": -0.16, "sjl": 16.66, "zdf60": -11.81, "zdfnc": -11.81, "t": "2025-04-03 15:29:10", "dm": "000007" }, { "o": 8.14, "fm": -0.12, "h": 8.24, "hs": 0.32, "lb": 0.68, "l": 8.12, "lt": 20870700050.0, "pe": 41.06, "pc": -0.24, "p": 8.18, "sz": 21097970234.0, "cje": 66906490.52, "ud": -0.02, "v": 81774, "yc": 8.2, "zf": 1.46, "zs": -0.12, "sjl": 2.08, "zdf60": -10.6, "zdfnc": -10.6, "t": "2025-04-03 15:29:10", "dm": "000009" }, { "o": 2.81, "fm": 0.36, "h": 2.85, "hs": 2.97, "lb": 0.77, "l": 2.77, "lt": 1483182838.0, "pe": -40.91, "pc": 0.36, "p": 2.82, "sz": 3242019463.0, "cje": 43862642.0, "ud": 0.01, "v": 156265, "yc": 2.81, "zf": 2.85, "zs": -0.35, "sjl": 14.82, "zdf60": 0.36, "zdfnc": 0.36, "t": "2025-04-03 15:29:10", "dm": "000010" } ]
返回的数据字段说明:
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易日期 |
| h | float | 涨停价格 |
| l | float | 跌停价格 |