﻿成交回报实时主推函数 | 迅投知识库 
 迅投知识库 
 首页 
 API API 
 投研新手教程 
 QMT新手教程 
 内置Python 
 XtQuant文档 
 VBA 
 数据字典 数据字典 
 快速开始 
 股票数据 
 行业概念数据 
 指数数据 
 期货数据 
 期权数据 
 场内基金数据 
 债券数据 
 常见问题 
 场景化示例 
 迅投因子 
 数据浏览器 
 策略迁移 策略迁移 
 聚宽策略 
 客服QQ: 810315303 
 联系方式: 18309226715 
 视频教程 视频教程 
 投研端教程 
 迅投学堂 
 在新窗口打开 
 投研平台 
 在新窗口打开 
 迅投社区 
 在新窗口打开 
 迅投官网 
 在新窗口打开 
 注册 
 登录 
 智能助手加载中... 
 首页 
 API API 
 投研新手教程 
 QMT新手教程 
 内置Python 
 XtQuant文档 
 VBA 
 数据字典 数据字典 
 快速开始 
 股票数据 
 行业概念数据 
 指数数据 
 期货数据 
 期权数据 
 场内基金数据 
 债券数据 
 常见问题 
 场景化示例 
 迅投因子 
 数据浏览器 
 策略迁移 策略迁移 
 聚宽策略 
 客服QQ: 810315303 
 联系方式: 18309226715 
 视频教程 视频教程 
 投研端教程 
 迅投学堂 
 在新窗口打开 
 投研平台 
 在新窗口打开 
 迅投社区 
 在新窗口打开 
 迅投官网 
 在新窗口打开 
内置Python 
 快速开始 
 使用须知 
 界面操作 
 变量约定 
 数据结构 
 系统函数 
 行情函数 
 交易函数 
 成交回报实时主推函数 
 实时主推函数 
 account_callback - 资金账号状态变化主推 
 task_callback - 账号任务状态变化主推 
 order_callback - 账号委托状态变化主推 
 deal_callback - 账号成交状态变化主推 
 position_callback - 账号持仓状态变化主推 
 orderError_callback - 账号异常下单主推 
 其他主推函数 
 credit_account_callback - 查询信用账户明细回调 
 credit_opvolume_callback - 查询两融最大可下单量的回调 
 引用函数 
 绘图函数 
 枚举常量 
 完整示例 
 常见问题 
 # 实时主推函数
 # account_callback - 资金账号状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： account_callback(ContextInfo, accountInfo)
 释义： 当资金账号状态有变化时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
accountInfo： 账号对象 
 在新窗口打开 或 信用账号对象 
 在新窗口打开 
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 5 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def account_callback ( ContextInfo , accountInfo ): 
 print (show_data(accountInfo)) 
 { ' m_Enable ' : True , ' m_dAssetBalance ' : 9975010.001775814 , ' m_dAssureAsset ' : 9975010.001775814 , ' m_dAvailable ' : 9555238.805375814 , ' m_dBalance ' : 9975010.001775814 , ' m_dBuyWaitMoney ' : 0.0 , ' m_dCashIn ' : 0.0 , ' m_dCloseProfit ' : 0.0 , ' m_dCommission ' : 14.284000000000006 , ' m_dCredit ' : 0.0 , ' m_dCurrMargin ' : 0.0 , ' m_dDeposit ' : 0.0 , ' m_dEntrustAsset ' : 0.0 , ' m_dFetchBalance ' : 9556221.001775814 , ' m_dFrozenCash ' : 982.1964 , ' m_dFrozenCommission ' : 0.0 , ' m_dFrozenMargin ' : 9555238.805375814 , ' m_dFrozenRoyalty ' : 0.0 , ' m_dFundValue ' : 0.0 , ' m_dGoldFrozen ' : 0.0 , ' m_dGoldValue ' : 0.0 , ' m_dInitBalance ' : 0.0 , ' m_dInitCloseMoney ' : - 4249.283999999998 , ' m_dInstrumentValue ' : 418789.0 , ' m_dInstrumentValueRMB ' : 0.0 , ' m_dIntradayBalance ' : 0.0 , ' m_dIntradayFreedBalance ' : 0.0 , ' m_dLoanValue ' : 0.0 , ' m_dLongValue ' : 0.0 , ' m_dMargin ' : 0.0 , ' m_dMaxMarginRate ' : 0.0 , ' m_dMortgage ' : 0.0 , ' m_dNav ' : 0.0 , ' m_dNetValue ' : 0.0 , ' m_dOccupiedBalance ' : 0.0 , ' m_dPositionProfit ' : - 3441.6657800000025 , ' m_dPreBalance ' : 9556221.001775814 , ' m_dPreCredit ' : 0.0 , ' m_dPreMortgage ' : 0.0 , ' m_dPurchasingPower ' : 0.0 , ' m_dRawMargin ' : 0.0 , ' m_dRealRiskDegree ' : 0.0 , ' m_dRealUsedMargin ' : 0.0 , ' m_dReceiveInterestTotal ' : 0.0 , ' m_dRepurchaseValue ' : 0.0 , ' m_dRisk ' : 0.0 , ' m_dRoyalty ' : 0.0 , ' m_dSellWaitMoney ' : 0.0 , ' m_dShortValue ' : 0.0 , ' m_dStockValue ' : 418789.0 , ' m_dSubscribeFee ' : 0.0 , ' m_dTotalDebit ' : 0.0 , ' m_dWithdraw ' : 0.0 , ' m_nBrokerType ' : 2 , ' m_nDirection ' : 48 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strAccountRemark ' : '' , ' m_strBrokerName ' : '' , ' m_strMoneyType ' : '' , ' m_strOpenDate ' : '' , ' m_strStatus ' : ' 准备登录 ' , ' m_strTradingDate ' : ' 20240220 ' } 
 { ' m_Enable ' : True , ' m_dAssetBalance ' : 9975010.001775814 , ' m_dAssureAsset ' : 9975010.001775814 , ' m_dAvailable ' : 9556221.001775814 , ' m_dBalance ' : 9975010.001775814 , ' m_dBuyWaitMoney ' : 0.0 , ' m_dCashIn ' : 0.0 , ' m_dCloseProfit ' : 0.0 , ' m_dCommission ' : 14.284000000000006 , ' m_dCredit ' : 0.0 , ' m_dCurrMargin ' : 0.0 , ' m_dDeposit ' : 0.0 , ' m_dEntrustAsset ' : 0.0 , ' m_dFetchBalance ' : 9556221.001775814 , ' m_dFrozenCash ' : 0.0 , ' m_dFrozenCommission ' : 0.0 , ' m_dFrozenMargin ' : 9556221.001775814 , ' m_dFrozenRoyalty ' : 0.0 , ' m_dFundValue ' : 0.0 , ' m_dGoldFrozen ' : 0.0 , ' m_dGoldValue ' : 0.0 , ' m_dInitBalance ' : 0.0 , ' m_dInitCloseMoney ' : - 4249.283999999998 , ' m_dInstrumentValue ' : 418789.0 , ' m_dInstrumentValueRMB ' : 0.0 , ' m_dIntradayBalance ' : 0.0 , ' m_dIntradayFreedBalance ' : 0.0 , ' m_dLoanValue ' : 0.0 , ' m_dLongValue ' : 0.0 , ' m_dMargin ' : 0.0 , ' m_dMaxMarginRate ' : 0.0 , ' m_dMortgage ' : 0.0 , ' m_dNav ' : 0.0 , ' m_dNetValue ' : 0.0 , ' m_dOccupiedBalance ' : 0.0 , ' m_dPositionProfit ' : - 3441.6657800000025 , ' m_dPreBalance ' : 9556221.001775814 , ' m_dPreCredit ' : 0.0 , ' m_dPreMortgage ' : 0.0 , ' m_dPurchasingPower ' : 0.0 , ' m_dRawMargin ' : 0.0 , ' m_dRealRiskDegree ' : 0.0 , ' m_dRealUsedMargin ' : 0.0 , ' m_dReceiveInterestTotal ' : 0.0 , ' m_dRepurchaseValue ' : 0.0 , ' m_dRisk ' : 0.0 , ' m_dRoyalty ' : 0.0 , ' m_dSellWaitMoney ' : 0.0 , ' m_dShortValue ' : 0.0 , ' m_dStockValue ' : 418789.0 , ' m_dSubscribeFee ' : 0.0 , ' m_dTotalDebit ' : 0.0 , ' m_dWithdraw ' : 0.0 , ' m_nBrokerType ' : 2 , ' m_nDirection ' : 48 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strAccountRemark ' : '' , ' m_strBrokerName ' : '' , ' m_strMoneyType ' : '' , ' m_strOpenDate ' : '' , ' m_strStatus ' : ' 准备登录 ' , ' m_strTradingDate ' : ' 20240220 ' } 
 { ' m_Enable ' : True , ' m_dAssetBalance ' : 9975010.001775814 , ' m_dAssureAsset ' : 9975010.001775814 , ' m_dAvailable ' : 9555238.805375814 , ' m_dBalance ' : 9975010.001775814 , ' m_dBuyWaitMoney ' : 0.0 , ' m_dCashIn ' : 0.0 , ' m_dCloseProfit ' : 0.0 , ' m_dCommission ' : 14.480400000000007 , ' m_dCredit ' : 0.0 , ' m_dCurrMargin ' : 0.0 , ' m_dDeposit ' : 0.0 , ' m_dEntrustAsset ' : 0.0 , ' m_dFetchBalance ' : 9556221.001775814 , ' m_dFrozenCash ' : 0.0 , ' m_dFrozenCommission ' : 0.0 , ' m_dFrozenMargin ' : 9555238.805375814 , ' m_dFrozenRoyalty ' : 0.0 , ' m_dFundValue ' : 0.0 , ' m_dGoldFrozen ' : 0.0 , ' m_dGoldValue ' : 0.0 , ' m_dInitBalance ' : 0.0 , ' m_dInitCloseMoney ' : - 4249.283999999998 , ' m_dInstrumentValue ' : 419771.0 , ' m_dInstrumentValueRMB ' : 0.0 , ' m_dIntradayBalance ' : 0.0 , ' m_dIntradayFreedBalance ' : 0.0 , ' m_dLoanValue ' : 0.0 , ' m_dLongValue ' : 0.0 , ' m_dMargin ' : 0.0 , ' m_dMaxMarginRate ' : 0.0 , ' m_dMortgage ' : 0.0 , ' m_dNav ' : 0.0 , ' m_dNetValue ' : 0.0 , ' m_dOccupiedBalance ' : 0.0 , ' m_dPositionProfit ' : - 3441.6657800000025 , ' m_dPreBalance ' : 9556221.001775814 , ' m_dPreCredit ' : 0.0 , ' m_dPreMortgage ' : 0.0 , ' m_dPurchasingPower ' : 0.0 , ' m_dRawMargin ' : 0.0 , ' m_dRealRiskDegree ' : 0.0 , ' m_dRealUsedMargin ' : 0.0 , ' m_dReceiveInterestTotal ' : 0.0 , ' m_dRepurchaseValue ' : 0.0 , ' m_dRisk ' : 0.0 , ' m_dRoyalty ' : 0.0 , ' m_dSellWaitMoney ' : 0.0 , ' m_dShortValue ' : 0.0 , ' m_dStockValue ' : 419771.0 , ' m_dSubscribeFee ' : 0.0 , ' m_dTotalDebit ' : 0.0 , ' m_dWithdraw ' : 0.0 , ' m_nBrokerType ' : 2 , ' m_nDirection ' : 48 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strAccountRemark ' : '' , ' m_strBrokerName ' : '' , ' m_strMoneyType ' : '' , ' m_strOpenDate ' : '' , ' m_strStatus ' : ' 准备登录 ' , ' m_strTradingDate ' : ' 20240220 ' } 
 # task_callback - 账号任务状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： task_callback(ContextInfo, taskInfo)
 释义： 当账号任务状态有变化时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
taskInfo 任务对象 
 在新窗口打开 
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 5 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def task_callback ( ContextInfo , taskInfo ): 
 print (show_data(taskInfo)) 
 { ' m_3rdPartyTradeParam ' : '' , ' m_cancelTime ' : 2147483647 , ' m_dFixPrice ' : 9.82 , ' m_eOperationType ' : 18 , ' m_eOrderType ' : 0 , ' m_ePriceType ' : 5 , ' m_eStatus ' : 3 , ' m_endTime ' : 2147483647 , ' m_nBusinessNum ' : 0 , ' m_nGroupId ' : 11 , ' m_nNum ' : 100 , ' m_nTaskId ' : ' 11 ' , ' m_script ' : '' , ' m_startTime ' : 1708420476 , ' m_stockCode ' : ' 000001.SZ ' , ' m_strAccountID ' : ' 2000567 ' , ' m_strMsg ' : ' 9.8200全部委托! 报价行情已8076秒未更新! ' , ' m_strRemark ' : ' 投资备注 ' } 
 { ' m_3rdPartyTradeParam ' : '' , ' m_cancelTime ' : 2147483647 , ' m_dFixPrice ' : 9.82 , ' m_eOperationType ' : 18 , ' m_eOrderType ' : 0 , ' m_ePriceType ' : 5 , ' m_eStatus ' : 3 , ' m_endTime ' : 2147483647 , ' m_nBusinessNum ' : 100 , ' m_nGroupId ' : 11 , ' m_nNum ' : 100 , ' m_nTaskId ' : ' 11 ' , ' m_script ' : '' , ' m_startTime ' : 1708420476 , ' m_stockCode ' : ' 000001.SZ ' , ' m_strAccountID ' : ' 2000567 ' , ' m_strMsg ' : ' 9.8200全部委托! 报价行情已8076秒未更新! ' , ' m_strRemark ' : ' 投资备注 ' } 
 { ' m_3rdPartyTradeParam ' : '' , ' m_cancelTime ' : 2147483647 , ' m_dFixPrice ' : 9.82 , ' m_eOperationType ' : 18 , ' m_eOrderType ' : 0 , ' m_ePriceType ' : 5 , ' m_eStatus ' : 7 , ' m_endTime ' : 1708420476 , ' m_nBusinessNum ' : 100 , ' m_nGroupId ' : 11 , ' m_nNum ' : 100 , ' m_nTaskId ' : ' 11 ' , ' m_script ' : '' , ' m_startTime ' : 1708420476 , ' m_stockCode ' : ' 000001.SZ ' , ' m_strAccountID ' : ' 2000567 ' , ' m_strMsg ' : ' 任务完成 ' , ' m_strRemark ' : ' 投资备注 ' } 
 { ' m_3rdPartyTradeParam ' : '' , ' m_cancelTime ' : 2147483647 , ' m_dFixPrice ' : 9.82 , ' m_eOperationType ' : 18 , ' m_eOrderType ' : 0 , ' m_ePriceType ' : 5 , ' m_eStatus ' : 7 , ' m_endTime ' : 1708420476 , ' m_nBusinessNum ' : 100 , ' m_nGroupId ' : 11 , ' m_nNum ' : 100 , ' m_nTaskId ' : ' 11 ' , ' m_script ' : '' , ' m_startTime ' : 1708420476 , ' m_stockCode ' : ' 000001.SZ ' , ' m_strAccountID ' : ' 2000567 ' , ' m_strMsg ' : ' 任务完成 ' , ' m_strRemark ' : ' 投资备注 ' } 
 # order_callback - 账号委托状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： order_callback(ContextInfo, orderInfo)
 释义： 当账号委托状态有变化时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
orderInfo： 委托 
 在新窗口打开 
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 5 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def order_callback ( ContextInfo , orderInfo ): 
 print (show_data(orderInfo)) 
 { ' m_bEnable ' : True , ' m_dCancelAmount ' : 0.0 , ' m_dFrozenCommission ' : 0.21600000000000003 , ' m_dFrozenMargin ' : 1080.0 , ' m_dLimitPrice ' : 10.8 , ' m_dOrderPriceRMB ' : 0.0 , ' m_dReferenceRate ' : 0.0 , ' m_dShortOccupedMargin ' : 1.7976931348623157e+308 , ' m_dTradeAmount ' : 0.0 , ' m_dTradeAmountRMB ' : 0.0 , ' m_dTradedPrice ' : 0.0 , ' m_eCashgroupProp ' : 48 , ' m_eCoveredFlag ' : 0 , ' m_eEntrustType ' : 48 , ' m_nDirection ' : 48 , ' m_nErrorID ' : 2147483647 , ' m_nFrontID ' : - 1 , ' m_nGroupId ' : 2147483647 , ' m_nHedgeFlag ' : 49 , ' m_nOffsetFlag ' : 48 , ' m_nOpType ' : 23 , ' m_nOrderPriceType ' : 50 , ' m_nOrderStatus ' : 50 , ' m_nOrderStrategyType ' : - 946575058 , ' m_nOrderSubmitStatus ' : 51 , ' m_nRef ' : 1745879041 , ' m_nSessionID ' : - 1 , ' m_nStrategyID ' : 0 , ' m_nTaskId ' : 1 , ' m_nVolumeTotal ' : 100 , ' m_nVolumeTotalOriginal ' : 100 , ' m_nVolumeTraded ' : 0 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strAccountName ' : '' , ' m_strAccountRemark ' : '' , ' m_strBrokerName ' : '' , ' m_strCancelInfo ' : '' , ' m_strCompactNo ' : '' , ' m_strErrorMsg ' : '' , ' m_strExchangeID ' : ' SZ ' , ' m_strExchangeName ' : ' 深交所 ' , ' m_strInsertDate ' : ' 20240222 ' , ' m_strInsertTime ' : ' 091259 ' , ' m_strInstrumentID ' : ' 000001 ' , ' m_strInstrumentName ' : ' 平安银行 ' , ' m_strLocalInfo ' : '' , ' m_strOptName ' : ' 限价买入 ' , ' m_strOption ' : '' , ' m_strOrderParam ' : '' , ' m_strOrderRef ' : ' 8875341038780543374 ' , ' m_strOrderStrategyType ' : ' 函数下单 ' , ' m_strOrderSysID ' : ' 87 ' , ' m_strProductID ' : '' , ' m_strProductName ' : '' , ' m_strRemark ' : ' 投资备注 ' , ' m_strSource ' : ' 新建策略文件15 ' , ' m_strUnderCode ' : '' , ' m_strXTTrade ' : ' 本终端 ' , ' m_xtTag ' : ' <CanNotConvert> ' } 
 # deal_callback - 账号成交状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： deal_callback(ContextInfo, dealInfo)
 释义： 当账号成交状态有变化时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
dealInfo： 成交 
 在新窗口打开 
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 5 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def deal_callback ( ContextInfo , dealInfo ): 
 print (show_data(dealInfo)) 
 { ' m_dCloseProfit ' : 0.0 , ' m_dComssion ' : 0.19640000000000002 , ' m_dOrderPriceRMB ' : 0.0 , ' m_dPrice ' : 9.82 , ' m_dPriceRMB ' : 0.0 , ' m_dReferenceRate ' : 0.0 , ' m_dTradeAmount ' : 982.0 , ' m_dTradeAmountRMB ' : 0.0 , ' m_eCoveredFlag ' : 48 , ' m_eEntrustType ' : 48 , ' m_eFutureTradeType ' : 48 , ' m_nCloseTodayVolume ' : 0 , ' m_nDirection ' : 48 , ' m_nGroupId ' : 2147483647 , ' m_nHedgeFlag ' : 49 , ' m_nOffsetFlag ' : 48 , ' m_nOrderPriceType ' : 50 , ' m_nOrderStrategyType ' : 0 , ' m_nRealOffsetFlag ' : - 1 , ' m_nRef ' : 1209008141 , ' m_nStrategyID ' : 0 , ' m_nTaskId ' : 14 , ' m_nVolume ' : 100 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strAccountRemark ' : '' , ' m_strCompactNo ' : '' , ' m_strExchangeID ' : ' SZ ' , ' m_strExchangeName ' : ' 深交所 ' , ' m_strInstrumentID ' : ' 000001 ' , ' m_strInstrumentName ' : ' 平安银行 ' , ' m_strLocalInfo ' : '' , ' m_strOperation ' : '' , ' m_strOptName ' : ' 限价买入 ' , ' m_strOrderRef ' : ' 8875341038780443523 ' , ' m_strOrderStrategyType ' : ' 函数下单 ' , ' m_strOrderSysID ' : ' 24500 ' , ' m_strProductID ' : '' , ' m_strProductName ' : '' , ' m_strRemark ' : ' 投资备注 ' , ' m_strSource ' : ' 新建策略文件15 ' , ' m_strTradeDate ' : ' 20240220 ' , ' m_strTradeID ' : ' 13 ' , ' m_strTradeTime ' : ' 172341 ' , ' m_strXTTrade ' : ' 本终端 ' , ' m_xtTag ' : ' <CanNotConvert> ' } 
 # position_callback - 账号持仓状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： position_callback(ContextInfo, positonInfo)
 释义： 当账号持仓状态有变化时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
positonInfo： 持仓 
 在新窗口打开 
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 5 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def position_callback ( ContextInfo , positionInfo ): 
 print (show_data(positionInfo)) 
 { ' m_bIsToday ' : True , ' m_dAvgOpenPrice ' : 9.417861115 , ' m_dCloseAmount ' : 0.0 , ' m_dCloseProfit ' : 0.0 , ' m_dFloatProfit ' : 11.999999999999744 , ' m_dInstrumentValue ' : 19640.0 , ' m_dLastPrice ' : 9.82 , ' m_dLastSettlementPrice ' : 0.0 , ' m_dMargin ' : 0.0 , ' m_dMarketValue ' : 19640.0 , ' m_dOpenCost ' : 18835.72223 , ' m_dOpenPrice ' : 9.417861115 , ' m_dPositionCost ' : 18835.72223 , ' m_dPositionProfit ' : 804.2777700000006 , ' m_dProfitRate ' : 0.04269959814543308 , ' m_dRealUsedMargin ' : 0.0 , ' m_dRedemptionVolume ' : 0 , ' m_dReferenceRate ' : 0.0 , ' m_dRoyalty ' : 0.0 , ' m_dSettlementPrice ' : 9.82 , ' m_dSingleCost ' : 2.946 , ' m_dStaticHoldMargin ' : 1.7976931348623157e+308 , ' m_dStockLastPrice ' : 1.7976931348623157e+308 , ' m_dStructFundVol ' : 0 , ' m_dTotalCost ' : 5892.0 , ' m_eFutureTradeType ' : 48 , ' m_eSideFlag ' : 48 , ' m_nCanUseVolume ' : 1200 , ' m_nCidIncrease ' : 1953394499 , ' m_nCidIsDelist ' : 678126433 , ' m_nCidRateOfCurrentLine ' : 1667199589 , ' m_nCidRateOfTotalValue ' : 1651272801 , ' m_nCloseVolume ' : 0 , ' m_nCoveredVolume ' : 0 , ' m_nDirection ' : 48 , ' m_nEnableExerciseVolume ' : - 1 , ' m_nFrozenVolume ' : 0 , ' m_nHedgeFlag ' : 49 , ' m_nLegId ' : 0 , ' m_nOnRoadVolume ' : 800 , ' m_nOptCombUsedVolume ' : 0 , ' m_nPREnableVolume ' : 2000 , ' m_nSettledAmt ' : 0 , ' m_nStrategyID ' : 0 , ' m_nVolume ' : 2000 , ' m_nYesterdayVolume ' : 1200 , ' m_strAccountID ' : ' 2000567 ' , ' m_strAccountKey ' : ' 2____11194____114911____49____2000567____ ' , ' m_strComTradeID ' : '' , ' m_strExchangeID ' : ' SZ ' , ' m_strExchangeName ' : ' 深交所 ' , ' m_strExpireDate ' : '' , ' m_strInstrumentID ' : ' 000001 ' , ' m_strInstrumentName ' : ' 平安银行 ' , ' m_strOpenDate ' : '' , ' m_strProductID ' : '' , ' m_strProductName ' : '' , ' m_strStockHolder ' : '' , ' m_strTradeID ' : '' , ' m_strTradingDay ' : ' 20240220 ' , ' m_xtTag ' : None } 
 # orderError_callback - 账号异常下单主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
 用法： orderError_callback(ContextInfo,orderArgs,errMsg)
 释义： 当账号下单异常时，这个函数被客户端调用
 参数： 
ContextInfo：特定对象
orderArgs： 下单参数 
 在新窗口打开 
errMsg：错误信息
 返回： 无
 示例： 
 示例 返回值 
 #coding:gbk 
 def show_data ( data ): 
 tdata = {} 
 for ar in dir (data): 
 if ar[ : 2 ] != ' m_ ' : continue 
 try : 
 tdata[ar] = data. __getattribute__ (ar) 
 except : 
 tdata[ar] = ' <CanNotConvert> ' 
 return tdata 
 def init ( ContextInfo ): 
 # 设置对应的资金账号 
 # 示例需要在策略交易界面运行 
 ContextInfo.set_account(account) 
 def after_init ( ContextInfo ): 
 # 在策略交易界面运行时，account的值会被赋值为策略配置中的账号，编辑器界面运行时，需要手动赋值 
 # 编译器界面里执行的下单函数不会产生实际委托 
 passorder( 23 , 1101 , account, " 000001.SZ " , 11 , 0 , 100 , " 示例 " , 2 , " 投资备注 " ,ContextInfo) 
 pass 
 def orderError_callback ( ContextInfo , orderArgs , errMsg ): 
 print (show_data(orderArgs)) 
 print (errMsg) 
 { ' accountID ' : ' 2000567 ' , ' currentTime ' : 0 , ' formulaName ' : '' , ' modelPrice ' : 0.0 , ' modelVolume ' : 100.0 , ' opType ' : 23 , ' orderCode ' : ' SZ000001 ' , ' orderType ' : 1101 , ' prType ' : 11 , ' strategyName ' : ' 示例_&&&_投资备注 ' } 
 [函数交易]　函数: passorder,　证券 [ SZ000001 ] 指定价 无效, 无法下单! 
 # 其他主推函数
 # credit_account_callback - 查询信用账户明细回调
 用法： credit_account_callback(ContextInfo,seq,result)
 释义： 查询信用账户明细回调
 参数： 
ContextInfo：策略模型全局对象
seq:query_credit_account时输入查询seq
result: 信用账户明细 
 在新窗口打开 
 # credit_opvolume_callback - 查询两融最大可下单量的回调
 用法： credit_opvolume_callback(ContextInfo,accid,seq,ret,result)
 释义： 查询两融最大可下单量的回调。
 参数： 
 ContextInfo ：策略模型全局对象
 accid :查询的账号
 seq : query_credit_opvolume 时输入查询 seq 
 ret :查询结果状态。正常返回: 1 ,正在查询中 -1 ,输入账号非法: -2 ,输入查询参数非法: -3 ,超时等服务器返回报错: -4 
 result :查询到的结果
 示例 见 query_credit_opvolume 
 上次更新: 
邀请注册送VIP优惠券
分享下方的内容给好友、QQ群、微信群,好友注册您即可获得VIP优惠券
玩转qmt,上迅投qmt知识库
 登录后获取 
 交易函数 引用函数