最近一两年内,股票量化分析逐渐成为热门话题。而从事这一领域工作的第一步,就是获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的主要任务是从这些数据中提炼出有价值的信息,为我们的投资策略提供有力的指导。
在数据探索的旅途中,我尝试了多种方法,包括自编网易股票页面爬虫、申万行业数据爬虫,以及同花顺问财的爬虫,甚至还使用了聚宽的免费数据API。然而,爬虫作为数据源常常显得不够稳定,给我们的量化分析带来不小的困扰。
在量化分析领域,实时且准确的数据接口是成功的基石。经过多次实际测试,我将已确认可用的数据接口分享给正在从事量化分析的朋友们,希望能够对你们的研究和工作有所帮助,接下来我会用Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实例代码给大家逐一演示一下如何获取各类股票数据:
1、python
import requests
url = "http://api.mairui.club/hscp/jdxj/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/hscp/jdxj/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/hscp/jdxj/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/hscp/jdxj/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/hscp/jdxj/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
返回的数据:
[{"date":"2024-06-30","jyin":"50,878,400.00","jyout":"39,506,200.00","jyfinal":"11,372,200.00","tzin":"29,409,700.00","tzout":"26,600,400.00","tzfinal":"2,809,300.00","czin":"45,294,400.00","czout":"59,982,500.00","czfinal":"-14,688,100.00","hl":"103,200.00","cashinc":"-403,400.00","cashs":"29,821,900.00","cashe":"29,418,500.00"},{"date":"2024-03-31","jyin":"22,175,200.00","jyout":"24,313,400.00","jyfinal":"-2,138,200.00","tzin":"12,364,300.00","tzout":"11,533,200.00","tzfinal":"831,100.00","czin":"29,476,400.00","czout":"27,196,300.00","czfinal":"2,280,100.00","hl":"92,300.00","cashinc":"1,065,300.00","cashs":"29,821,900.00","cashe":"30,887,200.00"},{"date":"2023-12-31","jyin":"52,903,500.00","jyout":"43,657,400.00","jyfinal":"9,246,100.00","tzin":"44,072,500.00","tzout":"46,686,700.00","tzfinal":"-2,614,200.00","czin":"93,341,600.00","czout":"92,532,700.00","czfinal":"808,900.00","hl":"148,500.00","cashinc":"7,589,300.00","cashs":"22,232,600.00","cashe":"29,821,900.00"},{"date":"2023-09-30","jyin":"43,959,000.00","jyout":"32,366,000.00","jyfinal":"11,593,000.00","tzin":"34,152,800.00","tzout":"29,149,900.00","tzfinal":"5,002,900.00","czin":"64,898,900.00","czout":"74,001,200.00","czfinal":"-9,102,300.00","hl":"345,300.00","cashinc":"7,838,900.00","cashs":"22,232,600.00","cashe":"30,071,500.00"},{"date":"2023-06-30","jyin":"34,319,300.00","jyout":"29,895,200.00","jyfinal":"4,424,100.00","tzin":"22,989,100.00","tzout":"19,118,200.00","tzfinal":"3,870,900.00","czin":"47,282,700.00","czout":"48,139,100.00","czfinal":"-856,400.00","hl":"335,100.00","cashinc":"7,773,700.00","cashs":"22,232,600.00","cashe":"30,006,300.00"}]