3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在融资融券(两融)交易中,维持担保比例(m_dPerAssurescaleValue)是衡量账户风控风险的核心指标。当市场剧烈波动时,若维持担保比例过低,投资者可能面临追缴保证金甚至强平风险。本文将介绍如何使用 QMT Python API 实时监控信用账户状态,并在触发警戒线时自动执行还款策略。
QMT 提供了针对信用账户的丰富扩展接口,通过 get_trade_detail_data 函数可实时获取信用账户的负债及资产详情。
调用方式:
acct_info = get_trade_detail_data(account_id, 'CREDIT', 'ACCOUNT')特
返回的 CCreditAccountDetail 对象包含以下关键风控字段:
m_dPerAssurescaleValue:个人维持担保比例m_dFinEnrepaidBalance:可还款资金(融资已用/未还金额)m_dTotalDebit:总负债m_dAssureAsset:担保资产/净资产m_dAvailable:可用资金金额使用 passorder 进行还款或买卖时,需指定对应两融操作码:
30:直接还券31:卖券还款32:直接还款(使用可用资金归还融资负债)init 方法中使用 ContextInfo.set_account() 绑定信用账号。handlebar 或通过 run_time 触发监控逻辑。m_dPerAssurescaleValue 是否低于预警线(如 150%)。passorder 执行 opType=32(直接还款)。import time
def init(ContextInfo):
# 设置两融信用账号
ContextInfo.account_id = '6000000248' # 替换为实际信用账号
ContextInfo.set_account(ContextInfo.account_id)
# 设置风控阈值
ContextInfo.warning_ratio = 1.50 # 维持担保比例预警线 150%
ContextInfo.target_ratio = 1.80 # 目标安全维持担保比例 180%
print("两融自动化风控系统初始化完成...")
def handlebar(ContextInfo):
# 仅在最新 Bar 或 Tick 来临时进行实时风控判定
if not ContextInfo.is_last_bar():
return
# 获取信用账户信息
credit_accounts = get_trade_detail_data(ContextInfo.account_id, 'CREDIT', 'ACCOUNT')
if not credit_accounts:
return
account_detail = credit_accounts[0]
# 获取当前维持担保比例与可用资金
current_ratio = account_detail.m_dPerAssurescaleValue
available_cash = account_detail.m_dAvailable
fin_debit = account_detail.m_dFinCompactBalance # 融资负债金额
print(f"[风控监测] 当前维持担保比例: {current_ratio*100:.2f}%, 可用资金: {available_cash:.2f}, 融资负债: {fin_debit:.2f}")
# 判断是否触发维持担保比例预警
if 0 < current_ratio < ContextInfo.warning_ratio:
print(f"[警告] 维持担保比例 ({current_ratio*100:.2f}%) 低于预警线 ({ContextInfo.warning_ratio*100:.2f}%)!")
# 若有融资负债且有可用资金,执行直接还款逻辑
if fin_debit > 0 and available_cash > 100:
repay_amount = min(available_cash, fin_debit)
print(f"[执行还款] 发起直接还款指令,金额: {repay_amount:.2f}")
# 使用 passorder 进行直接还款 (opType=32, orderType=1102 指定金额)
passorder(
32, # opType: 32 - 直接还款
1102, # orderType: 1102 - 单股/单账号/金额方式下单
ContextInfo.account_id, # 资金账号
'600000.SH', # 标的代码(直接还款填任意合规代码或主图代码即可)
5, # prType: 5 - 最新价
-1, # price
repay_amount, # volume: 还款金额
'CreditRiskControl', # 策略名称
1, # quickTrade: 1 立即下单
ContextInfo
)