3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 平台的 Python API 中,并没有 get_history_trade_detail_data 这个函数,因此在调用时会抛出 NameError: name 'get_history_trade_detail_data' is not defined 的错误。
如果您想要获取账户的交易明细(包括股票的成交时间),应该使用 QMT 官方提供的 get_trade_detail_data 函数。
get_trade_detail_data 函数用于获取交易明细数据,包括持仓、委托、成交、账号和任务信息。
get_trade_detail_data(accountID, strAccountType, strDatatype, strategyName)
# 或不区分策略
get_trade_detail_data(accountID, strAccountType, strDatatype)
string,资金账号。string,账号类型。股票账户填 'STOCK',信用账户填 'CREDIT',期货填 'FUTURE' 等。string,数据类型。要获取成交信息,请填 'DEAL'。string,(可选)策略名,用于过滤特定策略的成交。返回一个包含 Python 对象的列表(list)。当 strDatatype 为 'DEAL' 时,返回的是 成交对象(deal) 列表。
在返回的成交对象(deal)中,包含以下两个属性用于表示成交时间:
m_strTradeDate:成交日期(如 "20231025")m_strTradeTime:成交时间(如 "14:30:00")以下是一个完整的示例,展示如何在 handlebar 中获取并打印股票的成交时间:
#coding:gbk
def init(ContextInfo):
# 设置您的资金账号
ContextInfo.accid = '您的资金账号'
ContextInfo.set_account(ContextInfo.accid)
def handlebar(ContextInfo):
# 获取股票账户的成交明细
deal_list = get_trade_detail_data(ContextInfo.accid, 'STOCK', 'DEAL')
if deal_list:
for deal_obj in deal_list:
# 获取证券代码
stock_code = deal_obj.m_strInstrumentID
# 获取成交日期
trade_date = deal_obj.m_strTradeDate
# 获取成交时间
trade_time = deal_obj.m_strTradeTime
# 获取成交均价
trade_price = deal_obj.m_dPrice
# 获取成交数量
trade_volume = deal_obj.m_nVolume
print(f"代码: {stock_code}, 成交日期: {trade_date}, 成交时间: {trade_time}, 价格: {trade_price}, 数量: {trade_volume}")
else:
print("当前无成交记录")
get_trade_detail_data 函数在实盘运行和模拟运行模式下有效。在回测模式下,由于是虚拟撮合,该函数可能无法返回真实的成交明细。print(dir(deal_obj)) 打印出该对象的所有可用属性。