ok
This commit is contained in:
209
tushare/margin.go
Normal file
209
tushare/margin.go
Normal file
@@ -0,0 +1,209 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user