文档
测试

4、成交回报实时主推函数

POST

1)资金账号状态变化主推 account_callback()

*注:成交回报实时主推函数仅在实盘运行模式下生效。 # 1)资金账号状态变化主推 account_callback() 用法: account_callback(ContextInfo, accountInfo) 释义: 当资金账号状态有变化时,运行这个函数 参数: ContextInfo:特定对象 accountInfo:资金账号对象,可对应查看[5.4. 附录4 交易函数内含属性说明](#5.4. 附录4 交易函数内含属性说明) 返回: 无 示例: ```py def init(ContextInfo): # 设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def account_callback(ContextInfo, accountInfo): print('accountInfo') print(accountInfo.m_strStatus) # m_strStatus 为资金账号的属性之一,表示资金账号的状态 ``` ## 5.4.1. account 资金账号对象 m_dMaxMarginRate: 保证金比率,股票的保证金率等于 1,股票不需要 m_dFrozenMargin: 冻结保证金,外源性,股票的保证金就是冻结资金,股票不需要 m_dFrozenCash: 冻结金额,内外源冻结保证金和手续费四个的和 m_dFrozenCommission: 冻结手续费,外源性冻结资金源 m_dRisk: 风险度,风险度,冻结资金 / 可用资金,股票不需要 m_dNav: 单位净值 m_dPreBalance: 期初权益,股票不需要,也叫静态权益 m_dBalance: 总资产,动态权益,即市值 m_dAvailable: 可用金额 m_dCommission: 手续费,已经用掉的手续费 m_dPositionProfit: 持仓盈亏 m_dCloseProfit: 平仓盈亏,股票不需要 m_dCashIn: 出入金净值 m_dCurrMargin: 当前使用的保证金,股票不需要 m_dInitBalance: 初始权益 m_strStatus: 状态 m_dInitCloseMoney: 期初平仓盈亏,初始平仓盈亏 m_dInstrumentValue: 总市值,合约价值,合约价值 m_dDeposit: 入金 m_dWithdraw: 出金 m_dPreCredit: 上次信用额度,股票不需要 m_dPreMortgage: 上次质押,股票不需要 m_dMortgage: 质押,股票不需要 m_dCredit: 信用额度,股票不需要 m_dAssetBalance: 证券初始资金,股票不需要 m_strOpenDate: 起始日期,股票不需要 m_dFetchBalance: 可取金额 m_strTradingDate: 交易日 m_dStockValue: 股票总市值,期货没有 m_dLoanValue: 债券总市值,期货没有 m_dFundValue: 基金总市值,包括ETF和封闭式基金,期货没有 m_dRepurchaseValue: 回购总市值,所有回购,期货没有 m_dLongValue: 多单总市值,现货没有 m_dShortValue: 单总市值,现货没有 m_dNetValue: 净持仓总市值,净持仓市值 = 多 - 空 m_dAssureAsset: 净资产 m_dTotalDebit: 总负债 m_dEntrustAsset: 可信资产,用于校对 m_dInstrumentValueRMB: 总市值(人民币),沪港通 m_dSubscribeFee: 申购费,申购费 m_dGoldValue: 库存市值,黄金现货库存市值 m_dGoldFrozen: 现货冻结,黄金现货冻结 m_dMargin: 占用保证金,维持保证金 m_strMoneyType: 币种 m_dPurchasingPower: 购买力,盈透购买力 m_dRawMargin : 原始保证金 m_dBuyWaitMoney: 买入待交收金额(元),买入待交收 m_dSellWaitMoney: 卖出待交收金额(元),卖出待交收 m_dReceiveInterestTotal: 本期间应计利息 m_dRoyalty: 权利金收支,期货期权用 m_dFrozenRoyalty: 冻结权利金,期货期权用 m_dRealUsedMargin: 实时占用保证金,用于股票期权 m_dRealRiskDegree: 实时风险度

2)账号委托状态变化主推 order_callback()

# 2)账号委托状态变化主推 order_callback() 用法: order_callback(ContextInfo, orderInfo) 释义: 当账号委托状态有变化时,运行这个函数 参数: ContextInfo:特定对象 orderInfo:委托账号对象,可对应查看[5.4. 附录4 交易函数内含属性说明](#5.4. 附录4 交易函数内含属性说明) 返回: 无 示例: ```py def init(ContextInfo): # 设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def order_callback(ContextInfo, orderInfo): print('orderInfo') ``` ## 5.4.2. order 委托对象 m_strExchangeID: 证券市场 m_strExchangeName: 交易市场 m_strProductID: 品种代码 m_strProductName: 品种名称 m_strInstrumentID: 证券代码 m_strInstrumentName: 证券名称,合约名称 m_nTaskId:任务号 m_strOrderRef: 内部委托号,下单引用等于股票的内部委托号 m_nOrderPriceType: EBrokerPriceType 类型,例如市价单、限价单 m_nDirection: EEntrustBS 类型,操作,多空,期货多空,股票买卖永远是 48,其他的 dir 同理 m_nOffsetFlag: EOffset_Flag_Type 类型,操作,期货开平,股票买卖其实就是开平 m_nHedgeFlag: EHedge_Flag_Type 类型,投保 m_dLimitPrice: 委托价格,限价单的限价,就是报价 m_nVolumeTotalOriginal: 委托量,最初委托量 m_nOrderSubmitStatus: EEntrustSubmitStatus 类型,报单状态,提交状态,股票中不需要报单状态 m_strOrderSysID: 合同编号,委托号 m_nOrderStatus: EEntrustStatus,委托状态 m_nVolumeTraded: 成交数量,已成交量 m_nVolumeTotal: 委托剩余量,当前总委托量,股票的含义是总委托量减去成交量 m_nErrorID: 状态信息 m_dFrozenMargin: 冻结金额,冻结保证金 m_dFrozenCommission: 冻结手续费 m_strInsertDate: 委托日期,报单日期 m_strInsertTime: 委托时间 m_dTradedPrice: 成交均价(股票) m_dCancelAmount: 已撤数量 m_strOptName: 买卖标记,展示委托属性的中文 m_dTradeAmount: 成交金额,成交额,期货 = 均价 * 量 * 合约乘数 m_eEntrustType: EEntrustTypes,委托类别 m_strCancelInfo: 废单原因 m_strUnderCode: 标的证券代码 m_eCoveredFlag: ECoveredFlag,备兑标记 ‘0’ - 非备兑,’1’ - 备兑 m_strCompactNo: 合约编号 m_strRemark:投资备注

3)账号成交状态变化主推 deal_callback()

# 3)账号成交状态变化主推 deal_callback() 用法: deal_callback(ContextInfo, dealInfo) 释义: 当账号成交状态有变化时,运行这个函数 参数: ContextInfo:特定对象 dealInfo:资金账号对象,可对应查看[5.4. 附录4 交易函数内含属性说明](#5.4. 附录4 交易函数内含属性说明) 返回: 无 示例: ```py def init(ContextInfo): # 设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def deal_callback(ContextInfo, dealInfo): print('dealInfo') ``` ## 5.4.3. deal 成交对象 m_strExchangeID: 证券市场,交易所代码 m_strExchangeName: 交易市场,交易所名称 m_strProductID: 品种代码 m_strProductName: 品种名称 m_strInstrumentID: 证券代码 m_strInstrumentName: 证券名称 m_strTradeID: 成交编号 m_nTaskId:任务号 m_strOrderRef: 下单引用,等于股票的内部委托号 m_strOrderSysID: 合同编号,报单编号,委托号 m_nDirection: EEntrustBS,买卖方向 m_nOffsetFlag: EOffset_Flag_Type,开平,股票的买卖 m_nHedgeFlag: EHedge_Flag_Type,投保,股票不需要 m_dPrice: 成交均价 m_nVolume: 成交量,期货单位手,股票做到股 m_strTradeDate: 成交日期 m_strTradeTime: 成交时间 m_dComssion: 手续费 m_dTradeAmount: 成交额,期货 = 均价 * 量 * 合约乘数 m_nOrderPriceType: EBrokerPriceType 类型,例如市价单、限价单 m_strOptName:买卖标记,展示委托属性的中文 m_eEntrustType: EEntrustTypes 类型,委托类别 m_eFutureTradeType: EFutureTradeType 类型,成交类型 m_nRealOffsetFlag: EOffset_Flag_Type 类型,实际开平,主要是区分平今和平昨 m_eCoveredFlag: ECoveredFlag类型,备兑标记 ‘0’ - 非备兑,’1’ - 备兑 m_nCloseTodayVolume: 平今量,不显示 m_dOrderPriceRMB: 委托价格(人民币),目前用于港股通 m_dPriceRMB: 成交价格(人民币),目前用于港股通 m_dTradeAmountRMB:成交金额(人民币),目前用于港股通 m_dReferenceRate: 汇率,目前用于港股通 m_strXTTrade: 是否是本终端交易 m_strCompactNo: 合约编号 m_dCloseProfit: 平仓盈亏 ,目前用于外盘 m_strRemark:投资备注

4)账号持仓状态变化主推 position_callback()

# 4)账号持仓状态变化主推 position_callback() 用法: position_callback(ContextInfo, positonInfo) 释义: 当账号持仓状态有变化时,运行这个函数 参数: ContextInfo:特定对象 positonInfo:资金账号对象,可对应查看[5.4. 附录4 交易函数内含属性说明](#5.4. 附录4 交易函数内含属性说明) 返回: 无 示例: ```py def init(ContextInfo): # 设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def position_callback(ContextInfo, positonInfo): print('positonInfo') ``` ## 5.4.4. position 持仓对象 m_strExchangeID: 证券市场 m_strExchangeName: 市场名称 m_strProductID: 品种代码 m_strProductName: 品种名称 m_strInstrumentID: 证券代码 m_strInstrumentName: 证券名称 m_nHedgeFlag: EHedge_Flag_Type 类型,投保 ,股票不需要 m_nDirection: EEntrustBS 类型,买卖 ; 股票不需要 m_strOpenDate: 成交日期 m_strTradeID: 成交号,最初开仓位的成交 m_nVolume: 当前拥股,持仓量 m_dOpenPrice: 持仓成本 m_strTradingDay: 在实盘运行中是当前交易日,在回测中是股票最后交易过的日期 m_dMargin: 使用的保证金,历史的直接用 ctp 的,新的自己用成本价 * 存量 * 系数算,股票不需要 m_dOpenCost: 开仓成本,等于股票的成本价 * 第一次建仓的量,后续减持不影响,不算手续费,股票不需要 m_dSettlementPrice: 最新价,结算价,对于股票的当前价 m_nCloseVolume: 平仓量,等于股票已经卖掉的 股票不需要 m_dCloseAmount: 平仓额,等于股票每次卖出的量 * 卖出价 * 合约乘数(股票为 1)的累加 股票不需要 m_dFloatProfit: 浮动盈亏,当前量 * (当前价 - 开仓价) * 合约乘数(股票为 1) m_dCloseProfit: 平仓盈亏,平仓额 - 开仓价 * 平仓量 * 合约乘数(股票为 1) 股票不需要 m_dMarketValue: 市值,合约价值 m_dPositionCost: 持仓成本,股票不需要 m_dPositionProfit: 持仓盈亏,股票不需要 m_dLastSettlementPrice: 最新结算价,股票不需要 m_dInstrumentValue: 合约价值,股票不需要 m_bIsToday: 是否今仓 m_strStockHolder: 股东账号 m_nFrozenVolume: 冻结数量,冻结持仓,期货不用这个字段,冻结数量 m_nCanUseVolume: 可用余额,可用持仓,期货不用这个字段,股票的可用数量 m_nOnRoadVolume: 在途股份,在途持仓,期货不用这个字段,股票的在途数量 m_nYesterdayVolume: 昨夜拥股,期货不用这个字段,股票的股份余额 m_dLastPrice: 最新价,结算价,对于股票的当前价 m_dProfitRate: 盈亏比例,持仓盈亏比例 m_eFutureTradeType: EFutureTradeType,成交类型 m_strExpireDate: 到期日,逆回购用 m_strComTradeID: 组合成交号 ,套利成交 ID m_nLegId: 组合序号 ,组合 ID m_dTotalCost: 累计成本,自定义累计成本,股票信用用到 m_dSingleCost: 单股成本,自定义单股成本,股票信用用到 m_nCoveredVolume: 备兑数量,用于个股期权 m_eSideFlag: ESideFlag 持仓类型 ,用于个股期权,标记 ‘0’ - 权利,’1’ - 义务,’2’ - ‘备兑’ m_dReferenceRate: 汇率,目前用于港股通 m_dStructFundVol: 分级基金可用(可分拆或可合并) m_dRedemptionVolume: 分级基金可赎回量 m_nPREnableVolume: 申赎可用量(记录当日申购赎回的股票或基金数量) m_dRealUsedMargin: 实时占用保证金,用于期权 m_dRoyalty: 权利金

5)账号异常下单主推 orderError_callback()

# 5)账号异常下单主推 orderError_callback() 用法: orderError_callback(ContextInfo,orderArgs,errMsg) 释义: 当账号下单异常时,运行这个函数 参数: ContextInfo:特定对象 orderArgs:下单参数,可对应查看[5.4. 附录4 交易函数内含属性说明] errMsg:错误信息 返回: 无 示例: ```py def init(ContextInfo): # 设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def position_callback(ContextInfo, orderArgs,errMsg): print('orderArgs') print(errMsg) ```