3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)量化平台中,使用 get_mtss 函数获取融资融券数据时,你会发现融资相关的数据单位是“元”(金额),而融券相关的数据单位是“股”(数量)。这主要是由融券交易的本质以及交易所的数据披露规则决定的。
fin_value(融资余额)、fin_buy_value(融资买入额)等字段的单位都是元。get_mtss 函数底层调用的数据来源于沪深交易所每日盘后公布的融资融券交易明细。根据交易所的披露标准:
聚宽的 API 忠实地还原了交易所的原始数据口径,因此 sec_value(融券余量)、sec_sell_value(融券卖出量)等字段的单位都是股。
如果你在量化策略中需要评估当前融券的市值(即融券金额),你可以通过融券余量乘以该股票的最新收盘价来动态计算。
以下是一个在聚宽研究环境或回测中计算融券金额的示例:
from jqdata import *
def get_short_selling_value(security, date):
"""
计算指定日期某只股票的融券余额(金额)
"""
# 1. 获取融券余量 (单位:股)
mtss_data = get_mtss(security, end_date=date, count=1, fields=['sec_value'])
if mtss_data.empty:
return 0.0
sec_volume = mtss_data['sec_value'].iloc[0]
# 2. 获取该股票在指定日期的收盘价 (单位:元)
# 注意:为了准确计算市值,通常使用不复权价格或前复权价格,这里以获取当日收盘价为例
price_data = get_price(security, end_date=date, count=1, frequency='daily', fields=['close'], fq=None)
if price_data.empty:
return 0.0
close_price = price_data['close'].iloc[0]
# 3. 计算融券金额 = 融券余量 * 收盘价
short_value = sec_volume * close_price
return short_value
# 测试:获取平安银行在 2023-10-10 的融券金额估算值
security_code = '000001.XSHE'
target_date = '2023-10-10'
value = get_short_selling_value(security_code, target_date)
print(f"{security_code} 在 {target_date} 的融券余量市值为: {value:.2f} 元")
get_mtss 返回融券量(股)是符合金融逻辑和交易所规范的。在实际量化建模中,如果需要用到金额,只需结合 get_price 获取同期价格进行乘积换算即可。