账户快照 API
默认地址为 http://127.0.0.1:8811,提供账户资金、持仓、委托和成交的最新快照。服务通过表结构发现与受限只读 SQL 查询访问数据;不提供下单、撤单或改单能力。
字段含义见 账户快照字段,监控与统计用法见 常见应用与组合使用。结算后的历史日记录请使用 历史绩效 API。
接口总览
方法 |
路径 |
作用 |
|---|---|---|
|
|
检查服务与数据库状态 |
|
|
返回可查询的表、字段、类型、可空性和索引名称 |
|
|
执行一条只读 SQL,返回列名和二维行数组 |
检查服务
按 快速开始 启用服务后,发送无参数请求:
Invoke-RestMethod "http://127.0.0.1:8811/health"
数据库可用时返回 HTTP 200 和 {"ok": true},不可用时返回 HTTP 503 和 {"ok": false}。健康检查通过不代表每个交易账户的快照已经准备完毕。
查询表结构:GET /tables
无请求参数。当前主要业务表为 AccountSnap、PositionSnap、OrderSnap 和 TradeSnap,实际可查询表及字段以返回值为准。
$schema = Invoke-RestMethod "http://127.0.0.1:8811/tables"
$schema.tables | Select-Object name, columns, indexes
下面仅展示一张表的部分字段:
{
"ok": true,
"tables": [{
"name": "AccountSnap",
"columns": [{"name": "node_key", "type": "TEXT", "primary_key": true, "nullable": false}],
"indexes": ["account_update_time_idx", "account_user_key_idx"]
}]
}
columns 中每项给出字段的 name、SQLite type、primary_key 和 nullable;indexes 是索引名称数组。不同版本可能增加字段,程序可先发现结构再构建查询。
执行查询:POST /query
请求体为 JSON 对象,sql 是必填字符串:
{"sql": "SELECT user_key, currency, client_equity, available FROM AccountSnap ORDER BY user_key LIMIT 100"}
可直接在 PowerShell 中运行:
$query = @{
sql = "SELECT user_key, currency, client_equity, available FROM AccountSnap ORDER BY user_key LIMIT 100"
} | ConvertTo-Json
$body = [System.Text.Encoding]::UTF8.GetBytes($query)
$result = Invoke-RestMethod -Method Post -Uri "http://127.0.0.1:8811/query" `
-ContentType "application/json; charset=utf-8" -Body $body
if (-not $result.ok) { throw $result.error.message }
$result.columns
$result.rows
成功响应示例中的数据为虚构值:
{
"ok": true,
"columns": ["user_key", "currency", "client_equity", "available"],
"rows": [["example-account", "CNY", 100000.0, 80000.0]],
"row_count": 1,
"truncated": false,
"elapsed_ms": 2
}
字段 |
含义 |
|---|---|
|
列名数组,顺序与每行数值一致 |
|
二维数组;每条记录是一个按列顺序排列的数组,并非字段名对象 |
|
本次实际返回的行数,不是查询条件匹配的总行数 |
|
结果是否因服务端限制被截断;为 |
|
SQL 执行耗时,单位毫秒 |
查询限制
每个请求只允许一条只读
SELECT或只读WITH查询,禁止写入、多语句和加载 SQLite 扩展。最多返回
1000行,并限制响应大小为8 MiB;查询超时为10秒。建议显式写出所需字段、筛选条件、排序和
LIMIT。需要更多记录时,在 SQL 中缩小范围或分批查询,并检查truncated。这里没有独立的
limit、offset或paramsJSON 参数。按账户过滤时使用快照中的user_key;构造 SQL 字符串时应正确处理文本转义。多次查询之间快照可能变化;该服务不会自动保留每次变化形成的盘中历史序列。日频历史分析见 历史绩效分析与导出。
错误响应
{"ok": false, "error": {"code": "BAD_REQUEST", "message": "missing sql"}}
HTTP |
代码 |
说明 |
|---|---|---|
|
|
请求体无法解析或缺少 |
|
|
SQL 不符合只读规则、语法错误或执行失败 |
|
|
获取表结构时数据库查询失败 |
|
无独立错误码 |
健康检查失败,响应为 |