最近一两年,股票量化分析越来越受欢迎了。想要入行,首先得搞定股票数据。毕竟,所有量化分析都是建立在数据之上的,实时交易、历史交易、财务、基本面,这些数据咱们都得有。咱们的目标就是挖掘这些数据中的价值,来指导咱们的投资策略。
为了找数据,我可是尝试了各种方法,自己动手写过网易、申万行业的爬虫,还试过同花顺问财的,连聚宽的免费API 都用过。但爬虫这东西,数据总是不稳定,给量化分析带来不少困扰。
在量化分析领域,实时、准确的数据接口太重要了。现在我用Python 、 JavaScript ( Node.js )、 Java 、 C# 和 Ruby 五种主流语言的实例代码给大家演示一下如何获取股票 历史分时BOLLCD 数据:
历史分时 交易 数据是区分分时级别的,我这里演示的都是60 分钟级别的 历史分时 交易 数据,其他级别可以参考下面的API 文档自行修改参数就行了
1、 Python
import requests url = "http://api.mairui.club/hszbl/fsjy/000001/60m/b997d4403688d5e66a" response = requests.get(url) data = response.json() print(data)
2、 JavaScript (Node.js)
const axios = require('axios');
const url = "http://api.mairui.club/hszbl/fsjy/000001/60m/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 BOLLin {
public static void BOLLin(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://api.mairui.club/hszbl/fsjy/000001/60m/b997d4403688d5e66a"))
.build();
try {
HttpResponse 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 BOLLin()
{
using (HttpClient client = new HttpClient())
{
string url = "http://api.mairui.club/hszbl/fsjy/000001/60m/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/hszbl/fsjy/000001/60m/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
返回的数据示例:
[{"d":"2024-07-19 10:30","o":"10.38","h":"10.42","l":"10.30","c":"10.31","v":"317556","e":"328446466.00","zf":"1.15","hs":"0.16","zd":"-0.96","zde":"-0.10"},{"d":"2024-07-19 11:30","o":"10.31","h":"10.36","l":"10.29","c":"10.33","v":"232160","e":"239604970.00","zf":"0.68","hs":"0.12","zd":"0.19","zde":"0.02"},{"d":"2024-07-19 14:00","o":"10.32","h":"10.38","l":"10.31","c":"10.35","v":"142296","e":"147269842.00","zf":"0.68","hs":"0.07","zd":"0.19","zde":"0.02"},{"d":"2024-07-19 15:00","o":"10.34","h":"10.39","l":"10.33","c":"10.37","v":"206711","e":"214401378.00","zf":"0.58","hs":"0.11","zd":"0.19","zde":"0.02"},{"d":"2024-07-22 10:30","o":"10.36","h":"10.38","l":"10.19","c":"10.19","v":"561137","e":"575785727.00","zf":"1.83","hs":"0.29","zd":"-1.74","zde":"-0.18"},{"d":"2024-07-22 11:30","o":"10.20","h":"10.26","l":"10.19","c":"10.23","v":"123996","e":"126765735.00","zf":"0.69","hs":"0.06","zd":"0.39","zde":"0.04"},{"d":"2024-07-22 14:00","o":"10.23","h":"10.23","l":"10.19","c":"10.20","v":"150890","e":"153967494.00","zf":"0.39","hs":"0.08","zd":"-0.29","zde":"-0.03"},{"d":"2024-07-22 15:00","o":"10.20","h":"10.26","l":"10.19","c":"10.23","v":"158457","e":"162144843.00","zf":"0.69","hs":"0.08","zd":"0.29","zde":"0.03"},{"d":"2024-07-23 10:30","o":"10.25","h":"10.32","l":"10.23","c":"10.30","v":"314676","e":"323496417.00","zf":"0.88","hs":"0.16","zd":"0.68","zde":"0.07"}]
历史分时交易
API接口:http://api.mairui.club/hszbl/fsjy/股票代码(如000001)/分时级别/licence证书
接口说明:根据《股票列表》得到的股票代码以及分时级别获取分时交易数据,交易时间从远到近排序。目前 分时级别 支持5分钟、15分钟、30分钟、60分钟、日周月年级别(包括前后复权),对应的值分别是 5m(5分钟)、15m(15分钟)、30m(30分钟)、60m(60分钟)、dn(日线未复权)、dq(日线前复权)、dh(日线后复权)、wn(周线未复权)、wq(周线前复权)、wh(周线后复权)、mn(月线未复权)、mq(月线前复权)、mh(月线后复权)、yn(年线未复权)、yq(年线前复权)、yh(年线后复权) 。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每天16:00更新。
|
字段名称 |
数据类型 |
字段说明 |
|
d |
string |
交易时间,短分时级别格式为yyyy-MM-dd HH:mm:ss,日线级别为yyyy-MM-dd |
|
o |
number |
开盘价(元) |
|
h |
number |
最高价(元) |
|
l |
number |
最 低 价(元) |
|
c |
number |
收盘价(元) |
|
v |
number |
成交量(手) |
|
e |
number |
成交额(元) |
|
zf |
number |
振幅(%) |
|
hs |
number |
换手率(%) |
|
zd |
number |
涨跌幅(%) |
|
zde |
number |
涨跌额(元) |
【重要提示】
上方所有演示中的API 接口 Url 链接结尾的 b997d4403688d5e66a ,均为数据请求 licence 证书,因为这个证书是官方测试证书,仅可用于验证各个接口的有效性,所以这个证书限制了只可请求股票代码为 000001 的数据,正式环境中是不能使用的,证书可以自己去申请一个替换掉就好了,证书是免费申请的: https://www. BOLL irui.club/getlicence.html ,替换成自己申请的证书就可以请求任何股票数据了。