3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在进行融资融券(两融)交易时,实时掌握信用账户的资产状态、可用保证金以及可买担保品资金是控制风控和制定交易策略的关键。QMT 平台提供了强大的交易接口,允许用户通过 Python API 实时获取这些关键数据。
要查询信用账户的详细资产信息,我们需要使用 get_trade_detail_data 函数,并指定账户类型为 'CREDIT'(信用账户),数据类型为 'ACCOUNT'。
get_trade_detail_data(accountID, strAccountType, strDatatype)
'CREDIT'。'ACCOUNT'。当 strAccountType 为 'CREDIT' 且 strDatatype 为 'ACCOUNT' 时,返回的列表内包含的是 CCreditAccountDetail(信用账号对象)。该对象包含以下核心两融属性:
m_dAvailable: 可用金额m_dEnableBailBalance: 可用保证金m_dAssureEnbuyBalance: 可买担保品资金m_dFinEnbuyBalance: 可买标的券资金m_dTotalDebit: 总负债m_dPerAssurescaleValue: 个人维持担保比例(维保比例)以下是一个完整的 QMT 策略示例,展示了如何在 handlebar 中实时获取并打印信用账户的可用保证金、可买担保品资金以及维持担保比例:
#coding:gbk
def init(ContextInfo):
# 设定您的信用账号
ContextInfo.accid = '您的信用资金账号'
ContextInfo.set_account(ContextInfo.accid)
def handlebar(ContextInfo):
# 仅在最后一根 K 线(或盘中实时 tick)执行查询,避免历史回测时频繁输出
if not ContextInfo.is_last_bar():
return
# 获取信用账户明细
credit_acct_list = get_trade_detail_data(ContextInfo.accid, 'CREDIT', 'ACCOUNT')
if not credit_acct_list:
print("未能获取到信用账户数据,请检查账号是否登录成功!")
return
for acct in credit_acct_list:
print("=== 信用账户资产实时数据 ===")
print(f"资金账号: {acct.m_strAccountID}")
print(f"可用金额: {acct.m_dAvailable:.2f} 元")
print(f"可用保证金: {acct.m_dEnableBailBalance:.2f} 元")
print(f"可买担保品资金: {acct.m_dAssureEnbuyBalance:.2f} 元")
print(f"可买标的券资金: {acct.m_dFinEnbuyBalance:.2f} 元")
print(f"总负债: {acct.m_dTotalDebit:.2f} 元")
print(f"维持担保比例: {acct.m_dPerAssurescaleValue * 100:.2f}%")
print("============================")
init 函数中调用 ContextInfo.set_account() 绑定对应的信用账号,否则可能无法正常接收交易主推或查询数据。m_dPerAssurescaleValue(维持担保比例),若低于安全阈值(如 150%),应暂停买入开仓,以防触发强制平仓风控。