3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在融资融券(两融)量化交易策略中,实时监控负债合约明细并进行精细化还款控制是风控与资金管理的核心需求。QMT 平台(迅投量化交易系统)提供了专门针对信用账户的 API 接口,帮助开发者实现自动化的两融管理。
get_debt_contract(accId)accId (string):信用资金账号。StkCompacts)构成的 list。m_strInstrumentID:证券代码(如 '600000.SH')m_strInstrumentName:证券名称m_dUnRepayBalance:未还负债金额(元)m_dRealCompactInterest:未还合约利息m_eCompactType:合约类型(融资/融券)m_nRetEndDate:归还截止日passorder(...)针对信用账户还款,passorder 函数的 opType 支持以下常用操作类型:
29:买券还券30:直接还券31:卖券还款32:直接还款以下策略展示了如何在 QMT 中获取信用账户负债,并在满足触发条件时对指定金额进行自动还款:
#encoding:gbk
import time
def init(ContextInfo):
# 设置信用账号
ContextInfo.account_id = '6000000248'
ContextInfo.set_account(ContextInfo.account_id)
# 设置定时器:每天 14:30 执行一次负债查询与还款逻辑
ContextInfo.run_time("check_debt_and_repay", "1nDay", "2023-01-01 14:30:00", "SH")
def check_debt_and_repay(ContextInfo):
acc_id = ContextInfo.account_id
# 1. 获取负债合约明细列表
debt_contracts = get_debt_contract(acc_id)
if not debt_contracts:
print("当前信用账户无负债合约")
return
total_debt = 0.0
print("=== 当前信用账户负债明细 ===")
for contract in debt_contracts:
stock_code = contract.m_strInstrumentID
stock_name = contract.m_strInstrumentName
unrepay_bal = contract.m_dUnRepayBalance
interest = contract.m_dRealCompactInterest
total_debt += (unrepay_bal + interest)
print(f"合约代码: {stock_code}, 名称: {stock_name}, 未还金额: {unrepay_bal:.2f} 元, 利息: {interest:.2f} 元")
print(f"总负债金额: {total_debt:.2f} 元")
# 2. 定额还款策略逻辑:如果总负债超过 50,000 元,执行 10,000 元直接还款
repay_target = 10000.0
if total_debt > 50000.0:
print(f"负债超过设定阈值,触发定额还款,还款金额: {repay_target} 元")
# opType=32 (直接还款), orderType=1102 (按金额下单), prType=5 (最新价/默认), price=-1, volume=10000
passorder(
32, # opType: 直接还款
1102, # orderType: 单股/单账号/金额方式
acc_id, # 资金账号
'000001.SZ', # 占位代码(直接还款使用可用资金还现金负债)
5, # prType
-1, # price
repay_target, # volume: 还款金额 (元)
'两融定额还款策略', # strategyName
1, # quickTrade: 立即下单
'repay_auto_001', # userOrderId
ContextInfo
)
def handlebar(ContextInfo):
pass
get_debt_contract 返回的数据依赖于柜台推送或结算更新,建议在交易日盘中或盘后定时调用。passorder(32, ...) 直接还款前,确保信用账户中有足够的可用现金(m_dAvailable),否则委托将被柜台打回。opType=32):消耗账户内的现金直接偿还融资负债。opType=31):通过卖出持仓证券,所得资金自动偿还融资负债。