Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

42 Commits

Repository files navigation

XTick Java SDK

实时行情报价数据接口

XTick提供实时行情报价数据接入解决方案 - Java版本SDK

项目介绍

XTick Java SDK是一个专业的金融数据API客户端库,提供了全面、准确、稳定的行情数据接入能力。本SDK基于Java语言开发,支持HTTP REST API方式,帮助开发者和研究者快速构建创新的交易和分析工具。

主要特性:

  • 📊 提供完整的K线数据查询(多周期、复权支持)
  • 💹 丰富的技术指标计算(MACD、KDJ、RSI等100+指标)
  • 💰 财务数据查询(资产负债表、利润表、现金流量表等)
  • 🔥 热点数据追踪(龙虎榜、市场情绪、板块概念)
  • ⚡ 量化因子数据(47个量化指标字段)
  • 🔄 支持数据全推和按需订阅

官方网站:http://www.xtick.top
GitHub地址:https://github.com/xticktop/xtick
Gitee地址:https://gitee.com/xtick

已接入数据预览

接入数据预览

数据类别数据细分更新方式数据全推获取方式历史数据范围
tick数据tick实时数据实时更新数据全推api调用

指数和北证:2025年10月-至今

A股、ETF:2025年2月-至今

tick历史数据盘后更新按个股获取api调用
竞价数据竞价实时数据实时更新数据全推api调用

竞价历史:2025年7月-至今

竞价历史详情:2025年2月-至今

竞价历史数据9:25分更新数据全推api调用
竞价历史详情数据9:25分更新按个股获取api调用
分钟数据1分钟实时数据实时更新数据全推api调用

分钟级别数据:2024年4月-至今

所有分钟周期数据,均支持复权

1分钟K线数据按1分钟频率实时更新数据全推api调用
其它分钟K线数据按1分钟频率实时更新按个股获取api调用
日线数据日线实时数据实时更新数据全推api调用

日线级别数据:公司上市-至今

日线数据支持复权

日线历史数据3:35分更新数据全推api调用
量化数据量化因子实时数据实时更新数据全推api调用2008年1月-至今
量化因子历史数据3:35分更新数据全推api调用
核心指标核心指标实时数据实时更新按个股获取api调用参考量化数据
金融指标金融指标实时数据实时更新按个股获取api调用

分钟级别指标:2024年4月-至今

日线级别指标:公司上市-至今

金融指标历史数据3:35分更新按个股获取api调用
财务数据盘后更新盘后更新按个股获取api调用2008年1月-至今
其它数据交易日历3:35分更新按个股获取api调用公司上市-至今
股票列表盘后更新按个股获取api调用每日更新
复权变更数据盘后更新按个股获取api调用公司上市-至今

API接口文档

XTick Java SDK提供了完整的API接口封装,主要分为以下几个模块:

核心类说明

  • XTickStockApiClient - HTTP API客户端主类,提供所有REST API接口的示例调用
  • XTickMarketApi - 行情数据API(K线、股票信息、交易日历等)
  • XTickIndicatorApi - 技术指标API(100+金融指标计算)
  • XTickWatchApi - 盯盘数据API(深度行情、日K线实时、成交统计、日K线复权等)
  • XTickCoreApi - 核心数据API(分时成交、分价表、竞价数据等)
  • XTickHotApi - 热点数据API(板块概念、资金流向、新闻舆情等)
  • XTickQuantApi - 量化数据API(47个量化因子字段)

接口分类

1. 行情数据接口 (XTickMarketApi)

XTickMarketApimarketApi = newXTickMarketApi();
// 参数说明:// type: 标的类型 (1=沪深京A股, 2=沪深指数, 3=港股, 4=ETF基金, 5=沪深可转债)// code: 股票代码// period: K线周期 (1m/5m/15m/30m/1h/1d/1w/1mon/1q/1y)// fq: 复权类型 (1=不复权, 2=前复权, 3=后复权, 4=等比前复权, 5=等比后复权)// startDate: 起始日期 (yyyy-MM-dd)// endDate: 结束日期 (yyyy-MM-dd)Stringresult = marketApi.getKlineMarket(
1, "000001", "1d", "2", "2025-01-01", "2025-12-31", token, MethodType.POST);
List<XTickKlineData> klines = JsonUtil.jsonToList(result, XTickKlineData.class);

获取实时分钟数据

// 获取当天实时1分钟K线数据Stringresult = marketApi.getKlineMinute(1, "000001", "2", token, MethodType.POST);

获取股票列表

// symbol可选值:all/sz/sh/bj/hk/index/bond/cyb/kcb/etf/st/tsStringresult = marketApi.getStockInfo("sz", token, MethodType.POST);
List<XTickStockInfo> stocks = JsonUtil.jsonToList(result, XTickStockInfo.class);

获取交易日历

Stringresult = marketApi.getCalendar(
"000001", "2025-01-01", "2025-12-31", token, MethodType.POST);
List<XTickStockCalendar> calendars = JsonUtil.jsonToList(result, XTickStockCalendar.class);

2. 技术指标接口 (XTickIndicatorApi)

支持100+金融技术指标计算,包括:

常用指标示例:

XTickIndicatorApiindicatorApi = newXTickIndicatorApi();
// MACD指标Stringresult = indicatorApi.macd(
1, "000001", "1d", "2",
"2025-01-01", "2025-12-31",
token, 2, // inReal: 2=收盘价12, // optInFastPeriod26, // optInSlowPeriod9, // optInSignalPeriodMethodType.POST);
// KDJ指标 (STOCH)result = indicatorApi.stoch(
1, "000001", "1d", "2",
"2025-01-01", "2025-12-31",
token,
9, // optInFastK_Period5, // optInSlowK_Period2, // optInSlowK_MAType (2=EMA)5, // optInSlowD_Period2, // optInSlowD_MAType (2=EMA)MethodType.POST);
// RSI指标result = indicatorApi.rsi(
1, "000001", "1d", "2",
"2025-01-01", "2025-12-31",
token,
2, // inReal: 2=收盘价14, // optInTimePeriodMethodType.POST);

支持的指标列表(部分):

  • 趋势指标: ADX, ADXR, APO, AROON, MACD, MACDEXT, PPO, TRIX等
  • 震荡指标: CCI, CMO, MFI, RSI, STOCH, STOCHF, WILLR等
  • 成交量指标: AD, ADOSC, OBV, MFI等
  • 价格指标: AVGPRICE, MEDPRICE, TYPPRICE, WCLPRICE等
  • 希尔伯特变换: HTDCPERIOD, HTDCPHASE, HTPHASOR, HTSINE等
  • 其他指标: BOP, DX, MOM, PLUSDI, MINUSDI, ROC, ROCP等

详细指标文档请访问:http://www.xtick.top/indicator

3. 财务数据接口 (XTickMarketApi)

XTickMarketApimarketApi = newXTickMarketApi();
// 股东数Stringresult = marketApi.getHolderNum("000001", "2024-01-01", "2025-12-31", token, MethodType.POST);
// 财务指标result = marketApi.getCoreFinancial("000001", "2024-01-01", "2025-12-31", token, MethodType.POST);
// 十大股东result = marketApi.getTopHolder("000001", "2024-01-01", "2025-12-31", token, MethodType.POST);
// 十大流通股东result = marketApi.getTopFlowHolder("000001", "2024-01-01", "2025-12-31", token, MethodType.POST);

财务报表类型:

  • Balance - 资产负债表
  • Income - 利润表
  • CashFlow - 现金流量表
  • Capital - 股本表
  • Holdernum - 股东数
  • Top10holder - 十大股东
  • Top10flowholder - 十大流通股东
  • Pershareindex - 每股指标

4. 盯盘数据接口 (XTickWatchApi)

XTickWatchApiwatchApi = newXTickWatchApi();
// 日K线-实时数据(支持批量参数,支持ALL参数,适合盯盘)Stringresult = watchApi.getOrderDay(1, "000001", token, MethodType.POST);
// 分钟K线-实时数据(支持批量参数,支持ALL参数)result = watchApi.getOrderMinute(1, "000001", token, MethodType.POST);
// 深度行情-实时数据result = watchApi.getDeep(1, "000001", token, MethodType.POST);
// 深度行情-历史数据(盘后更新)result = watchApi.getTickHistory(1, "000001", "2025-01-15", token, MethodType.POST);
// 成交统计-实时接口(全市场成交额统计)result = watchApi.getAmount("2025-01-15", token, MethodType.POST);
// 日K线复权-更新接口(盘后更新,仅支持近一周增量数据)// fq: 1=不复权, 2=前复权, 3=后复权, 4=等比前复权, 5=等比后复权result = watchApi.getFqKline(1, "2", "2025-01-15", token, MethodType.POST);

5. 核心数据接口 (XTickCoreApi)

XTickCoreApicoreApi = newXTickCoreApi();
// 分时成交数据Stringresult = coreApi.getCoreFenbi(1, "000001", "2025-01-15", token, MethodType.POST);
List<XTickTimeDeal> fenbiDatas = JsonUtil.jsonToList(result, XTickTimeDeal.class);
// 分价表数据result = coreApi.getCoreFenjia(1, "000001", "2025-01-15", token, MethodType.POST);
List<XTickTimePrice> fenjiaDatas = JsonUtil.jsonToList(result, XTickTimePrice.class);
// 竞价数据-实时result = coreApi.getCoreBidTime(1, "000001", "", token, MethodType.POST);
List<XTickBidTime> bidTimes = JsonUtil.jsonToList(result, XTickBidTime.class);
// 停牌股票result = coreApi.getCoreTingpai(1, "603311", "2025-01-01", "2025-12-31", token, MethodType.POST);
// ST股票历史result = coreApi.getCoreSt(1, "600636", "2025-01-01", "2025-12-31", token, MethodType.POST);
// 复权变更数据result = coreApi.getCoreChuQuan(1, "000001", "2025-01-01", "2025-12-31", token, MethodType.POST);
// 历史价格result = coreApi.getCorePrice(1, "000001", 1, "2025-01-01", "2025-12-31", token, MethodType.POST);

6. 热点数据接口 (XTickHotApi)

XTickHotApihotApi = newXTickHotApi();
// 连板天梯-实时接口(flag: 1=涨停, 2=跌停, 3=炸板)Stringresult = hotApi.getHotBoard(1, 1, "2025-01-15", token, MethodType.POST);
// 市场情绪-实时接口result = hotApi.getHotEmotion(1, "2025-01-15", token, MethodType.POST);
// 资金流向-实时接口result = hotApi.getHotTimeMoney(1, "000001", token, MethodType.POST);
// 资金流向-历史接口result = hotApi.getHotHistoryMoney(1, "000001", "2025-01-01", "2025-01-15", token, MethodType.POST);
// 竞价数据-历史接口result = hotApi.getHotBidHistory(1, "000001", "2025-01-15", "2025-01-15", token, MethodType.POST);
// 竞价详情-实时接口result = hotApi.getHotBidDetail(1, "000001", "2025-01-15", token, MethodType.POST);
// 新闻资讯-实时接口result = hotApi.getHotNews(30, "2025-01-15", token, MethodType.POST);
// 日内分时-实时接口result = hotApi.getHotTimekline(1, "000001", token, MethodType.POST);
// 概念板块成分股数据(symbol如:sw3/thshy/gn/dy等)result = hotApi.getHotBk("sw3", token, MethodType.POST);
// 股票关联概念板块数据result = hotApi.getHotGainian("000001", token, MethodType.POST);
// 增量更新-热点数据result = hotApi.getHotDayUpdate("bid", "all", "2026-07-15", token, MethodType.POST);

7. 量化数据接口 (XTickQuantApi)

XTickQuantApiquantApi = newXTickQuantApi();
// 获取量化因子实时数据Stringresult = quantApi.getQunatData(1, "all", token, MethodType.POST);
QuantPacketquantData = JsonUtil.jsonToObj(result, QuantPacket.class);
// 转换为字段Map(按指标字段组织数据)Map<String, Object> fieldMap = quantData.toFieldMap();
// 转换为股票Map(按个股组织数据)Map<String, Object> stockMap = quantData.toStockMap();
// 获取量化因子历史数据result = quantApi.getQuantHistory("2025-01-15", token, MethodType.POST);

量化因子字段定义(47个字段):

字段代码字段名称字段代码字段名称
x001昨收价x025流通市值
x002最新价x026市净率
x003开盘价x027换手率
x004最高价x028实际换手率
x005最低价x029涨幅
x006成交量x0305日涨幅
x007成交额x03110日涨幅
x008涨跌x03220日涨幅
x009振幅x0335日均线
x010均价x03410日均线
x011现均差x03520日均线
x012涨停价x03630日均线
x013跌停价x03760日均线
x014涨停板(-1/1)x038120日均线
x015涨速x039MACD-DIF
x0161分钟涨速x040MACD-DEA
x0172分钟涨速x041MACD-MACD
x0183分钟涨速x042KDJ-K
x0194分钟涨速x043KDJ-D
x0205分钟涨速x044KDJ-J
x021静态市盈率x045RSI
x022动态市盈率x046WR
x023TTM市盈率x047CCI
x024总市值

项目结构

src/main/java/org/xtick/
├── XTickStockApiClient.java # HTTP API客户端主类(包含所有示例)
├── api/ # API接口模块
│ ├── XTickMarketApi.java # 行情数据API
│ ├── XTickIndicatorApi.java # 技术指标API
│ ├── XTickWatchApi.java # 盯盘数据API
│ ├── XTickCoreApi.java # 核心数据API
│ ├── XTickHotApi.java # 热点数据API
│ ├── XTickQuantApi.java # 量化数据API
├── bean/ # 数据模型
│ ├── base/ # 基础数据模型
│ ├── core/ # 核心数据模型
│ ├── finance/ # 财务数据模型
│ ├── hot/ # 热点数据模型
│ └── ... # 其他数据模型
├── constant/ # 常量定义
│ ├── XTickConst.java # 系统常量
│ └── MethodType.java # 请求方法类型
├── http/ # HTTP工具
│ ├── HttpClientRest.java # HTTP客户端封装
│ └── ...
└── util/ # 工具类
├── JsonUtil.java # JSON工具
└── XTickUtil.java # XTick通用工具

使用建议

1. 性能优化

  • 批量查询: 合理设置批量参数,避免频繁调用
  • 缓存策略: 对不常变化的数据(如股票列表、交易日历)进行缓存
  • 连接池: HTTP请求建议使用连接池管理

2. 错误处理

try {
Stringresult = marketApi.getKlineMarket(1, "000001", "1d", "2", "2025-01-01", "2025-12-31", token, MethodType.POST);
List<XTickKlineData> klines = JsonUtil.jsonToList(result, XTickKlineData.class);
// 处理数据...
} catch (IOExceptione) {
System.err.println("API调用失败: " + e.getMessage());
// 重试逻辑或错误处理
}

3. 最佳实践

  • Token安全: 不要将Token硬编码在代码中,建议使用配置文件或环境变量
  • 限流控制: 注意API调用频率,避免触发限流
  • 数据验证: 对返回数据进行有效性验证
  • 日志记录: 记录关键API调用和错误信息

常见问题

Q1: 如何获取API Token?

访问 XTick官网 注册账号,登录后在个人中心获取Token。

Q2: 分钟数据单次请求时间跨度限制?

period为分钟类型(1m、5m、15m、30m、1h),单次请求时间跨度最大为30天。

Q3: 如何获取全市场数据?

将code参数设置为"all",例如:

Stringresult = marketApi.getKlineMarket(1, "all", "1d", "1", "2025-01-15", "2025-01-15", token, MethodType.POST);

Q4: 支持哪些市场?

  • 沪深京A股 (type=1)
  • 沪深指数 (type=2)
  • 港股 (type=3)
  • ETF基金 (type=4)
  • 沪深可转债 (type=5)

数据更新说明

数据类型更新频率历史数据范围
Tick实时数据实时更新2025年2月-至今(A股、ETF)
2025年10月-至今(指数、北证)
Tick历史数据盘后更新同上
竞价实时数据实时更新2025年7月-至今
竞价历史详情9:25分更新2025年2月-至今
1分钟K线实时更新2024年4月-至今
其他周期K线实时更新2024年4月-至今(支持复权)
日线数据实时更新公司上市-至今(支持复权)
量化因子实时更新2008年1月-至今
财务数据盘后更新2008年1月-至今
交易日历3:35分更新公司上市-至今

Skills资源

XTick提供了AI Skills开源项目,方便AI助手更好地理解和使用API:

Skills文档路径:/doc/references

社区与支持

贡献指南

欢迎提交Issue和Pull Request!如果您发现bug或有改进建议,请通过以下方式反馈:

  1. 在GitHub/Gitee上提交Issue
  2. 发送邮件至 xticktop@163.com
  3. 加入QQ群交流

许可证

本项目仅供学习和研究使用,请勿用于商业用途。使用时请遵守XTick的使用条款。

致谢

感谢所有使用和支持XTick项目的开发者们!您的支持是我们持续维护和改进的动力。


⭐ 如果这个项目对您有帮助,请给我们一个Star! ⭐

About

实时股票数据API,实时Tick数据,买卖五档数据,股票高频数据,tick数据,一分钟数据,五分钟数据,实时数据

Topics

Resources

Stars

104 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages