本文汇总期魔方期货策略中与账户持仓查询相关的 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 辅助功能]

评论
登录后参与讨论,与站内账号体系共用。