跳到主要内容

回测任务列表

submitted_at 倒序列出当前已鉴权用户的最近回测任务。

接口

GET /v1/backtest/jobs

权重: 5

鉴权: 必需(已签名)

查询参数

名称类型必填说明
statusenum按单一状态过滤:queuedrunningdonefailedcancelled
template_idstring仅返回运行了指定模板的任务。
fromstring (ISO 8601 UTC)submitted_at 的下界(含)。
tostring (ISO 8601 UTC)submitted_at 的上界(不含)。
limitinteger分页大小,1100。默认 20
cursorstring上一次调用以 next_cursor 返回的不透明分页游标。

响应

{
"data": [
{
"id": "bt_3c91ef",
"status": "done",
"config": {
"template_id": "tpl_grid",
"params": {
"grid_levels": 8,
"upper_price": "72000",
"lower_price": "60000"
},
"symbols": ["BTCUSDT"],
"timeframe": "1h",
"start": "2025-01-01T00:00:00Z",
"end": "2025-12-31T23:59:59Z",
"capital": "10000.00",
"leverage": 1,
"fee_model": "fixed_bps",
"fee_bps": "5"
},
"submitted_at": "2026-04-29T10:15:00Z",
"started_at": "2026-04-29T10:15:08Z",
"finished_at": "2026-04-29T10:17:42Z",
"progress": 1.0,
"result": {
"metrics": {
"sharpe": "1.84",
"sortino": "2.31",
"calmar": "1.12",
"max_drawdown": "-0.142",
"win_rate": "0.638",
"profit_factor": "1.92",
"cagr": "0.187",
"expected_value": "12.43",
"total_trades": 247,
"avg_trade_duration_seconds": 14820
}
},
"error": null
},
{
"id": "bt_88a210",
"status": "running",
"config": {
"template_id": "tpl_breakout",
"params": { "lookback": 24 },
"symbols": ["ETHUSDT"],
"timeframe": "15m",
"start": "2025-06-01T00:00:00Z",
"end": "2025-09-30T23:59:59Z",
"capital": "5000.00",
"leverage": 2,
"fee_model": "tiered_maker_taker"
},
"submitted_at": "2026-04-29T10:18:11Z",
"started_at": "2026-04-29T10:18:12Z",
"finished_at": null,
"progress": 0.62,
"result": null,
"error": null
}
],
"next_cursor": "eyJzdWJtaXR0ZWRfYXQiOiIyMDI2LTA0LTI4VDExOjAwOjAwWiJ9"
}

响应字段

字段类型说明
dataarray<object>任务摘要,最新的在前。
data[].idstring任务标识符。
data[].statusenum当前状态。
data[].configobject任务的解析后配置(结构与 创建任务 中一致)。
data[].submitted_atstring (ISO 8601)任务被接受的时间。
data[].started_atstring (ISO 8601) | nullWorker 开始处理的时间。
data[].finished_atstring (ISO 8601) | null任务进入终止状态的时间。
data[].progressnumber位于 [0, 1] 的进度比例。
data[].resultobject | null摘要形态:仅当状态为 done 时包含 metrics。完整的 equity_curvetrades 数组不会返回,以保持响应轻量——如需获取,请调用 获取结果
data[].errorobject | null当状态为 failed 时为 { "code", "message" }
next_cursorstring | null作为 cursor 回传以获取下一页。无更多结果时为 null

错误

HTTP错误码原因
400INVALID_PARAMETER未知的 status、格式错误的 from/tolimit 越界,或无效的 cursor

通用错误语义参见 错误

示例

列出最近 10 条成功的 BTC 网格回测:

curl -X GET "https://api.pipai.example/v1/backtest/jobs?status=done&template_id=tpl_grid&limit=10" \
-H "X-PipAI-API-Key: $API_KEY" \
-H "X-PipAI-Timestamp: $TS" \
-H "X-PipAI-Signature: $SIG"

通过分页游标翻页:

curl -X GET "https://api.pipai.example/v1/backtest/jobs?limit=50&cursor=$CURSOR" \
-H "X-PipAI-API-Key: $API_KEY" \
-H "X-PipAI-Timestamp: $TS" \
-H "X-PipAI-Signature: $SIG"