在近一至两年期间,股票量化分析逐步成为备受关注的热门议题。对于投身于该领域工作而言,首要步骤便是获取全面且精准的股票数据。无论是实时交易数据、历史交易记录、财务数据,亦或是基本面信息,这些数据均是开展量化分析过程中不可或缺的宝贵资源。我们的核心任务在于从这些数据中提炼出具有价值的信息,从而为投资策略提供坚实有力的指导。
在数据探索进程中,我尝试运用了多种方法,涵盖自编网易股票页面爬虫程序、申万行业数据爬虫程序,以及同花顺问财的爬虫程序,甚至还采用了聚宽的免费数据 API。然而,爬虫作为数据来源,时常呈现出稳定性不足的状况,给我们的量化分析工作带来了一定程度的困扰 。
在量化分析领域,实时且准确的数据接口是成功的基石。经过多次实际测试,我将已确认可用的数据接口分享给正在从事量化分析的朋友们,希望能够对你们的研究和工作有所帮助,接下来我会用Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实例代码给大家逐一演示一下如何获取各类股票数据:
1、python
import requests
url = "https://api.zhituapi.com/hs/pool/dtgc/2024-01-10?token=ZHITU_TOKEN_LIMIT_TEST"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
const axios = require('axios');
const url = "https://api.zhituapi.com/hs/pool/dtgc/2024-01-10?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("https://api.zhituapi.com/hs/pool/dtgc/2024-01-10?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 = "https://api.zhituapi.com/hs/pool/dtgc/2024-01-10?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("https://api.zhituapi.com/hs/pool/dtgc/2024-01-10?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
返回的数据:
[{"dm":"sz002888","mc":"惠威科技","p":21.42,"zf":-10.0,"cje":541754256.0,"lt":1619363266.92,"zsz":3204682185.6,"pe":2001.86,"hs":31.96,"lbc":1,"lbt":"15:00:00","zj":1939795,"fba":32045816.0,"zbc":2},{"dm":"sz000595","mc":"宝塔实业","p":5.4,"zf":-10.0,"cje":476276416.0,"lt":6146375407.2,"zsz":6148744387.2,"pe":-91.26,"hs":7.45,"lbc":1,"lbt":"14:56:42","zj":2446200,"fba":24075359.0,"zbc":1},{"dm":"sh600329","mc":"达仁堂","p":31.63,"zf":-9.99,"cje":708590896.0,"lt":17898407243.88,"zsz":24360106143.36,"pe":21.29,"hs":3.88,"lbc":1,"lbt":"14:25:54","zj":6901666,"fba":172764313.0,"zbc":24},{"dm":"sh600697","mc":"欧亚集团","p":13.99,"zf":-9.97,"cje":493076000.0,"lt":2173710449.85,"zsz":2225642169.25,"pe":99.55,"hs":21.93,"lbc":1,"lbt":"14:45:56","zj":7112516,"fba":56795622.0,"zbc":5}]
跌停股池
API地址:https://api.zhituapi.com/hs/pool/dtgc/交易日期?token=token证书
描述:根据日期(格式yyyy-MM-dd,从2019-11-28开始到现在的每个交易日)作为参数,得到每天的跌停股票列表,根据封单资金升序。
更新频率:交易时间段每10分钟
字段名称 | 数据类型 | 字段说明 |
---|---|---|
dm | string | 代码 |
mc | string | 名称 |
p | number | 价格(元) |
zf | number | 跌幅(%) |
cje | number | 成交额(元) |
lt | number | 流通市值(元) |
zsz | number | 总市值(元) |
pe | number | 动态市盈率 |
hs | number | 换手率(%) |
lbc | number | 连续跌停次数 |
lbt | string | 最后封板时间(HH:mm:ss) |
zj | number | 封单资金(元) |
fba | number | 板上成交额(元) |
zbc | number | 开板次数 |
【重要提示】
上方所有演示中的API接口Url链接结尾的ZHITU_TOKEN_LIMIT_TEST,均为数据请求token证书,因为这个证书是官方测试证书,仅可用于验证各个接口的有效性,所以这个证书限制了只可请求股票代码为000001的数据,正式环境中是不能使用的,证书可以自己去申请一个替换掉就好了,证书是免费申请的:https://www.zhituapi.com/gettoken.html,替换成自己申请的证书就可以请求任何股票数据了。