Open API

开放 API

把西格玛的 PIT 诚实回测引擎接进你自己的代码、Notebook 或定时任务。 PRO / MAX 权益,额度与网页、App 共享。 密钥在 「我的 → 开放 API」 生成。

认证

所有请求带 Header:X-API-Key: sk-sigma-…。密钥等同账号凭证,泄露请立即在「我的」页轮换。

POST /api/v1/backtest — 因子回测

# 与网页版回测完全同一引擎、同一诚实口径(逐日 PIT 成分股 + 真实成本)
curl -s https://xigema.cloud/sigma-api/api/v1/backtest \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk-sigma-你的密钥" \
  -d '{
    "factor": "rank(-pe_ttm)*0.5 + rank(roe_ttm)*0.5",
    "universe": "csi1000",
    "freq": "M",
    "top_n": 50,
    "cost_bp": 17
  }'
参数类型说明
factorstring因子 DSL 表达式(与终端/回测台同一语法;官方保密因子用 F:key 引用)
universestringcsi300 / csi500 / csi800 / csi1000 / csi1800 / all,多池并集用 + 连接(如 csi300+csi500)
freqstringM 月调 / W 周调
top_nint持仓数(默认 50)
cost_bpfloat单边成本 bp(默认 17)
startstring?回测起始日 YYYY-MM-DD(可选)

返回:stats(年化/夏普/回撤/换手)、nav_monthly 净值序列、quintiles_gross_ann_pct 五分层、icconfig 口径回执、quota_left 剩余额度。

POST /api/v1/backtest_async — 异步回测(推荐用于合成因子冷算)

提交即返回 job_id(此时已计 1 次额度),轮询取结果;任务保留 1 小时,断连不丢。

# 1) 提交
curl -s https://xigema.cloud/sigma-api/api/v1/backtest_async \
  -H "Content-Type: application/json" -H "X-API-Key: sk-sigma-你的密钥" \
  -d '{"factor": "rank(-pe_ttm)*0.5 + rank(roe_ttm)*0.5", "universe": "csi300+csi500"}'
# → {"job_id": "ab12cd34ef56", "quota_left": 49}

# 2) 轮询(建议每 3 秒)
curl -s https://xigema.cloud/sigma-api/api/v1/job/ab12cd34ef56 \
  -H "X-API-Key: sk-sigma-你的密钥"
# → {"status": "running"} 或 {"status": "done", "result": {…完整回测结果…}}

POST /api/v1/ir_test — IC/IR 检验

curl -s https://xigema.cloud/sigma-api/api/v1/ir_test \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk-sigma-你的密钥" \
  -d '{"factor": "rank(dv_ttm)", "universe": "csi1000"}'

Python 示例

import requests

r = requests.post("https://xigema.cloud/sigma-api/api/v1/backtest",
    headers={"X-API-Key": "sk-sigma-你的密钥"},
    json={"factor": "rank(-pe_ttm)", "universe": "csi1000",
          "freq": "M", "top_n": 50, "cost_bp": 17}).json()

print(r["stats"])   # {'ann_pct': 2.3, 'sharpe': ..., 'mdd_pct': ...}

限制与口径

遇到问题联系客服。滥用(共享密钥/爬库)会被限流或封禁。