1. 股票历史分时BOLL数据接口详解
作为一名量化交易开发者,我深知获取准确、稳定的股票数据对策略开发的重要性。今天要分享的是一个实测可用的沪深A股历史分时BOLL数据API接口,这个接口我已经在多个量化项目中实际应用过,效果相当不错。
BOLL指标(布林线)是技术分析中常用的趋势指标,由三条轨道线组成:上轨(Upper Band)、中轨(Middle Band)和下轨(Lower Band)。这个API接口提供了完整的BOLL历史数据,支持从5分钟到年线的多种时间周期,对于开发量化交易策略非常有价值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 接口参数详解与使用指南
2.1 接口URL结构解析
接口基础URL格式为:
code复制http://api.momaapi.com/hsstock/history/boll/{股票代码}/{分时级别}/{除权类型}/{您的Token}?st=开始时间&et=结束时间<=最新条数
让我们拆解每个参数的实际含义和使用方法:
- 股票代码:格式为"000001.SZ"(平安银行)或"600000.SH"(浦发银行),注意必须包含交易所后缀
- 分时级别:支持从5分钟到年线的多种时间周期(具体值见下文)
- 除权类型:
- 'n':不复权
- 'q':前复权
- 'h':后复权
- Token:API访问凭证,测试阶段可以使用官方提供的测试Token
2.2 分时级别参数详解
这个接口最强大的功能之一就是支持多种时间周期的BOLL数据获取,具体参数对应关系如下:
| 参数值 | 对应周期 | 说明 |
|---|---|---|
| 5 | 5分钟 | 每5分钟一条数据 |
| 15 | 15分钟 | 每15分钟一条数据 |
| 30 | 30分钟 | 每30分钟一条数据 |
| 60 | 60分钟 | 每小时一条数据 |
| d | 日线 | 每日收盘数据 |
| dq | 日线前复权 | 考虑分红送股的前复权数据 |
| dh | 日线后复权 | 考虑分红送股的后复权数据 |
| w | 周线 | 每周收盘数据 |
| wq | 周线前复权 | 周线前复权数据 |
| wh | 周线后复权 | 周线后复权数据 |
| m | 月线 | 每月收盘数据 |
| mq | 月线前复权 | 月线前复权数据 |
| mh | 月线后复权 | 月线后复权数据 |
| y | 年线 | 每年收盘数据 |
| yq | 年线前复权 | 年线前复权数据 |
| yh | 年线后复权 | 年线后复权数据 |
提示:对于量化交易策略开发,建议使用前复权(dq/wq/mq/yq)数据,这样可以消除分红送股对价格的影响,使历史数据更具连续性。
3. 多语言调用示例与解析
3.1 Python调用实现
Python是量化分析最常用的语言之一,使用requests库调用这个API非常简单:
python复制import requests
import pandas as pd
def get_boll_data(stock_code, freq='d', adjust='n', token='YOUR_TOKEN',
start_date=None, end_date=None, limit=None):
"""
获取股票BOLL历史数据
:param stock_code: 股票代码,如'000001.SZ'
:param freq: 分时级别,如'd'表示日线
:param adjust: 除权类型,'n'=不复权,'q'=前复权,'h'=后复权
:param token: API访问令牌
:param start_date: 开始日期,格式'YYYY-MM-DD'
:param end_date: 结束日期,格式'YYYY-MM-DD'
:param limit: 获取最新多少条数据
:return: pandas DataFrame
"""
base_url = f"http://api.momaapi.com/hsstock/history/boll/{stock_code}/{freq}/{adjust}/{token}"
params = {}
if start_date:
params['st'] = start_date
if end_date:
params['et'] = end_date
if limit:
params['lt'] = limit
response = requests.get(base_url, params=params)
data = response.json()
# 转换为DataFrame并处理时间格式
df = pd.DataFrame(data)
if not df.empty:
df['t'] = pd.to_datetime(df['t'])
df.set_index('t', inplace=True)
return df
# 示例:获取平安银行最近30天的日线BOLL数据
boll_data = get_boll_data('000001.SZ', limit=30)
print(boll_data.head())
注意事项:在实际使用中,建议添加异常处理逻辑,特别是对网络请求和JSON解析部分。此外,API可能有调用频率限制,需要合理控制请求间隔。
3.2 Java调用实现
对于使用Java进行量化开发的场景,可以使用HttpClient来调用这个API:
java复制import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.util.concurrent.CompletableFuture;
public class BollDataFetcher {
private static final String BASE_URL = "http://api.momaapi.com/hsstock/history/boll";
private fi
