API 總覽¶
這一頁先提供功能分區與接法建議,不嘗試把每一支 API 的細節全部列成表格。
若未來要補到 Swagger 之外的完整接口手冊,建議再拆成多頁。
API 入口¶
啟動後可透過:
- Swagger UI:
/docs - ReDoc:
/redoc
功能分區¶
1. 一般回測控制¶
GET /statePOST /set_tickerPOST /set_time_rangeGET /get_time_rangePOST /set_timeframeGET /get_timeframeGET /get_timeframe_listPOST /backfill
典型流程¶
POST /set_tickerPOST /set_strategyPOST /set_timeframePOST /set_time_rangeGET /get_paramsGET /state
2. 策略與參數管理¶
GET /strategy_listGET /get_strategyPOST /set_strategyPOST /set_paramsGET /get_paramsPOST /set_params_for_combinationGET /get_params_for_combinationGET /get_all_combinationsGET /get_ticker_combinationsPOST /reset_params_for_combinationGET /get_params_schema
接法建議¶
一般回測頁¶
- 使用
set_strategy + get_params + set_params
多組合管理頁¶
- 使用
get_params_for_combination + set_params_for_combination - 明傳
ticker / timeframe_minutes / strategy_name
3. 回測歷史¶
GET /backtest_historyGET /backtest_result/{record_id}GET /backtest_params/{record_id}GET /export_params/{record_id}POST /clear_history
特性¶
- 一般回測會記錄歷史摘要
- 歷史結果可能來自記憶體 cache 或重跑
- 舊紀錄若沒有
strategy_name,會使用目前邏輯做相容處理
4. 備註系統¶
POST /notes/addGET /notes/allPOST /notes/getPOST /notes/delete
注意¶
備註目前主要依:
tickertimeframe_minutesparams_hash
做關聯,而不是正式以 strategy_name 當主鍵維度。
5. 訓練區間¶
GET /api/training/chart_dataPOST /api/training/param_rangeGET /api/training/param_rangesGET /api/training/param_range/{range_id}PUT /api/training/param_range/{range_id}DELETE /api/training/param_range/{range_id}POST /api/training/param_ranges/batch
作用¶
這一塊不是模型訓練,而是:
- 給前端畫圖
- 人工標記區間
- 保存某段時間對應的一組參數
6. 多區段回測¶
POST /multi_params/segmentsGET /multi_params/segmentsGET /multi_params/segments/{segment_id}PUT /multi_params/segments/{segment_id}DELETE /multi_params/segments/{segment_id}GET /multi_params/result
重要提醒¶
這一塊目前與新主流程存在結構落差,尤其是策略維度尚未完全統一。
若你把系統視為新架構:
- 一般回測:strategy-aware
- 最佳化:strategy-aware
multi_params:尚未完全 strategy-aware
7. 最佳化任務¶
POST /optimization/tasksGET /optimization/tasksGET /optimization/tasks/{task_id}GET /optimization/tasks/{task_id}/progressPOST /optimization/tasks/{task_id}/runPATCH /optimization/tasks/{task_id}POST /optimization/tasks/{task_id}/cloneGET /optimization/tasks/{task_id}/resultsDELETE /optimization/tasks/{task_id}
建議前端流程¶
- 建立任務:
POST /optimization/tasks - 執行任務:
POST /optimization/tasks/{task_id}/run - 輪詢進度:
GET /optimization/tasks/{task_id}/progress - 查看結果:
GET /optimization/tasks/{task_id}/results?limit=50&offset=0
為什麼要這樣接¶
系統已做過 task API 的輕量化優化:
- 列表不回傳大
results - 單一進度有專用輕量端點
- 結果支援
limit + offset
因此不建議前端在輪詢期間一直打完整 task 詳情或完整 results。
8. 最佳化結果收藏¶
POST /optimization/records/toggleGET /optimization/recordsDELETE /optimization/records/{record_id}DELETE /optimization/records
這一層是給人工挑選優秀結果、做後續整理用。
錯誤處理慣例¶
多數 API 使用:
{
"detail": "錯誤訊息"
}
常見 HTTP 狀態:
200成功400請求錯誤 / 驗證不通過404資源不存在500伺服器錯誤
建議前端不要做的事¶
- 不要自己硬寫可用策略清單,請讀
/strategy_list - 不要輪詢
GET /optimization/tasks/{task_id}?include_results=true - 不要假設所有回測子系統都已完整支援
strategy_name - 不要以舊文件中的欄位名為準,請以 Swagger 與目前實作為準