【量化分析实例代码2】Python等多种主流语言的演示如何获取股票历史交易数据

最近一两年,股票量化分析越来越受欢迎了。想要入行,首先得搞定股票数据。毕竟,所有量化分析都是建立在数据之上的,实时交易、历史交易、财务、基本面,这些数据咱们都得有。咱们的目标就是挖掘这些数据中的价值,来指导咱们的投资策略。

 

为了找数据,我可是尝试了各种方法,自己动手写过网易、申万行业的爬虫,还试过同花顺问财的,连聚宽的免费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 ,替换成自己申请的证书就可以请求任何股票数据了。

 


请使用浏览器的分享功能分享到微信等