Files
qsdk/tushare/index.go
2026-05-01 11:03:19 +08:00

214 lines
4.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package tushare
/*
IndexBasic 获取大盘指数基本信息
ts_code: 指数代码,支持多个,逗号分隔
exchange: 交易所代码SSE 上交所SZSE 深交所
*/
func (cli *TushareClient) IndexBasic(ts_code, exchange string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_code
}
if exchange != "" {
params["exchange"] = exchange
}
req := TushareReq{
APIName: "index_basic",
Params: params,
}
fields := []map[string]string{
{"ts_code": "指数代码"},
{"name": "指数名称"},
{"market": "市场类别"},
{"publisher": "发布方"},
{"category": "指数类别"},
{"base_date": "基日"},
{"base_point": "基点"},
{"list_date": "发布日期"},
}
return cli.Do(req, fields)
}
/*
IndexWeight 获取指数成分和权重
index_code: 指数代码,如 000300.SH(沪深 300)
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) IndexWeight(index_code, trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if index_code != "" {
params["index_code"] = index_code
}
if trade_date != "" {
params["trade_date"] = trade_date
}
if start_date != "" {
params["start_date"] = start_date
}
if end_date != "" {
params["end_date"] = end_date
}
req := TushareReq{
APIName: "index_weight",
Params: params,
}
fields := []map[string]string{
{"index_code": "指数代码"},
{"trade_date": "交易日期"},
{"ts_code": "成分股票代码"},
{"weight": "权重%"},
}
return cli.Do(req, fields)
}
/*
IndexClassify 获取指数分类信息
level: 指数级别L1/L2/L3/L4
src: 指数来源SW 申万ZJW 证监会ICS iFinD
parent_code: 父级代码
*/
func (cli *TushareClient) IndexClassify(level, src, parent_code string) (*TushareRespData, error) {
params := map[string]any{}
if level != "" {
params["level"] = level
}
if src != "" {
params["src"] = src
}
if parent_code != "" {
params["parent_code"] = parent_code
}
req := TushareReq{
APIName: "index_classify",
Params: params,
}
fields := []map[string]string{
{"index_code": "指数代码"},
{"industry_name": "行业名称"},
{"industry_code": "行业代码"},
{"parent_code": "父级代码"},
{"level": "级别"},
{"src": "来源"},
}
return cli.Do(req, fields)
}
/*
IndexMember 获取指数成分股
index_code: 指数代码,如 000300.SH(沪深 300)
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) IndexMember(index_code, trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if index_code != "" {
params["index_code"] = index_code
}
if trade_date != "" {
params["trade_date"] = trade_date
}
if start_date != "" {
params["start_date"] = start_date
}
if end_date != "" {
params["end_date"] = end_date
}
req := TushareReq{
APIName: "index_member",
Params: params,
}
fields := []map[string]string{
{"index_code": "指数代码"},
{"trade_date": "交易日期"},
{"ts_code": "成分股票代码"},
{"symbol": "成分股票代码"},
{"name": "成分股票名称"},
{"is_new": "是否新增"},
{"in_date": "纳入日期"},
{"out_date": "剔除日期"},
}
return cli.Do(req, fields)
}
/*
Concept 获取概念板块信息
ts_code: 板块代码,支持多个,逗号分隔
name: 板块名称,支持模糊匹配
*/
func (cli *TushareClient) Concept(ts_code, name string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_code
}
if name != "" {
params["name"] = name
}
req := TushareReq{
APIName: "concept",
Params: params,
}
fields := []map[string]string{
{"ts_code": "板块代码"},
{"name": "板块名称"},
{"src": "来源"},
{"pub_date": "发布日期"},
}
return cli.Do(req, fields)
}
/*
ConceptDetail 获取概念板块详情
ts_code: 板块代码
*/
func (cli *TushareClient) ConceptDetail(ts_code string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_code
}
req := TushareReq{
APIName: "concept_detail",
Params: params,
}
fields := []map[string]string{
{"ts_code": "板块代码"},
{"name": "板块名称"},
{"concept_name": "概念名称"},
{"stock_count": "成分股票数量"},
}
return cli.Do(req, fields)
}