📈 通达信行情协议的 Go 客户端。
覆盖主行情、扩展市场、F10 / 文件接口、板块文件解析,以及一个可直接运行的 Web Viewer。
🚀 快速开始 · 🧪 示例 · 🖥️ Web Viewer · 📚 API 范围 · 📄 协议文档
gotdx 把通达信协议里常用的查询能力整理成一个偏 Go 风格的包:你可以直接做主行情和扩展市场的实时查询,也可以往下钻到 F10、财务、板块、文件下载和表格接口;如果只是想先把协议跑起来,仓库还自带了一个能直接浏览方法和参数的网页查看器。
- 一个
Client同时管理主行情与扩展市场,适合做组合监控和跨市场抓取。 - 提供地址池与超时配置,适合对接不稳定的真实行情站点。
- 既有
Stock* / Ex*高阶统一入口,也保留底层原始接口,方便封装和排查协议细节。 - 仓库内置 30+ 可直接运行的示例,覆盖从证券列表、K 线、分时到 F10、板块、扩展市场表格。
- 附带
cmd/webviewer,可以不写代码先看协议返回什么。
安装:
go get github.com/bensema/gotdx最小可运行示例:
package main
import (
"log"
"github.com/bensema/gotdx"
)
func main() {
client := gotdx.New(
gotdx.WithTCPAddress("124.71.187.122:7709"),
gotdx.WithTCPAddressPool(
"124.71.187.72:7709",
"124.70.133.119:7709",
),
gotdx.WithExTCPAddress("112.74.214.43:7727"),
gotdx.WithExTCPAddressPool(
"120.25.218.6:7727",
"43.139.173.246:7727",
),
gotdx.WithTimeoutSec(6),
)
defer client.Disconnect()
stocks, err := client.StockQuotesDetail(
[]uint8{gotdx.MarketSZ, gotdx.MarketSH},
[]string{"000001", "600519"},
)
if err != nil {
log.Fatalln(err)
}
for _, item := range stocks {
log.Printf("stock: %+v", item)
}
exQuotes, err := client.ExQuotes(
[]uint8{gotdx.ExCategoryUSStock},
[]string{"TSLA"},
)
if err != nil {
log.Fatalln(err)
}
for _, item := range exQuotes {
log.Printf("ex: %+v", item)
}
}| 能力层 | 你会用它做什么 | 代表接口 |
|---|---|---|
| 连接与容错 | 指定主站、扩展站、地址池、超时和重试 | New, WithTCPAddressPool, WithExTCPAddressPool, WithTimeoutSec |
| 主行情 | A 股/指数列表、快照、K 线、分时、逐笔、异动 | StockQuotesDetail, GetSecurityList, GetSecurityBars, GetMinuteTimeData, GetTransactionData |
| 扩展市场 | 美股/港股/期货等扩展市场列表、报价、K 线、表格 | ExQuotes, ExQuotes2, ExGetKLine, ExGetTable, ExGetTableDetail |
| 文件与 F10 | 公司资料、财务、除权除息、文件下载 | GetCompanyInfo, GetFinanceInfo, GetXDXRInfo, DownloadFullFile |
| 板块与聚合 | 板块文件、分组板块、统一高阶入口 | GetBlockFile, GetParsedBlockFile, GetGroupedBlockFile, ExBoardList |
| 浏览与调试 | 直接在浏览器里调方法、填参数、看表格结果 | go run ./cmd/webviewer |
下面这些示例都可以直接运行:
| 场景 | 命令 |
|---|---|
| 主行情快照 | go run ./examples/stock_quotes |
| 批量主行情 | go run ./examples/stock_batch_quotes |
| K 线与指数工具 | go run ./examples/stock_kline / go run ./examples/stock_index_tools |
| 分时、历史分时、逐笔 | go run ./examples/stock_tick / go run ./examples/stock_history / go run ./examples/stock_transaction |
| F10、公司资料、板块文件 | go run ./examples/stock_f10_block / go run ./examples/stock_company_raw / go run ./examples/stock_block_raw |
| 扩展市场报价 | go run ./examples/ex_quote / go run ./examples/ex_quotes / go run ./examples/ex_quotes2 |
| 扩展市场列表与分类 | go run ./examples/ex_list / go run ./examples/ex_paged_list / go run ./examples/ex_category_list |
| 扩展市场 K 线、分时、历史成交 | go run ./examples/ex_kline / go run ./examples/ex_tick / go run ./examples/ex_history |
| 扩展市场表格 | go run ./examples/ex_table / go run ./examples/ex_table_detail |
| 统一监控示例 | go run ./examples/unified_watchlist |
查看完整示例目录
examples/stock_count市场证券数量examples/stock_list股票列表examples/stock_paged_list股票列表分页遍历examples/stock_batch_quotes批量快照行情examples/stock_quotes主行情报价examples/stock_lowlevel_quote直连主行情低层报价接口examples/stock_quotes_list排序行情examples/stock_klineK 线examples/stock_index_tools指数和抽样图接口examples/stock_tick分时examples/stock_history历史分时和历史成交examples/stock_market_watch集合竞价、异动、成交分布examples/stock_transaction当日逐笔成交examples/stock_f10_blockF10 和板块文件examples/stock_company_raw公司/F10 原始接口examples/stock_block_raw板块文件原始接口examples/ex_count扩展市场数量examples/ex_quote单个扩展市场报价examples/ex_list扩展市场列表examples/ex_paged_list扩展市场列表分页遍历examples/ex_quotes扩展市场报价examples/ex_quotes2扩展市场批量行情兼容接口examples/ex_quotes_list扩展市场排序行情examples/ex_kline扩展市场 K 线examples/ex_history扩展市场历史成交examples/ex_tick扩展市场分时examples/ex_server_info扩展市场连接和服务信息examples/ex_sampling扩展市场抽样图examples/ex_category_list扩展市场分类列表examples/ex_table扩展市场表格examples/ex_table_detail扩展市场详细表格examples/unified_watchlist统一 Client 组合监控示例
仓库内置了一个轻量 viewer,可以直接浏览 method、填写参数并以表格查看结果,适合快速验证协议字段和接口行为。
运行:
go run ./cmd/webviewer默认地址:
http://127.0.0.1:8080
查看完整 API 清单
Connect连接券商行情服务器Disconnect断开服务器GetSecurityCount获取指定市场内的证券数目GetSecurityQuotes获取盘口五档报价GetQuotesDetail获取详细行情报价GetSecurityList获取市场内指定范围内的所有证券代码GetSecurityListRange获取市场内指定范围内的证券代码GetKLine获取 K 线GetSecurityBars获取股票 K 线GetIndexBars获取指数 K 线GetIndexMomentum获取指数动量GetIndexInfo获取指数概况GetMinuteTimeData获取分时图数据GetTickChart获取当日分时图数据GetHistoryMinuteTimeData获取历史分时图数据GetHistoryTickChart获取历史分时图数据GetChartSampling获取抽样图数据GetAuction获取集合竞价GetTopBoard获取排行榜GetUnusual获取主力监控GetTransactionData获取分时成交GetHistoryOrders获取历史委托GetHistoryTransactionData获取历史分时成交
GetCompanyCategories获取公司信息分类GetCompanyContent获取公司信息内容GetFinanceInfo获取财务信息GetXDXRInfo获取除权除息信息GetCompanyInfo获取公司信息聚合结果GetFileMeta获取文件元信息DownloadFile下载文件片段DownloadFullFile下载完整文件GetBlockFile获取完整板块文件GetTableFile获取表格文件GetCSVFile获取 CSV 文件GetParsedBlockFile获取解析后的板块文件GetGroupedBlockFile获取分组板块文件
ConnectEx连接扩展市场服务器并完成登录GetExServerInfo获取扩展市场服务信息ExGetCount获取扩展市场标的数量ExGetCategoryList获取扩展市场分类列表ExGetList获取扩展市场标的列表ExGetQuotesList获取扩展市场行情列表ExGetQuote获取单个扩展市场行情ExGetQuotes获取批量扩展市场行情ExGetQuotes2获取批量扩展市场行情兼容接口ExGetKLine获取扩展市场 K 线ExGetHistoryTransaction获取扩展市场历史成交ExGetTickChart获取扩展市场当日分时图ExGetHistoryTickChart获取扩展市场历史分时图ExGetChartSampling获取扩展市场抽样图ExGetBoardList获取扩展市场板块榜单ExGetFileMeta获取扩展市场文件元信息ExDownloadFile下载扩展市场文件片段ExDownloadFullFile下载完整扩展市场文件ExGetTable获取扩展市场表格ExGetTableDetail获取扩展市场详细表格
ExQuotes2统一 Client 扩展市场批量行情兼容入口ExBoardList统一 Client 扩展市场板块榜单入口Stock* / Ex*统一 Client 高阶入口
单元测试:
go test ./...集成测试默认跳过;如需连接真实站点:
GOTDX_INTEGRATION=1 go test ./...- TdxProtocol.md: 协议分析笔记
- docs/images/webviewer-screenshot.png: Web Viewer 截图
