分享实用的免费股票数据接口,这些对于从事量化交易、金融数据分析的开发者和投资者来说确实非常有价值。下面我将针对您提供的接口,补充一些使用时的注意事项,并简要说明不同语言调用的核心思路,方便大家更好地利用这些工具:
一、接口使用注意事项
接口稳定性:虽然标注为 “实测可用”,但免费接口可能存在调用频率限制、数据更新延迟等问题,生产环境使用前建议做好容错处理(如重试机制、缓存数据)。
参数说明:
code:通常为股票代码(如沪市 600 开头、深市 000 开头),需确认是否需要加市场前缀(如 SH、SZ)。
date:日期格式统一为YYYY-MM-DD,注意接口支持的时间范围(部分可能仅提供近 1-2 年数据)。
指标参数(如cycle周期、ma均线类型)需按接口文档要求传递,避免格式错误。
数据用途:免费接口可能有商用限制,使用前请查阅stockapi.com.cn官网的用户协议,避免侵权。
返回格式:多数接口返回 JSON 格式数据,可直接解析;若返回异常(如 403、500),需捕获错误信息排查原因。
二、主流语言调用核心示例(以 “股票历史日线行情查询” 接口为例)
stockapi官方:https://stockapi.com.cn
python:
import requests
url = "https://stockapi.com.cn/v1/base/day"
params = {
"code": "600004",
"startDate": "2021-10-10",
"endDate": "2021-10-15"
}
try:
response = requests.get(url, params=params)
response.raise_for_status() # 检查请求是否成功
data = response.json()
print("日线行情数据:", data)
except Exception as e:
print("请求失败:", e)
JavaScript(Node.js)
const axios = require('axios');
async function getStockData() {
try {
const response = await axios.get('https://stockapi.com.cn/v1/base/day', {
params: {
code: '600004',
startDate: '2021-10-10',
endDate: '2021-10-15'
}
});
console.log('日线行情数据:', response.data);
} catch (error) {
console.error('请求失败:', error.message);
}
}
getStockData();
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class StockApiDemo {
public static void main(String[] args) throws Exception {
String url = "https://stockapi.com.cn/v1/base/day";
// 构建参数
String params = "code=" + URLEncoder.encode("600004", StandardCharsets.UTF_8) +
"&startDate=2021-10-10&endDate=2021-10-15";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url + "?" + params))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(data -> System.out.println("日线行情数据:" + data))
.join();
}
}
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 = "https://stockapi.com.cn/v1/base/day";
var parameters = new Dictionary<string, string> {
{ "code", "600004" },
{ "startDate", "2021-10-10" },
{ "endDate", "2021-10-15" }
};
var content = new FormUrlEncodedContent(parameters);
HttpResponseMessage response = await client.GetAsync(url + "?" + await content.ReadAsStringAsync());
response.EnsureSuccessStatusCode();
string data = await response.Content.ReadAsStringAsync();
Console.WriteLine("日线行情数据:" + data);
}
}
}
兄弟们,干起来,stockapi