get_trade_detail_data - 查询账号资金信息、委托记录等
get_trade_detail_data 是 QMT 内置 Python 中用于查询账号资金信息、委托记录等的接口。
原型
get_trade_detail_data(accountID, strAccountType, strDatatype, strategyName)
释义
get_trade_detail_data 是 QMT 内置 Python 中用于查询账号资金信息、委托记录等的接口。
研究:官方目录未明确;回测:官方目录未明确;模拟:官方目录未明确;实盘:官方目录未明确。
参数
| 参数 | 是否必填 | 官方原始定义 |
|---|---|---|
accountID |
是 | accountID |
strAccountType |
是 | strAccountType |
strDatatype |
是 | strDatatype |
strategyName |
是 | strategyName |
返回值
以实际接口返回和下方详细说明为准。
示例
python返回值
#coding:gbk
account = '800174' # 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值;编译器环境里执行的下单函数不会产生实际委托
def init(ContextInfo):
pass
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
return
orders = get_trade_detail_data(account, 'stock', 'order')
print('查询委托结果:')
for o in orders:
print(f'股票代码: {o.m_strInstrumentID}, 市场类型: {o.m_strExchangeID}, 证券名称: {o.m_strInstrumentName}, 买卖方向: {o.m_nOffsetFlag}',
f'委托数量: {o.m_nVolumeTotalOriginal}, 成交均价: {o.m_dTradedPrice}, 成交数量: {o.m_nVolumeTraded}, 成交金额:{o.m_dTradeAmount}')
deals = get_trade_detail_data(account, 'stock', 'deal')
print('查询成交结果:')
for dt in deals:
print(f'股票代码: {dt.m_strInstrumentID}, 市场类型: {dt.m_strExchangeID}, 证券名称: {dt.m_strInstrumentName}, 买卖方向: {dt.m_nOffsetFlag}',
f'成交价格: {dt.m_dPrice}, 成交数量: {dt.m_nVolume}, 成交金额: {dt.m_dTradeAmount}')
positions = get_trade_detail_data(account, 'stock', 'position')
print('查询持仓结果:')
for dt in positions:
print(f'股票代码: {dt.m_strInstrumentID}, 市场类型: {dt.m_strExchangeID}, 证券名称: {dt.m_strInstrumentName}, 持仓量: {dt.m_nVolume}, 可用数量: {dt.m_nCanUseVolume}',
f'成本价: {dt.m_dOpenPrice:.2f}, 市值: {dt.m_dInstrumentValue:.2f}, 持仓成本: {dt.m_dPositionCost:.2f}, 盈亏: {dt.m_dPositionProfit:.2f}')
accounts = get_trade_detail_data(account, 'stock', 'account')
print('查询账号结果:')
for dt in accounts:
print(f'总资产: {dt.m_dBalance:.2f}, 净资产: {dt.m_dAssureAsset:.2f}, 总市值: {dt.m_dInstrumentValue:.2f}',
f'总负债: {dt.m_dTotalDebit:.2f}, 可用金额: {dt.m_dAvailable:.2f}, 盈亏: {dt.m_dPositionProfit:.2f}')
position_statistics = get_trade_detail_data(account,"FUTURE",'POSITION_STATISTICS')
for obj in position_statistics:
if obj.m_nDirection == 49:
continue
PositionInfo_dict[obj.m_strInstrumentID+"."+obj.m_strExchangeID]={
"持仓":obj.m_nPosition,
"成本":obj.m_dPositionCost,
"浮动盈亏":obj.m_dFloatProfit,
"保证金占用":obj.m_dUsedMargin
}
print(PositionInfo_dict)
详细说明
调用方法 get_trade_detail_data(accountID, strAccountType, strDatatype, strategyName) 或不区分策略 get_trade_detail_data(accountID, strAccountType, strDatatype)
参数详细说明
| 参数名 | 类型 | 说明 | 备注 |
|---|---|---|---|
| accountID | string | 资金账号 | 必填 |
| strAccountType | string | 账号类型 可选: / 'FUTURE':期货 / 'STOCK':股票 / 'CREDIT':信用 / 'HUGANGTONG':沪港通 / 'SHENGANGTONG':深港通 / 'STOCK_OPTION':期权 | 必填 |
| strDatatype | string | 要查询数据类型 可选: / ACCOUNT:账号对象或信用账号对象 / POSITION:持仓 / POSITION_STATISTICS:持仓统计 / ORDER:委托 / DEAL :成交 / TASK:任务 | 必填 |
| strategyName | string | 策略 当用passorder下单时指定了strategyName 参数时,当查询成交和委托时传入同样的strageName,则可以只返回包含strategyName的委托子集或成交子集 | strategyName参数只对成交和委托有效,选填 |
返回 list,list 中放的是对应strDatatype的 Python对象,通过 dir(pythonobj) 可返回某个对象的属性列表。
有五种交易相关信息,包括:
ACCOUNT:账号对象或信用账号对象
POSITION:持仓明细
POSITION_STATISTICS: 持仓统计
ORDER:委托
DEAL:成交
TASK:任务