KB / ARTICLE

核心API-账户持仓查询

策略文档 · 期货版修订 R1发布于 2026-10-10

本文汇总期魔方期货策略中与账户持仓查询相关的 API,包括账户资金、持仓信息、委托挂单、订单状态查询与行权数据。

get_account() — 获取 CTP 账户信息

获取当下已登录期货公司的账户信息,返回账户资金、可用资金、冻结资金、保证金等。

返回值

返回一个字典

参数 参数名称 参数类型 回测/任务 描述
BrokerID 经纪公司代码 str 任务
AccountID 投资者账号 str ALL
PreMortgage 上次质押金额 float 任务
PreCredit 上次信用额度 float 任务
PreDeposit 上次存款额 float 任务
PreBalance 上次结算准备金 float 任务
PreMargin 上次占用的保证金 float 任务
InterestBase 利息基数 float 任务
Interest 利息收入 float 任务
Deposit 入金金额 float 任务
Withdraw 出金金额 float 任务
FrozenMargin 冻结的保证金 float 任务
FrozenCash 冻结的资金 float 任务
FrozenCommission 冻结的手续费 float 任务
CurrMargin 当前保证金总额 float ALL
CashIn 资金差额 float 任务
Commission 手续费 float ALL
CloseProfit 平仓盈亏 float ALL
PositionProfit 持仓盈亏 float ALL
Balance 期货结算准备金 float ALL
Available 可用资金 float ALL
WithdrawQuota 可取资金 float 任务
Reserve 基本准备金 float 任务
TradingDay 交易日 str 任务
SettlementID 结算编号 int 任务
Credit 信用额度 float 任务
Mortgage 质押金额 float 任务
ExchangeMargin 交易所保证金 float 任务
DeliveryMargin 投资者交割保证金 float 任务
ExchangeDeliveryMargin 交易所交割保证金 float 任务
ReserveBalance 保底期货结算准备金 float 任务
CurrencyID 币种代码 str 任务
PreFundMortgageIn 上次货币质入金额 float 任务
PreFundMortgageOut 上次货币质出金额 float 任务
FundMortgageIn 货币质入金额 float 任务
FundMortgageOut 货币质出金额 float 任务
FundMortgageAvailable 货币质押余额 float 任务
MortgageableFund 可质押货币金额 float 任务
SpecProductMargin 特殊产品占用保证金 float 任务
SpecProductFrozenMargin 特殊产品冻结保证金 float 任务
SpecProductCommission 特殊产品手续费 float 任务
SpecProductFrozenCommission 特殊产品冻结手续费 float 任务
SpecProductPositionProfit 特殊产品持仓盈亏 float 任务
SpecProductCloseProfit 特殊产品平仓盈亏 float 任务
SpecProductPositionProfitByAlg 根据持仓盈亏算法计算的特殊产品持仓盈亏 float 任务
SpecProcudtExchangeMargin 特殊产品交易所保证金 float 任务
BizType 业务类型 str 任务
ForzenSwap 延时换汇冻结金额 float 任务
RemainSwap 剩余换汇额度 float 任务

接口案例

def on_init(context):
    account_info = get_account()
    print(f"{account_info}")

数据示例

{
    'AccountID': '182958',
    'Available': 20833162.898450002,
    'Balance': 20940449.198450003,
    'BizType': '',
    'BrokerID': '9999',
    'CashIn': 0.0, 
    # 以下展示内容已省略
    # ...
}

get_position() — 获取持仓信息

用于获取用户目前期货交易账户中所有持仓明细详情的函数。

返回值

返回一个 list 字典,每一个字典的参数详情如下

参数 参数名称 参数类型 任务/回测 描述
AbandonFrozen 放弃执行冻结 int ALL
BrokerID 经纪公司代码 str ALL
CashIn 入金金额 float ALL
CloseAmount 平仓金额 int ALL
CloseProfit 平仓盈亏 int ALL
CloseProfitByDate 平仓逐日盈亏 int ALL
CloseProfitByTrade 平仓逐步盈亏 int ALL
CloseVolume 平仓手数 int ALL
CombLongFrozen 组合多头冻结 int ALL
CombPosition 组合持仓 int ALL
CombShortFrozen 组合空头冻结 int ALL
Commission 手续费 int ALL
ExchangeID 交易所ID str ALL
ExchangeMargin 交易所保证金 float ALL
FrozenCash 冻结资金 float ALL
FrozenCommission 冻结手续费 float ALL
FrozenMargin 冻结保证金 float ALL
HedgeFlag 投机套保标志 str ALL
InstrumentID 合约代码 str ALL
InvestUnitID 投资单元代码 str ALL
InvestorID 投资者代码 str ALL
LongFrozen 多头冻结 int ALL
LongFrozenAmount 多头冻结金额 float ALL
MarginRateByMoney 保证金比例 float ALL
MarginRateByVolume 每手保证金 float ALL
OpenAmount 开仓金额 float ALL
OpenCost 开仓价值 float ALL
OpenVolume 开仓手数 int ALL
PosiDirection 持仓多空方向 str ALL '2':多头;'3':空头;'1':其它
Position 当前持仓 int ALL
PositionCost 持仓价值 int ALL
PositionCostOffset 持仓价值平移 float ALL
PositionDate 持仓日期 str ALL
PositionProfit 持仓盈亏 float ALL
PreMargin 前保证金 float ALL
PreSettlementPrice 前结算价 float ALL
SettlementID 结算ID int ALL
SettlementPrice 结算价 float ALL
ShortFrozen 空头冻结 int ALL
ShortFrozenAmount 空头冻结金额 float ALL
StrikeFrozen 执行冻结 int ALL
StrikeFrozenAmount 执行冻结金额 float ALL
TasPosition tas持仓 int 任务
TasPositionCost tas持仓价值 float ALL
TodayAvgPrice 今均价 float ALL
TodayPosition 今持仓 int ALL
TradingDay 交易日 str ALL
UsedMargin 已用保证金 float ALL
YdPosition 昨仓持仓量 int ALL
YdStrikeFrozen 执行昨仓冻结 int ALL

接口案例

def on_init(context):
    # 获取当前持仓的明细
    position_info = get_position()
    print(f"{position_info}")

数据示例

[
    {
        'AccountID': 0,
        'ActiveTime': '9999',
        'CashIn': 0.0,
        'CloseAmount': 0,
        'CloseProfit': 0
    	# 以下展示内容已省略
    	# ...
    }
]

get_orders() — 获取委托挂单

返回当前未成交的委托单列表。

返回值

返回一个 list 字典,每一个字典的参数详情如下

参数 参数名称 参数类型 任务/回测 描述
AccountID 投资者帐号 str ALL
ActiveTime 激活时间 str ALL
ActiveTraderID 激活交易 ID str ALL
ActiveUserID 操作用户代码 str ALL
BranchID 营业部编号 str ALL
BrokerID 经纪公司代码 str ALL
BrokerOrderSeq 系统的报单编号 int ALL
BusinessUnit 业务单元 str ALL
CancelTime 撤销时间 str ALL
ClearingPartID 清算会员编号 str ALL
ClientID 交易编码 str ALL
CombHedgeFlag 组合投机套保标志 str ALL
CombOffsetFlag 组合开平标志 str ALL
ContingentCondition 触发条件 str ALL
CurrencyID 币种代码 str ALL
Direction 买卖方向 str ALL
ExchangeID 交易所代码 str ALL
ExchangeInstID 合约在交易所的代码 str ALL
ForceCloseReason 强平原因 str ALL
FrontID 后台前置编号 int ALL
GTDDate GTD 日期 str ALL
IPAddress IP 地址 str ALL
InsertDate 订单插入日期 str ALL
InstallID 安装编号 int ALL
InstrumentID 合约代码 str ALL
InvestUnitID 投资单元代码 str ALL
InvestorID 投资者代码 str ALL
IsAutoSuspend 自动挂起标志 int ALL 1:自动挂起;0:非自动挂起
IsSwapOrder 互换单标志 int ALL
LimitPrice 限价 float ALL
MacAddress Mac 地址 str ALL
MinVolume 最小成交量 int ALL
NotifySequence 报单提示序号 int ALL
OrderLocalID 系统分配的唯一标识符 str ALL
OrderPriceType 报单价格条件 str ALL
OrderRef 报单引用 str ALL
OrderSource 标识订单的来源 str ALL '0':来自参与者;'1':来自管理员;
OrderStatus 订单的状态 str ALL '0':全部成交;'1':部分成交还在队列中;'2':部分成交不在队列中;'3':未成交还在队列中;'4':未成交不在队列中;'5':撤单;'a':未知;'b':尚未触发;'c':已触发;
OrderSubmitStatus 订单的提交状态 str ALL '0':已经提交;'1':撤单已经提交;'2':修改已经提交;'3':已经接受;'4':报单已经被拒绝;'5':撤单已经被拒绝;'6':改单已经被拒绝;
OrderSysID 订单在交易所系统的唯一标识 str ALL
OrderType 订单类型 str ALL ALL'0':正常;'1':报价衍生;'2':组合衍生;'3':组合报单;'4':条件单;'5':互换单;'6':大宗交易成交衍生;'7':期转现成交衍生;
ParticipantID 参与者的唯一标识 str ALL
RelativeOrderSysID 关联订单的系统编号 str ALL
RequestID 请求编号 int ALL
SequenceNo 序号 int ALL
SessionID 会话编号 int ALL
SettlementID 结算编号 int ALL
StatusMsg 状态信息 str ALL
StopPrice 止损价 float ALL
SuspendTime 顺序消费过程中消费失败后的延时时间 str ALL
TimeCondition 报单有效期类型 str ALL
TraderID 交易所交易员代码 str ALL
TradingDay 交易系统日期 str ALL
UpdateTime 行情交易数据的更新时间 str 回测
UserForceClose 强制平仓标志 str ALL
UserID 用户代码 str ALL
UserProductInfo 用户端产品信息 str ALL
VolumeCondition 成交量类型 str ALL
VolumeTotal 总成交量 int ALL
VolumeTotalOriginal 数量 int ALL
VolumeTraded 已成交数量 int ALL
ZCETotalTradedVolume 郑商所某一期货品种的总成交量 int ALL
reserve1 (保留字段)
reserve2 (保留字段)
reserve3 (保留字段)

接口案例

def on_init(context):
    # 获取当前委托挂单的明细
    orders_info = get_orders()
    print(f"{orders_info}")

req_order(symbol, ordersysid) — 查询成交单订单状态

传入报单时返回的 order_id,查询订单当前状态。

输入参数

参数 参数名称 参数类型 是否必填 描述
symbol 合约代码 str 是 合约 ID
ordersysid 订单号 str 是 OrderSysID 订单号

返回值

请求后,会返回一个order,相较于正常的委托单信息会多出 一个返回值 'dataStatus': 'old'

接口案例

def on_order(context,order):
    put_log(f"order:{order}",level='ERROR')

def on_trade(context,trade):
    req_order(trade["InstrumentID"],trade['OrderSysID'])

数据示例

# 以下是请求成功返回的结果
{'AccountID': '', 'ActiveTime': '', ...,'InstrumentID': 'a2601', ..., 'OrderSysID': '         166', ..., 'dataStatus': 'old', 'req_id': '183983493658010552850451539131408725449_1'}

get_exec_order() — 查询行权数据(期权)

查询期货账户在通过期权页面发起行权后的数据。

返回值

list 字典,参数详情:

参数 参数名称 参数类型 描述
TradingDay 交易日期 str
InstrumentID 期货合约代码 str
StatusMsg 行权状态描述 str 1:行权 </br> 2:放弃行权
ActionType 行权类型 str
AskPrice5 申卖价五 str
Volume 行权数量 str
ExecOrderSysID 交易的唯一ID str

相关阅读

  • [核心API 交易指令]
  • [核心API 辅助功能]
已复制到剪贴板
策略文档 · 期货版修订 R1

返回策略文档 · 期货版板块

评论