近一两年来,股票量化分析逐渐成为热门话题,而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。无论是实时交易数据、历史交易记录、详尽的财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据中挖掘出有价值的信息,为我们的投资策略提供有力的支持。
在数据探索的过程中,我尝试了多种途径,包括自编网易股票页面爬虫、申万行业数据爬虫,以及同花顺问财的爬虫,甚至还尝试了聚宽的免费数据API。然而,爬虫作为数据源常常显得不够稳定,给我们的量化分析带来不小的挑战。
在量化分析的世界里,实时且精确的数据接口是成功的关键。经过多次实战检验,我已确认一些数据接口均稳定可靠。现在,我非常愿意将这些珍贵资源分享给量化分析的同仁们,希望能够对你们的研究和工作有所助益。现在我用Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实例代码给大家演示一下如何获取股票历史成交分布数据:
1、python
import requests
url = "http://api.mairui.club/hsmy/lscj/000001/b997d4403688d5e66a"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
const axios = require('axios');
const url = "http://api.mairui.club/hsmy/lscj/000001/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/hsmy/lscj/000001/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/hsmy/lscj/000001/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/hsmy/lscj/000001/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
返回的数据:
[{"t":"2024-09-06","c":10.08,"zdf":0.1,"jlrl":-0.65,"hsl":0.45,"qbjlr":-5820932.19,"cddlr":488933818.95,"cddjlr":54035973.45,"ddlr":255737192.78,"ddjlr":-42978254.02,"xdlr":112541406.25,"xdjlr":-13644090.71,"sdlr":36954972.61,"sdjlr":-3234560.91},{"t":"2024-09-05","c":10.07,"zdf":0.5,"jlrl":2.54,"hsl":0.31,"qbjlr":15142933.05,"cddlr":267576071.78,"cddjlr":-15822990.82,"ddlr":168069020.87,"ddjlr":15433574.85,"xdlr":118587899.2,"xdjlr":14785391.6,"sdlr":43928452.58,"sdjlr":746957.42},{"t":"2024-09-04","c":10.02,"zdf":-0.6,"jlrl":-8.28,"hsl":0.44,"qbjlr":-70529419.28,"cddlr":448686972.14,"cddjlr":-45526059.78,"ddlr":242575450.62,"ddjlr":-24956531.62,"xdlr":125181036.0,"xdjlr":1275973.0,"sdlr":39499293.88,"sdjlr":-1322800.88},{"t":"2024-09-03","c":10.08,"zdf":-0.3,"jlrl":-6.77,"hsl":0.47,"qbjlr":-62372991.58,"cddlr":501806914.05,"cddjlr":-115250536.07,"ddlr":237094616.0,"ddjlr":5620058.0,"xdlr":142081824.51,"xdjlr":33556923.49,"sdlr":42570655.0,"sdjlr":13700563.0},{"t":"2024-09-02","c":10.11,"zdf":-0.49,"jlrl":3.03,"hsl":0.5,"qbjlr":29789878.58,"cddlr":506408849.64,"cddjlr":-12992823.98,"ddlr":305649635.57,"ddjlr":24893797.15,"xdlr":137987984.33,"xdjlr":11425790.95,"sdlr":43560601.38,"sdjlr":6463114.46},{"t":"2024-08-30","c":10.16,"zdf":0.3,"jlrl":-1.49,"hsl":0.67,"qbjlr":-19615902.29,"cddlr":658844210.22,"cddjlr":-17169314.46,"ddlr":438168044.08,"ddjlr":-9904097.24,"xdlr":190213154.37,"xdjlr":5191118.81,"sdlr":35934551.0,"sdjlr":2266390.6},{"t":"2024-08-29","c":10.13,"zdf":-1.94,"jlrl":-10.28,"hsl":0.62,"qbjlr":-125607317.29,"cddlr":626519801.0,"cddjlr":-144183061.7,"ddlr":392770269.52,"ddjlr":-11304184.52,"xdlr":166293575.04,"xdjlr":24233008.46,"sdlr":38182681.47,"sdjlr":5646920.47},{"t":"2024-08-28","c":10.31,"zdf":-1.15,"jlrl":-5.95,"hsl":0.48,"qbjlr":-57559084.78,"cddlr":442574427.57,"cddjlr":-83373733.03,"ddlr":325992270.72,"ddjlr":23301518.36,"xdlr":168622289.55,"xdjlr":3275057.19,"sdlr":33826116.3,"sdjlr":-761927.3},{"t":"2024-08-27","c":10.43,"zdf":-0.57,"jlrl":-3.81,"hsl":0.37,"qbjlr":-28797763.6,"cddlr":324135426.41,"cddjlr":-38335783.87,"ddlr":263488961.05,"ddjlr":5103579.81,"xdlr":132190346.0,"xdjlr":4429545.0,"sdlr":38450020.78,"sdjlr":4895.46},{"t":"2024-08-26","c":10.49,"zdf":0.19,"jlrl":7.52,"hsl":0.38,"qbjlr":58315230.26,"cddlr":365826982.54,"cddjlr":61623085.54,"ddlr":243599154.1,"ddjlr":-4767999.78,"xdlr":135229799.5,"xdjlr":-174769.7,"sdlr":44273795.68,"sdjlr":1634914.2}]
历史成交分布
API接口:http://api.mairui.club/hsmy/lscj/股票代码(如000001)/b997d4403688d5e66a
接口说明:根据《股票列表》得到的股票代码作为参数,得到近十年每天历史成交分布,按时间倒序。
数据更新:每天20:00开始更新(更新耗时约4小时)
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 时间yyyy-MM-dd |
c | number | 收盘价(元) |
zdf | number | 涨跌幅(%) |
jlrl | number | 净流入率(%) |
hsl | number | 换手率(%) |
qbjlr | number | 全部净流入(元) |
cddlr | number | 超大单流入(元) |
cddjlr | number | 超大单净流入(元) |
ddlr | number | 大单流入(元) |
ddjlr | number | 大单净流入(元) |
xdlr | number | 小单流入(元) |
xdjlr | number | 小单净流入(元) |
sdlr | number | 散单流入(元) |
sdjlr | number | 散单净流入(元) |
【重要提示】
上方所有演示中的API接口Url链接结尾的b997d4403688d5e66a,均为数据请求licence证书,因为这个证书是官方测试证书,仅可用于验证各个接口的有效性,所以这个证书限制了只可请求股票代码为000001的数据,正式环境中是不能使用的,证书可以自己去申请一个替换掉就好了,证书是免费申请的:https://www.mairui.club/getlicence.html,替换成自己申请的证书就可以请求任何股票数据了。