Finhay Portfolio 通过 Finhay Securities 开放 API 提供只读交易数据查询,所有接口均使用签名 GET 请求。
用途:当用户询问账户身份、账户余额、总资产、交易、持仓、订单或盈亏时使用。
主要能力:可查询账户详情与保证金/负债、余额与总资产及净值、订单历史、当日订单簿、单笔订单详情、股票持仓、当日盈亏、交易权限,以及市场开收盘状态。
使用方式:执行任何操作前必须先完成预检,需要 FINHAY_API_KEY、FINHAY_API_SECRET、USER_ID 和相关 SUB_ACCOUNT_* 变量。若缺少 USER_ID 或 SUB_ACCOUNT_* 变量,运行一次: ./_shared/scripts/infer-sub-account.sh 该脚本会把 USER_ID、SUB_ACCOUNT_NORMAL 和/或 SUB_ACCOUNT_MARGIN 写入 ~/.finhay/credentials/.env。
发起请求时始终使用 request.sh,并在调用前解析所有路径变量,签名路径必须是最终完整路径。示例: source ~/.finhay/credentials/.env ./_shared/scripts/request.sh GET "/trading/accounts/$SUB_ACCOUNT_NORMAL/summary" ./_shared/scripts/request.sh GET "/users/v4/users/$USER_ID/assets/summary" ./_shared/scripts/request.sh GET "/trading/sub-accounts/$SUB_ACCOUNT_MARGIN/orders" "fromDate=2024-01-01&toDate=2024-01-31" ./_shared/scripts/request.sh GET "/trading/v2/sub-accounts/$SUB_ACCOUNT_NORMAL/portfolio" ./_shared/scripts/request.sh GET "/trading/pnl-today/$USER_ID" ./_shared/scripts/request.sh GET "/trading/market/session" "exchange=HOSE"
子账户选择:需要 {subAccountId} 时,先询问用户使用 NORMAL 还是 MARGIN,再替换为对应环境变量(NORMAL → $SUB_ACCOUNT_NORMAL,MARGIN → $SUB_ACCOUNT_MARGIN)。
限制:路径版本 v1、v2、v4、v5 固定,必须使用指定版本;每个接口只接受其列出的路径与查询参数,不得添加额外参数;URL 中的 {变量} 均为路径变量,须替换进 URL,不能作为查询参数传递;未先与用户确认子账户类型,不得替换 {subAccountId}。更多响应结构与枚举见 references/endpoints.md 与 references/enums.md。