投资组合
投资组合接口用于读取账户资产、保证金、持仓和账本数据。它们适合做交易面板、风险控制、仓位同步和盘后核对。
这类接口通常使用 /portfolio/{accountId}/... 路径。调用前先用账户接口拿到可用 accountId。
官方参考:Client Portal API
| 接口 | 方法 | 用途 |
|---|---|---|
/portfolio/{accountId}/summary | GET | 账户摘要,例如净值、保证金等。 |
/portfolio/{accountId}/positions/{pageId} | GET | 分页读取持仓。 |
/portfolio/{accountId}/ledger | GET | 读取现金、币种、账本数据。 |
/portfolio/{accountId}/allocation | GET | 读取资产分配数据。 |
curl -k https://localhost:5000/v1/api/portfolio/DU1234567/summary常见字段:
| 字段 | 中文说明 |
|---|---|
netliquidation | 净清算价值,可理解为账户总净值。 |
equitywithloanvalue | 含借贷价值的权益。 |
initmarginreq | 初始保证金要求。 |
maintmarginreq | 维持保证金要求。 |
availablefunds | 可用资金。 |
excessliquidity | 超额流动性。 |
不同账户类型、地区和权限返回字段可能不同。程序应按字段是否存在来处理,不要假设每个账户都有完全一样的键。
curl -k https://localhost:5000/v1/api/portfolio/DU1234567/positions/0pageId 从 0 开始。持仓较多时需要翻页请求。
返回通常是持仓数组。下面是字段结构示例,价格、数量和盈亏以实际账户返回为准:
[ { "conid": "265598", "contractDesc": "AAPL", "position": "持仓数量", "mktPrice": "市场价格", "mktValue": "持仓市值", "avgCost": "平均成本", "unrealizedPnl": "未实现盈亏" }]字段解释:
| 字段 | 中文说明 |
|---|---|
position | 持仓数量。负数通常表示空头。 |
mktPrice | 最新市场价格或估值价格。 |
mktValue | 持仓市值。 |
avgCost | 平均成本。 |
unrealizedPnl | 未实现盈亏。 |
Python 示例
Section titled “Python 示例”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,确认账户状态。 |
| 下单前风控 | 用持仓和可用资金判断是否允许下单。 |
| 盘中展示 | 适度轮询,避免过高频率请求。 |
| 盘后核对 | 和成交记录、订单状态一起核对。 |