3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
get_assure_contract 查询可标的担保品在 QMT(迅投/国信 QMT)进行融资融券量化交易时,筛选可作为担保品的标的股票是两融选股策略的核心第一步。通过 QMT 提供的 get_assure_contract 接口,投资者可以快速获取当前信用账户支持的所有担保品合约明细。
get_assure_contractget_assure_contract 函数用于获取指定两融信用账户的担保合约明细,返回一个包含对象属性的列表。
get_assure_contract(accId)
accId (str):两融信用资金账号。返回一个列表(list),列表中的元素为 Python 对象(StkSubjects)。可以通过 m_strInstrumentID、m_strInstrumentName 等属性获取具体股票代码与名称。
以下是在 QMT 策略中的完整实现示例:
#encoding:gbk
def init(ContextInfo):
# 设置两融信用账号
ContextInfo.accId = '6000000248' # 请替换为实际的信用账号
ContextInfo.set_account(ContextInfo.accId)
def handlebar(ContextInfo):
# 仅在最后一根 Bar 执行,避免重复打印
if not ContextInfo.is_last_bar():
return
# 获取担保品合约明细列表
assure_list = get_assure_contract(ContextInfo.accId)
print(f"--- 当前账号 {ContextInfo.accId} 担保品列表(共 {len(assure_list)} 只) ---")
# 遍历并打印担保品股票信息
stock_pool = []
for obj in assure_list:
stock_code = obj.m_strInstrumentID
stock_name = obj.m_strInstrumentName
stock_pool.append(stock_code)
print(f"代码: {stock_code}, 名称: {stock_name}")
# 将筛选出的担保品设置为策略运行股票池
if stock_pool:
ContextInfo.set_universe(stock_pool)
print("已成功将担保品列表设置为当前股票池!")
StkSubjects)调用 get_assure_contract 后返回的对象包含以下主要字段:
| 属性字段 | 类型 | 说明 |
|---|---|---|
m_strInstrumentID |
str |
证券代码(如 600000.SH 或 600000) |
m_strInstrumentName |
str |
股票名称 |
m_strExchangeID |
str |
交易所代码(如 SH / SZ) |
m_dAssureRatio |
float |
担保品折算比例 |
m_eAssureStatus |
enum |
是否可做担保状态 |
get_assure_contract 需要连通柜台获取账户权限数据,因此建议在实盘运行或模拟运行模式下使用,回测模式下可能无法获取真实柜台担保品明细。init 函数中需调用 ContextInfo.set_account(accId) 绑定信用账号,确保交易主推及数据查询正常。