Files
qsdk/tushare/finance.go
2026-05-02 10:01:33 +08:00

216 lines
5.2 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
/*
DailyBasic 获取股票日线指标
ts_code: 股票代码,支持多个,逗号分隔
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) DailyBasic(ts_code, trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_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: "daily_basic",
Params: params,
}
fields := []map[string]string{
{"ts_code": "股票代码"},
{"trade_date": "交易日期"},
{"close": "收盘价"},
{"turnover_rate": "换手率%"},
{"turnover_rate_f": "换手率% (自由流通股本)"},
{"volume_ratio": "量比"},
{"pe": "市盈率"},
{"pe_ttm": "市盈率 TTM"},
{"pb": "市净率"},
{"ps": "市销率"},
{"ps_ttm": "市销率 TTM"},
{"dv_ratio": "股息率%"},
{"total_mv": "总市值"},
{"circ_mv": "流通市值"},
}
return cli.Do(req, fields)
}
/*
AdjFactor 获取复权因子
ts_code: 股票代码,支持多个,逗号分隔
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) AdjFactor(ts_code, trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_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: "adj_factor",
Params: params,
}
fields := []map[string]string{
{"ts_code": "股票代码"},
{"trade_date": "交易日期"},
{"adj_factor": "复权因子"},
}
return cli.Do(req, fields)
}
/*
Moneyflow 获取个股资金流向
ts_code: 股票代码,支持多个,逗号分隔
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) Moneyflow(ts_code, trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_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: "moneyflow",
Params: params,
}
fields := []map[string]string{
{"ts_code": "TS代码"},
{"trade_date": "交易日期"},
{"buy_sm_vol": "小单买入量 (手)"},
{"buy_sm_amount": "小单买入金额 (万元)"},
{"sell_sm_vol": "小单卖出量 (手)"},
{"sell_sm_amount": "小单卖出金额 (万元)"},
{"buy_md_vol": "中单买入量 (手)"},
{"buy_md_amount": "中单买入金额 (万元)"},
{"sell_md_vol": "中单卖出量 (手)"},
{"sell_md_amount": "中单卖出金额 (万元)"},
{"buy_lg_vol": "大单买入量 (手)"},
{"buy_lg_amount": "大单买入金额 (万元)"},
{"sell_lg_vol": "大单卖出量 (手)"},
{"sell_lg_amount": "大单卖出金额 (万元)"},
{"buy_elg_vol": "特大单买入量 (手)"},
{"buy_elg_amount": "特大单买入金额 (万元)"},
{"sell_elg_vol": "特大单卖出量 (手)"},
{"sell_elg_amount": "特大单卖出金额 (万元)"},
{"net_mf_vol": "净流入量 (手)"},
{"net_mf_amount": "净流入额 (万元)"},
}
return cli.Do(req, fields)
}
/*
SuspendList 获取停牌股票列表
suspend_type: 停牌类型1:盘中停牌2:盘中临时停牌3:全天停牌
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) SuspendList(suspend_type, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
if suspend_type != "" {
params["suspend_type"] = suspend_type
}
if start_date != "" {
params["start_date"] = start_date
}
if end_date != "" {
params["end_date"] = end_date
}
req := TushareReq{
APIName: "suspend_list",
Params: params,
}
fields := []map[string]string{
{"ts_code": "股票代码"},
{"name": "股票名称"},
{"suspend_type": "停牌类型"},
{"suspend_start": "停牌起始日"},
{"suspend_end": "停牌结束日"},
{"reason": "停牌原因"},
}
return cli.Do(req, fields)
}
/*
RealtimeQuote 获取实时行情
ts_code: 股票代码,支持多个,逗号分隔
*/
func (cli *TushareClient) RealtimeQuote(ts_code string) (*TushareRespData, error) {
params := map[string]any{}
if ts_code != "" {
params["ts_code"] = ts_code
}
req := TushareReq{
APIName: "realtime_quote",
Params: params,
}
fields := []map[string]string{
{"ts_code": "股票代码"},
{"price": "最新价"},
{"open": "开盘价"},
{"high": "最高价"},
{"low": "最低价"},
{"pre_close": "昨收价"},
{"vol": "成交量 (手)"},
{"amount": "成交额 (千元)"},
{"buy_vol": "买总量 (手)"},
{"sell_vol": "卖总量 (手)"},
{"buy_amount": "买总额 (千元)"},
{"sell_amount": "卖总额 (千元)"},
}
return cli.Do(req, fields)
}