207 lines
4.8 KiB
Go
207 lines
4.8 KiB
Go
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": "股票代码"},
|
||
{"trade_date": "交易日期"},
|
||
{"buy_sm_amount": "小单买入金额 (千元)"},
|
||
{"sell_sm_amount": "小单卖出金额 (千元)"},
|
||
{"buy_md_amount": "中单买入金额 (千元)"},
|
||
{"sell_md_amount": "中单卖出金额 (千元)"},
|
||
{"buy_lg_amount": "大单买入金额 (千元)"},
|
||
{"sell_lg_amount": "大单卖出金额 (千元)"},
|
||
{"buy_elg_amount": "特大单买入金额 (千元)"},
|
||
{"sell_elg_amount": "特大单卖出金额 (千元)"},
|
||
{"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)
|
||
}
|