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) }