跳转到内容

投资组合

投资组合接口用于读取账户资产、保证金、持仓和账本数据。它们适合做交易面板、风险控制、仓位同步和盘后核对。

这类接口通常使用 /portfolio/{accountId}/... 路径。调用前先用账户接口拿到可用 accountId

官方参考:Client Portal API

接口方法用途
/portfolio/{accountId}/summaryGET账户摘要,例如净值、保证金等。
/portfolio/{accountId}/positions/{pageId}GET分页读取持仓。
/portfolio/{accountId}/ledgerGET读取现金、币种、账本数据。
/portfolio/{accountId}/allocationGET读取资产分配数据。
Terminal window
curl -k https://localhost:5000/v1/api/portfolio/DU1234567/summary

常见字段:

字段中文说明
netliquidation净清算价值,可理解为账户总净值。
equitywithloanvalue含借贷价值的权益。
initmarginreq初始保证金要求。
maintmarginreq维持保证金要求。
availablefunds可用资金。
excessliquidity超额流动性。

不同账户类型、地区和权限返回字段可能不同。程序应按字段是否存在来处理,不要假设每个账户都有完全一样的键。

Terminal window
curl -k https://localhost:5000/v1/api/portfolio/DU1234567/positions/0

pageId0 开始。持仓较多时需要翻页请求。

返回通常是持仓数组。下面是字段结构示例,价格、数量和盈亏以实际账户返回为准:

[
{
"conid": "265598",
"contractDesc": "AAPL",
"position": "持仓数量",
"mktPrice": "市场价格",
"mktValue": "持仓市值",
"avgCost": "平均成本",
"unrealizedPnl": "未实现盈亏"
}
]

字段解释:

字段中文说明
position持仓数量。负数通常表示空头。
mktPrice最新市场价格或估值价格。
mktValue持仓市值。
avgCost平均成本。
unrealizedPnl未实现盈亏。
import requests
BASE_URL = "https://localhost:5000/v1/api"
ACCOUNT_ID = "DU1234567"
response = requests.get(
f"{BASE_URL}/portfolio/{ACCOUNT_ID}/positions/0",
verify=False, # 仅限开发调试;正式环境请配置受信任证书
timeout=10,
)
response.raise_for_status()
for pos in response.json():
print(pos.get("contractDesc"), pos.get("position"), pos.get("unrealizedPnl"))
场景建议
启动交易程序先读取 summary 和 positions,确认账户状态。
下单前风控用持仓和可用资金判断是否允许下单。
盘中展示适度轮询,避免过高频率请求。
盘后核对和成交记录、订单状态一起核对。