214 lines
4.5 KiB
Go
214 lines
4.5 KiB
Go
|
|
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)
|
|||
|
|
}
|