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

210 lines
4.9 KiB
Go
Raw Permalink 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
/*
HkHold 获取沪深股通持股明细
ts_code: 股票代码
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) HkHold(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: "hk_hold",
Params: params,
}
fields := []map[string]string{
{"ts_code": "股票代码"},
{"trade_date": "交易日期"},
{"holding_sh": "沪股通持股数量 (股)"},
{"holding_sz": "深股通持股数量 (股)"},
{"holding_total": "沪深股通持股总量 (股)"},
{"ratio_sh": "沪股通持股比例%"},
{"ratio_sz": "深股通持股比例%"},
{"ratio_total": "沪深股通持股比例合计%"},
}
return cli.Do(req, fields)
}
/*
MarginDetail 获取融资融券明细
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
exchange: 交易所代码SSE 上交所SZSE 深交所
*/
func (cli *TushareClient) MarginDetail(trade_date, start_date, end_date, exchange string) (*TushareRespData, error) {
params := map[string]any{}
if trade_date != "" {
params["trade_date"] = trade_date
}
if start_date != "" {
params["start_date"] = start_date
}
if end_date != "" {
params["end_date"] = end_date
}
if exchange != "" {
params["exchange"] = exchange
}
req := TushareReq{
APIName: "margin_detail",
Params: params,
}
fields := []map[string]string{
{"trade_date": "交易日期"},
{"ts_code": "股票代码"},
{"buy_value": "融资买入额 (元)"},
{"buy_repay_value": "融资偿还额 (元)"},
{"buy_bal": "融资余额 (元)"},
{"sell_value": "融券卖出量 (股)"},
{"sell_repay_value": "融券偿还量 (股)"},
{"sell_bal": "融券余量 (股)"},
{"sell_amount": "融券余量金额 (元)"},
}
return cli.Do(req, fields)
}
/*
TopList 获取龙虎榜数据
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) TopList(trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
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: "top_list",
Params: params,
}
fields := []map[string]string{
{"trade_date": "交易日期"},
{"ts_code": "股票代码"},
{"name": "股票名称"},
{"close": "收盘价"},
{"pct_chg": "涨跌幅%"},
{"turnover_rate": "换手率%"},
{"total_value": "成交总额 (万元)"},
{"net_value": "净额 (万元)"},
{"buy_value": "买入总额 (万元)"},
{"sell_value": "卖出总额 (万元)"},
{"reason": "上榜原因"},
}
return cli.Do(req, fields)
}
/*
TopInst 获取龙虎榜机构席位数据
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) TopInst(trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
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: "top_inst",
Params: params,
}
fields := []map[string]string{
{"trade_date": "交易日期"},
{"ts_code": "股票代码"},
{"name": "股票名称"},
{"buy_value": "机构买入总额 (万元)"},
{"buy_count": "机构买入次数"},
{"sell_value": "机构卖出总额 (万元)"},
{"sell_count": "机构卖出次数"},
{"net_value": "机构净买入额 (万元)"},
}
return cli.Do(req, fields)
}
/*
BlockTrade 获取大宗交易数据
trade_date: 交易日期,格式:YYYYMMDD
start_date: 开始日期,格式:YYYYMMDD
end_date: 结束日期,格式:YYYYMMDD
*/
func (cli *TushareClient) BlockTrade(trade_date, start_date, end_date string) (*TushareRespData, error) {
params := map[string]any{}
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: "block_trade",
Params: params,
}
fields := []map[string]string{
{"trade_date": "交易日期"},
{"ts_code": "股票代码"},
{"name": "证券简称"},
{"price": "成交价"},
{"vol": "成交量 (万股)"},
{"amount": "成交额 (万元)"},
{"buyer": "买方营业部"},
{"seller": "卖方营业部"},
{"premium_rate": "溢价率%"},
}
return cli.Do(req, fields)
}