成交回报实时主推函数 | 迅投知识库 迅投知识库 首页 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] = ' ' 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] = ' ' 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] = ' ' 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 ' : ' ' } # 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] = ' ' 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 ' : ' ' } # 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] = ' ' 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] = ' ' 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知识库 登录后获取 交易函数 引用函数