近一两年来,股票量化分析逐渐成为热门话题,而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。无论是实时交易数据、历史交易记录、详尽的财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据中挖掘出有价值的信息,为我们的投资策略提供有力的支持。
在数据探索的过程中,我尝试了多种途径,包括自编网易股票页面爬虫、申万行业数据爬虫,以及同花顺问财的爬虫,甚至还尝试了聚宽的免费数据API。然而,爬虫作为数据源常常显得不够稳定,给我们的量化分析带来不小的挑战。
在量化分析的世界里,实时且精确的数据接口是成功的关键。经过多次实战检验,我已确认一些数据接口均稳定可靠。现在,我非常愿意将这些珍贵资源分享给量化分析的同仁们,希望能够对你们的研究和工作有所助益。现在我用Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实例代码给大家演示一下如何获取股票次新股池数据:
1、python
import requests
url = "http://api.mairui.club/hslt/cxgc/2024-09-05/b997d4403688d5e66a"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
const axios = require('axios');
const url = "http://api.mairui.club/hslt/cxgc/2024-09-05/b997d4403688d5e66a";
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.mairui.club/hslt/cxgc/2024-09-05/b997d4403688d5e66a"))
.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.mairui.club/hslt/cxgc/2024-09-05/b997d4403688d5e66a";
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.mairui.club/hslt/cxgc/2024-09-05/b997d4403688d5e66a")
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":"sz301607","mc":"C富特","p":44.08,"ztp":null,"zf":-19.68,"cje":707122288.0,"lt":985988140.16,"zsz":4893522289.68,"nh":0,"hs":69.43,"tj":"0/0","kb":2,"od":"20240904","ipod":"20240904"},{"dm":"sz001277","mc":"C速达股","p":35.64,"ztp":null,"zf":-7.95,"cje":308360480.0,"lt":677160000.0,"zsz":2708640000.0,"nh":0,"hs":44.89,"tj":"0/0","kb":3,"od":"20240903","ipod":"20240903"}]
次新股池
API接口:http://api.mairui.club/hslt/cxgc/日期(如2020-01-15)/b997d4403688d5e66a
接口说明:根据日期(格式yyyy-MM-dd,从2019-11-28开始到现在的每个交易日)作为参数,得到每天的次新股票列表,根据开板几日升序。
数据更新:交易时间段每10分钟
字段名称 | 数据类型 | 字段说明 |
---|---|---|
dm | string | 代码 |
mc | string | 名称 |
p | number | 价格(元) |
ztp | number | 涨停价(元,无涨停价为null) |
zf | number | 涨跌幅(%) |
cje | number | 成交额(元) |
lt | number | 流通市值(元) |
zsz | number | 总市值(元) |
nh | number | 是否新高(0:否,1:是) |
hs | number | 转手率(%) |
tj | string | 涨停统计(x天/y板) |
【重要提示】
上方所有演示中的API接口Url链接结尾的b997d4403688d5e66a,均为数据请求licence证书,因为这个证书是官方测试证书,仅可用于验证各个接口的有效性,所以这个证书限制了只可请求股票代码为000001的数据,正式环境中是不能使用的,证书可以自己去申请一个替换掉就好了,证书是免费申请的:https://www.mairui.club/getlicence.html,替换成自己申请的证书就可以请求任何股票数据了。