Files
qmt_bridge/reference/thinktrader_docs/innerApi_callback_function.txt
T

343 lines
24 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
成交回报实时主推函数 | 迅投知识库
迅投知识库
首页
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知识库
登录后获取
交易函数 引用函数