取消回测
取消处于 queued 或 running 状态的任务。已处于终止状态(done、failed 或 cancelled)的任务无法取消。
接口
POST /v1/backtest/jobs/{id}/cancel
权重: 5
鉴权: 必 需(已签名)
路径参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | 由 创建任务 返回的任务标识符,例如 bt_3c91ef。 |
请求体
请求体可以为空。可选的 reason 字段会被记录以供审计。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
reason | string | 否 | 自由文本说明(≤ 200 字符),用于解释取消原因。 |
响应
返回任务对象,其中 status 被置为 cancelled,finished_at 已填充,result 被清空。
{
"id": "bt_3c91ef",
"status": "cancelled",
"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:16:02Z",
"progress": 0.34,
"result": null,
"error": null
}
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务标识符。 |
status | enum | 取消成功时始终为 cancelled。 |
config | object | 回显的配置。 |
submitted_at | string (ISO 8601) | 任务被接受的时间。 |
started_at | string (ISO 8601) | null | Worker 开始处理的时间。若任务在尚未启动时被取消则为 null。 |
finished_at | string (ISO 8601) | 设为取消发生的时间。 |
progress | number | 取消瞬间观测到的最后进度。 |
result | object | null | 已取消的任务始终为 null。 |
error | object | null | 始终为 null;取消并非错误。 |
错误
| HTTP | 错误码 | 原因 |
|---|---|---|
| 404 | NOT_FOUND | 任务 ID 不存在,或不归当前已鉴权密钥所有。 |
| 409 | INVALID_STATE | 任务已处于终止状态(done、failed 或 cancelled)。 |
通用错误语义参见 错误。
示例
curl -X POST https://api.pipai.example/v1/backtest/jobs/bt_3c91ef/cancel \
-H "X-PipAI-API-Key: $API_KEY" \
-H "X-PipAI-Timestamp: $TS" \
-H "X-PipAI-Signature: $SIG" \
-H "Content-Type: application/json" \
-d '{"reason":"superseded by tpl_grid_v2 sweep"}'