​ 如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本,却伴随着时间与精力的巨大消耗,且常因目标页面变动而失效。大家可以依据自己的实际情况来决定数据获取方式。

接下来,我将分享200多个实测可用且免费的专业股票数据接口,并通过Python、JavaScript(Node.js)、Java、C#、Ruby等五种主流语言,逐一演示如何高效获取各类股票数据,希望能够对大家有所帮助。

先把数据接口的地址给大家,大家可以直接点击地址或复制到地址栏打开,马上就可以验证接口的有效性

沪深A股历史分时MACD数据API接口:http://api.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073

接口URL中,000001.SZ是股票代码和市场,d是分时级别,n是除权方式,LICENCE-66D8-9F96-0C7F0FBCD073是请求证书,这个是官方提供的测试证书只能测试000001的数据,随后大家自己可以去领取一个免费的请求证书就可以获取其他股票的数据了。

目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。

1、python

import requests  
  
url = "http://api.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073"  
response = requests.get(url)  
data = response.json()  
print(data)

2、JavaScript (Node.js)

const axios = require('axios');  
  
const url = "http://api.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073";  
axios.get(url)  
  .then(response => {  
    console.log(response.data);  
  })  
  .catch(error => {  
    console.log(error);  
  });

3、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.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073"))  
            .build();  
  
        try {  
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());  
            System.out.println(response.body());  
        } catch (IOException | InterruptedException e) {  
            e.printStackTrace();  
        }  
    }  
}

4、C#

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.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073";  
            HttpResponseMessage response = await client.GetAsync(url);  
            string responseBody = await response.Content.ReadAsStringAsync();  
            Console.WriteLine(responseBody);  
        }  
    }  
}

5、Ruby

require 'net/http'  
require 'json'  
  
url = URI("http://api.mairuiapi.com/hsstock/history/macd/000001.SZ/d/n/LICENCE-66D8-9F96-0C7F0FBCD073")  
  
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-02 00:00:00","diff":0.202,"dea":0.169,"macd":0.066,"ema12":12.071,"ema26":11.8686},{"t":"2025-07-03 00:00:00","diff":0.21,"dea":0.177,"macd":0.065,"ema12":12.1139,"ema26":11.9042},{"t":"2025-07-04 00:00:00","diff":0.233,"dea":0.189,"macd":0.089,"ema12":12.1887,"ema26":11.9558},{"t":"2025-07-07 00:00:00","diff":0.263,"dea":0.203,"macd":0.119,"ema12":12.2797,"ema26":12.0168},{"t":"2025-07-08 00:00:00","diff":0.276,"dea":0.218,"macd":0.116,"ema12":12.3428,"ema26":12.0667},{"t":"2025-07-09 00:00:00","diff":0.295,"dea":0.233,"macd":0.124,"ema12":12.4193,"ema26":12.124},{"t":"2025-07-10 00:00:00","diff":0.334,"dea":0.254,"macd":0.161,"ema12":12.5363,"ema26":12.2022},{"t":"2025-07-11 00:00:00","diff":0.339,"dea":0.271,"macd":0.137,"ema12":12.5938,"ema26":12.2546},{"t":"2025-07-14 00:00:00","diff":0.345,"dea":0.286,"macd":0.119,"ema12":12.6532,"ema26":12.3084},{"t":"2025-07-15 00:00:00","diff":0.325,"dea":0.293,"macd":0.064,"ema12":12.665,"ema26":12.3396},{"t":"2025-07-16 00:00:00","diff":0.299,"dea":0.295,"macd":0.009,"ema12":12.6612,"ema26":12.3618},{"t":"2025-07-17 00:00:00","diff":0.271,"dea":0.29,"macd":-0.037,"ema12":12.6502,"ema26":12.3787},{"t":"2025-07-18 00:00:00","diff":0.255,"dea":0.283,"macd":-0.055,"ema12":12.6579,"ema26":12.4025},{"t":"2025-07-21 00:00:00","diff":0.233,"dea":0.273,"macd":-0.081,"ema12":12.6505,"ema26":12.4179},{"t":"2025-07-22 00:00:00","diff":0.203,"dea":0.259,"macd":-0.113,"ema12":12.6258,"ema26":12.4232},{"t":"2025-07-23 00:00:00","diff":0.18,"dea":0.243,"macd":-0.126,"ema12":12.6111,"ema26":12.4312},{"t":"2025-07-24 00:00:00","diff":0.146,"dea":0.224,"macd":-0.156,"ema12":12.5709,"ema26":12.4251},{"t":"2025-07-25 00:00:00","diff":0.117,"dea":0.202,"macd":-0.17,"ema12":12.5369,"ema26":12.4196},{"t":"2025-07-28 00:00:00","diff":0.103,"dea":0.182,"macd":-0.16,"ema12":12.5251,"ema26":12.4226},{"t":"2025-07-29 00:00:00","diff":0.08,"dea":0.162,"macd":-0.164,"ema12":12.4966,"ema26":12.4165}]

返回的数据字段说明:

t 代表: 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd,

diff代表: DIFF值,dea代表: DEA值,macd代表: MACD值,ema12 代表:EMA(12)值,ema26 代表: EMA(26)值,

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐