通达信行情协议的 Go 客户端,覆盖主行情、扩展市场、MAC 板块/统一行情、F10/文件接口,以及一个可直接运行的 Web Viewer。
快速开始 · 能力概览 · 示例 · Web Viewer · API 速览 · 测试 · 协议文档
gotdx 把通达信协议里常用的查询能力整理成更偏 Go 的调用方式。你可以直接查主行情和扩展市场的快照、K 线、分时、逐笔,也可以继续往下钻到 F10、财务、板块文件、扩展表格和 MAC 板块协议;如果只是想先看接口返回长什么样,仓库里还带了一个可以直接打开的网页查看器。
Client 同时管理主站和扩展市场,适合做统一监控和跨市场抓取。Stock* / Ex* / MAC* / Goods*,以及面向协议细节的底层 Get* / ExGet*。cmd/webviewer,不写代码也能直接调方法、填参数、看返回字段。go get github.com/bensema/gotdx
package main
import (
"log"
"github.com/bensema/gotdx"
)
func main() {
mainHosts := gotdx.MainHostAddresses()
exHosts := gotdx.ExHostAddresses()
client := gotdx.New(
gotdx.WithTCPAddress(mainHosts[0]),
gotdx.WithTCPAddressPool(mainHosts[1:]...),
gotdx.WithExTCPAddress(exHosts[0]),
gotdx.WithExTCPAddressPool(exHosts[1:]...),
gotdx.WithAutoSelectFastest(true),
gotdx.WithTimeoutSec(6),
)
defer client.Disconnect()
stocks, err := client.StockQuotesDetail(
[]uint8{gotdx.MarketSZ, gotdx.MarketSH},
[]string{"000001", "600519"},
)
if err != nil {
log.Fatal(err)
}
for _, item := range stocks {
log.Printf("stock code=%s price=%.2f turnover=%.2f%%", item.Code, item.Price, item.Turnover)
}
exQuotes, err := client.ExQuotes(
[]uint8{gotdx.ExCategoryUSStock},
[]string{"TSLA"},
)
if err != nil {
log.Fatal(err)
}
for _, item := range exQuotes {
log.Printf("ex: %+v", item)
}
}
Stock* / Ex* / MAC* 统一高阶入口。Get* / ExGet* / GetMAC* 底层接口。go run ./cmd/webviewer。results := gotdx.ProbeHosts(gotdx.MainHosts(), time.Second)
for _, item := range results[:3] {
log.Printf("main host=%s addr=%s reachable=%v latency=%s",
item.Name, item.Address, item.Reachable, item.Latency)
}
fastest, err := gotdx.FastestHost(gotdx.ExHosts(), time.Second)
if err != nil {
log.Fatal(err)
}
log.Printf("fastest ex host: %s %s", fastest.Name, fastest.Address)
client := gotdx.New(
gotdx.WithAutoSelectFastest(true),
gotdx.WithTimeoutSec(6),
)
可用列表包括:MainHosts、BrokerHosts、ExHosts、MACHosts、MACExHosts,以及对应的 *HostAddresses 便捷函数。
| 模块 | 典型能力 | 代表接口 |
|---|---|---|
| 主行情 | 股票/指数列表、快照、K 线、分时、逐笔、指数工具、异动、集合竞价 | StockQuotesDetail, StockKLine, StockIndexInfo, StockUnusual, StockAuction |
| 扩展市场 | 美股/港股/期货等扩展标的列表、报价、K 线、历史成交、表格 | ExQuotes, ExKLine, ExHistoryTransaction, ExTable |
| TDX 商品语义 | 对齐 goods_* 命名的商品总览、列表、报价、K 线、分时、历史成交 |
GoodsCount, GoodsList, GoodsVarieties, GoodsQuotes, GoodsKLine |
| F10 与文件 | 公司信息分类、正文、财务、除权除息、文件下载、板块文件 | GetCompanyInfo, GetFinanceInfo, GetXDXRInfo, DownloadFullFile |
| MAC 协议 | 板块列表、成分股、成分报价、动态成分报价、批量股票报价、单只快照、逐笔成交、竞价、多日分时、股票摘要、资金流向、服务端交易时段、K线偏移信息、文件查询/下载、市场监控、所属板块、统一 K 线 | MACBoardList, MACBoardMembers, MACBoardMembersWithSort, MACBoardMembersQuotes, MACBoardMembersQuotesWithSort, MACBoardMembersQuotesDynamic, MACBoardMembersQuotesDynamicWithFilter, MACSymbolQuotes, MACQuotes, MACTransactions, MACAuction, MACTickCharts, MACSymbolInfo, MACCapitalFlow, MACServerInfo, MACKLineOffset, MACMarketMonitor, MACSymbolBars |
| ICFQS HTTP | 主题投资、主题行情、批量行情、龙虎榜、每日复盘等 TQLEX/JSON 原始接口 | NewICFQS, PostTQL, ICFQSTopicListRaw, ICFQSQuotesBatchRaw, ICFQSMRFPRaw |
| 协议调试 | 原始协议响应、扩展实验接口、网页查看器 | MainTodoB, MainClient26AD, ExExperiment2487, cmd/webviewer |
proto/: 各协议的请求/响应序列化与反序列化实现。client_quote.go: 主行情底层接口。client_exquote.go: 扩展市场底层接口。client_mac.go: MAC 协议接口。client_unified.go / client_goods.go: Stock* / Ex* / MAC* / Goods* 高阶统一入口。cmd/webviewer/: 浏览器调试界面。examples/: 可直接运行的示例。下面这些命令可以直接运行:
| 场景 | 命令 |
|---|---|
| 主行情快照 | go run ./examples/stock_quotes |
| 批量主行情 | go run ./examples/stock_batch_quotes |
| 列表与分页遍历 | go run ./examples/stock_list / go run ./examples/stock_paged_list |
| 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/stock_market_watch |
| 主机测速与地址池 | go run ./examples/host_probe |
| 主站服务与试验协议 | go run ./examples/stock_server_info / go run ./examples/main_experimental |
| 主行情兼容协议 | go run ./examples/stock_list_old / go run ./examples/stock_feature_452 / go run ./examples/stock_quotes_encrypt / go run ./examples/stock_kline_offset / go run ./examples/stock_history_transaction_with_trans |
| 扩展市场单只/批量报价 | go run ./examples/ex_quote / go run ./examples/ex_quotes / go run ./examples/ex_quotes2 |
| 扩展市场列表与分类 | go run ./examples/ex_count / 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_list_extra / go run ./examples/ex_board_list / go run ./examples/ex_experiment_2487 / go run ./examples/ex_experiment_2488 / go run ./examples/ex_kline2 / go run ./examples/ex_mapping_2562 |
| 扩展市场表格 | go run ./examples/ex_table / go run ./examples/ex_table_detail |
| TDX 商品语义入口 | go run ./examples/goods_overview |
| MAC 协议 | go run ./examples/mac_board_list / go run ./examples/mac_board_members / go run ./examples/mac_board_members_quotes / go run ./examples/mac_board_members_quotes_dynamic / go run ./examples/mac_symbol_quotes / go run ./examples/mac_market_monitor / go run ./examples/mac_quotes / go run ./examples/mac_transactions / go run ./examples/mac_auction / go run ./examples/mac_tick_charts / go run ./examples/mac_symbol_info / go run ./examples/mac_capital_flow / go run ./examples/mac_server_info / go run ./examples/mac_kline_offset / go run ./examples/mac_file_query / go run ./examples/mac_symbol_belong_board / go run ./examples/mac_symbol_bars |
| ICFQS HTTP 原始接口 | go run ./examples/icfqs_raw |
| 统一监控示例 | go run ./examples/unified_watchlist |
查看完整示例目录
examples/stock_countexamples/stock_server_infoexamples/stock_listexamples/stock_list_oldexamples/stock_paged_listexamples/stock_batch_quotesexamples/stock_quotesexamples/stock_quotes_encryptexamples/stock_lowlevel_quoteexamples/stock_quotes_listexamples/stock_klineexamples/stock_kline_offsetexamples/stock_feature_452examples/stock_index_toolsexamples/stock_tickexamples/stock_historyexamples/stock_history_transaction_with_transexamples/stock_market_watchexamples/host_probeexamples/icfqs_rawexamples/stock_transactionexamples/stock_f10_blockexamples/stock_company_rawexamples/stock_block_rawexamples/main_experimentalexamples/ex_countexamples/ex_quoteexamples/ex_listexamples/ex_list_extraexamples/ex_paged_listexamples/ex_quotesexamples/ex_quotes2examples/ex_quotes_listexamples/ex_klineexamples/ex_kline2examples/ex_board_listexamples/ex_experiment_2487examples/ex_experiment_2488examples/ex_mapping_2562examples/goods_overviewexamples/ex_historyexamples/ex_tickexamples/ex_server_infoexamples/ex_samplingexamples/ex_category_listexamples/ex_tableexamples/ex_table_detailexamples/mac_board_listexamples/mac_board_membersexamples/mac_board_members_quotesexamples/mac_board_members_quotes_dynamicexamples/mac_symbol_quotesexamples/mac_market_monitorexamples/mac_quotesexamples/mac_transactionsexamples/mac_auctionexamples/mac_tick_chartsexamples/mac_symbol_infoexamples/mac_capital_flowexamples/mac_server_infoexamples/mac_kline_offsetexamples/mac_file_queryexamples/mac_symbol_belong_boardexamples/mac_symbol_barsexamples/unified_watchlist仓库内置了一个轻量的网页查看器,适合在这些场景下使用:
bit/name/format/description,也可以用 TDX 商品语义分组调 goods_* 入口。
启动:
go run ./cmd/webviewer
默认地址:
http://127.0.0.1:8080
Web Viewer 中的 ICFQS HTTP 原始接口已按 主题投资、行情、龙虎榜、每日复盘 分组;多表响应可用 table_index 选择展示的 ResultSets,完整响应保留在 Raw 面板。
StockQuotesDetail、StockQuotesList、StockQuotes 会按证券列表里的 DecimalPoint 尽力修正非 2 位小数价格,并在可获取到流通股本时补齐 Turnover。StockCount, StockList, StockQuotesDetail, StockKLine, StockTickChart, StockIndexInfo, StockIndexMomentum, StockChartSampling, StockAuction, StockTopBoard, StockUnusual, StockVolumeProfile, StockHistoryOrders, StockHistoryTransaction, StockF10ExCount, ExList, ExQuote, ExQuotes, ExKLine, ExTickChart, ExHistoryTransaction, ExTableGoodsCount, GoodsCategoryList, GoodsList, GoodsVarieties, GoodsQuote, GoodsQuotes, GoodsQuotesList, GoodsKLine, GoodsTickChart, GoodsChartSampling, GoodsHistoryTransactionMACBoardList, MACBoardMembers, MACBoardMembersWithSort, MACBoardMembersQuotes, MACBoardMembersQuotesWithSort, MACBoardMembersQuotesDynamic, MACBoardMembersQuotesDynamicWithFilter, MACSymbolQuotes, MACQuotes, MACQuotesWithDate, MACTransactions, MACTransactionsWithDate, MACAuction, MACTickCharts, MACSymbolInfo, MACCapitalFlow, MACFileList, MACDownloadFullFile, MACMarketMonitor, MACSymbolBelongBoard, MACSymbolBars;MACSymbolBars 会基于返回的流通股本字段尽力补齐 Turnover。GetSecurityCount, GetSecurityListRange, GetQuotesDetail, GetIndexInfo, GetIndexMomentum, GetVolumeProfile, GetMinuteTimeData, GetAuction, GetTopBoard, GetUnusual, GetTransactionData, GetHistoryOrdersGetCompanyCategories, GetCompanyContent, GetFinanceInfo, GetXDXRInfo, DownloadFile, GetBlockFileExGetCategoryList, ExGetQuotesList, ExGetQuote, ExGetChartSampling, ExGetFileMeta, ExDownloadFileGetMACBoardCount, GetMACBoardList, GetMACBoardMembers, GetMACBoardMembersQuotes, GetMACBoardMembersQuotesDynamic, GetMACBoardMembersQuotesDynamicWithFilter, GetMACSymbolQuotes, GetMACQuotes, GetMACQuotesWithDate, GetMACTransactions, GetMACTransactionsWithDate, GetMACAuction, GetMACTickCharts, GetMACSymbolInfo, GetMACCapitalFlow, GetMACFileList, GetMACFileDownload, GetMACMarketMonitor, GetMACSymbolBelongBoard, GetMACSymbolBarsMainHosts, BrokerHosts, ExHosts, MACHosts, MACExHostsMainHostAddresses, BrokerHostAddresses, ExHostAddresses, MACHostAddresses, MACExHostAddressesProbeHosts, ProbeAddresses, FastestHost, FastestAddressClient.ProbeHosts, Client.FastestHost, WithAutoSelectFastestMainTodoB, MainTodoFDE, MainClient264B, MainClient26AC, MainClient26AD, MainClient26AE, MainClient26B1StockListOld, StockFeature452, StockQuotesEncrypt, StockKLineOffset, StockHistoryTransactionWithTransExListExtra, ExExperiment2487, ExExperiment2488, ExKLine2, ExMapping2562GoodsCount, GoodsCategoryList, GoodsList, GoodsVarieties, GoodsQuote, GoodsQuotes, GoodsQuotesList, GoodsKLine, GoodsTickChart, GoodsChartSampling, GoodsHistoryTransaction查看更完整的接口分组
Connect, DisconnectGetExchangeAnnouncement, GetServerHeartbeat, GetAnnouncement, GetServerInfoGetSecurityCount, GetSecurityQuotes, GetQuotesDetail, GetQuotesEncryptGetSecurityList, GetSecurityListOld, GetSecurityListRangeGetKLine, GetSecurityBars, GetSecurityBarsOffset, GetIndexBarsGetIndexMomentum, GetIndexInfo, GetMinuteTimeData, GetTickChart, GetHistoryMinuteTimeData, GetHistoryTickChartGetChartSampling, GetAuction, GetTopBoard, GetUnusualGetTransactionData, GetHistoryOrders, GetHistoryTransactionData, GetHistoryTransactionDataWithTransGetCompanyCategories, GetCompanyContent, GetFinanceInfo, GetXDXRInfo, GetCompanyInfoGetFileMeta, DownloadFile, DownloadFullFileGetBlockFile, GetTableFile, GetCSVFile, GetParsedBlockFile, GetGroupedBlockFileConnectEx, GetExServerInfoExGetCount, ExGetCategoryList, ExGetList, ExGetListExtraExGetQuotesList, ExGetQuote, ExGetQuotes, ExGetQuotes2ExGetKLine, ExGetKLine2ExGetHistoryTransaction, ExGetTickChart, ExGetHistoryTickChart, ExGetChartSamplingExGetBoardList, ExGetMapping2562ExGetFileMeta, ExDownloadFile, `ExDownload$ claude mcp add gotdx \
-- python -m otcore.mcp_server <graph>