如何免费股票数据API(第1期):沪深A股《历史分时MA》数据获取大全:附Python、Java等多语言实战教程与接口文档说明

近年来,股票量化分析以其科学、系统的方法论,逐渐成为金融科技领域的关键发展方向。全面、准确的数据是量化研究的基石——无论是实时交易数据、历史K线,还是反映企业内在价值的基本面信息,都是构建量化模型不可或缺的要素。我们致力于通过对多维度数据的深入挖掘,为投资决策提供可靠的数据支撑。

在数据获取方面,我曾尝试多种技术路径,包括从网易财经、申万行业数据平台抓取数据,以及采集同花顺问财的信息,也使用过聚宽等平台提供的免费API。然而实践发现,基于爬虫的方式存在显著短板:频繁遭遇反爬策略、页面结构变更导致代码维护成本高企,这些不确定性严重影响了数据获取的稳定性和持续性。

经系统测试与验证,我总结出一套稳定可靠的数据接口方案。本文将以Python、JavaScript(Node.js)、Java、C#及Ruby五种主流语言为例,通过具体代码示例系统展示如何高效获取多类股票数据,为量化研究者构建坚实的数据基础设施提供实践参考。

需要说明的是,下文所有接口示例中使用的 ZHITU_TOKEN_LIMIT_TEST 为官方提供的测试token,仅可用于接口功能验证。受权限限制,该token仅支持请求股票代码为000001的数据。实际应用时,请替换为自己申请的token就可以请求数据了。

1、python

import requests  
  
url = "http://api.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST"  
response = requests.get(url)  
data = response.json()  
print(data)

2、JavaScript (Node.js)

const axios = require('axios');  
  
const url = "http://api.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST";  
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.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST"))  
            .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.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST";  
            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.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST")  
  
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-18 00:00","ma3":12.6433,"ma5":12.728,"ma10":12.804,"ma15":12.6453,"ma20":12.5105,"ma30":12.2567,"ma60":11.788,"ma120":11.5928,"ma200":11.5698,"ma250":11.2809},{"t":"2025-07-21 00:00","ma3":12.6333,"ma5":12.654,"ma10":12.787,"ma15":12.6813,"ma20":12.5445,"ma30":12.2867,"ma60":11.8142,"ma120":11.6025,"ma200":11.5838,"ma250":11.291},{"t":"2025-07-22 00:00","ma3":12.6,"ma5":12.606,"ma10":12.767,"ma15":12.694,"ma20":12.5725,"ma30":12.3093,"ma60":11.8388,"ma120":11.6114,"ma200":11.5968,"ma250":11.3004},{"t":"2025-07-23 00:00","ma3":12.5433,"ma5":12.584,"ma10":12.736,"ma15":12.708,"ma20":12.596,"ma30":12.332,"ma60":11.8638,"ma120":11.6214,"ma200":11.6092,"ma250":11.31},{"t":"2025-07-24 00:00","ma3":12.4567,"ma5":12.536,"ma10":12.653,"ma15":12.708,"ma20":12.593,"ma30":12.3543,"ma60":11.8862,"ma120":11.6319,"ma200":11.6191,"ma250":11.3182},{"t":"2025-07-25 00:00","ma3":12.41,"ma5":12.466,"ma10":12.597,"ma15":12.6913,"ma20":12.6005,"ma30":12.38,"ma60":11.9087,"ma120":11.6405,"ma200":11.6284,"ma250":11.3263},{"t":"2025-07-28 00:00","ma3":12.3867,"ma5":12.436,"ma10":12.545,"ma15":12.67,"ma20":12.62,"ma30":12.4023,"ma60":11.9333,"ma120":11.6498,"ma200":11.6349,"ma250":11.3349},{"t":"2025-07-29 00:00","ma3":12.3833,"ma5":12.406,"ma10":12.506,"ma15":12.6467,"ma20":12.622,"ma30":12.4217,"ma60":11.9572,"ma120":11.6571,"ma200":11.6395,"ma250":11.3427},{"t":"2025-07-30 00:00","ma3":12.43,"ma5":12.398,"ma10":12.491,"ma15":12.6233,"ma20":12.6305,"ma30":12.4457,"ma60":11.9827,"ma120":11.6664,"ma200":11.6409,"ma250":11.351},{"t":"2025-07-31 00:00","ma3":12.3533,"ma5":12.374,"ma10":12.455,"ma15":12.56,"ma20":12.6245,"ma30":12.4633,"ma60":12.0027,"ma120":11.6737,"ma200":11.6377,"ma250":11.3584}]

历史分时MA

API地址:http://api.zhituapi.com/hs/history/ma/股票代码(如000001.SZ)/分时级别(如d)/除权类型(如n)?token=token证书&st=开始时间&et=结束时间&lt=最新条数

描述:根据《股票列表》得到的股票代码和分时级别获取历史MA数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。

更新频率:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新

字段名称数据类型字段说明
tstring交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd
ma3numberMA3,没有则为null
ma5numberMA5,没有则为null
ma10numberMA10,没有则为null
ma15numberMA15,没有则为null
ma20numberMA20,没有则为null
ma30numberMA30,没有则为null
ma60numberMA60,没有则为null
ma120numberMA120,没有则为null
ma200numberMA200,没有则为null
ma250numberMA250,没有则为null
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值