策略详情
接口描述
根据 ValueScan 策略 ID 查询当前可用的策略详情,包括策略信息、交易标的、业绩指标、风险分析和版本信息。
请求 URL
- 方法:
GET - 路径:
/open/v1/strategy/detail
点数消耗
- 消耗点数:
1
请求参数
参数通过 Query String 传递,并应按身份验证文档的 GET 请求规则参与签名。
| 参数名 | 类型 | 必需 | 描述 |
|---|---|---|---|
strategyId | long | 是 | ValueScan 策略 ID,可从策略列表接口的 id 字段获取 |
language | string | 否 | 返回内容语言;支持 zh-CN、zh-TW、en-US、vi-VN、ja-JP、ko-KR,默认 zh-CN;请求语言内容暂不可用时返回 70005;不支持的值返回 40002 |
请求示例
bash
curl --location 'https://api.valuescan.ai/api/open/v1/strategy/detail?strategyId=1001&language=zh-CN' \
--header 'X-API-KEY: xxxxx' \
--header 'X-TIMESTAMP: xxxxx' \
--header 'X-SIGN: xxxxx'响应字段
本文档中的收益率和回撤率均为小数,例如
0.12表示 12%;时间字段均为 Unix 秒时间戳,月份字段除外。
| 字段 | 类型 | 描述 |
|---|---|---|
strategy | object | 策略基础信息,包含 id、name、description、riskLabel、marketType、业绩和信号状态 |
summary | object | 策略摘要,包含交易标的、杠杆、运行天数、收益指标和净值趋势 |
version | object | 当前版本详情 |
calculatedMetrics | object | 平台计算指标,包含 source、pointCount、totalReturn、maxDrawdown |
analytics | object | 基于策略净值数据生成的分析结果 |
performanceSegments | object | 分阶段业绩指标,包含回测阶段和运行阶段数据 |
riskScope | object | 风险范围,包含交易标的、最大杠杆、回测窗口、历史最大回撤、成本模型和费率依据 |
simulation | object | 策略运行概览,包含运行状态、起始时间及最新确认净值等信息 |
symbols | array | 策略交易标的绑定信息 |
常用指标字段路径:
| 指标 | 字段路径 | 说明 |
|---|---|---|
| 最近 30 日最大回撤 | analytics.metrics.maxDrawdown30d | 当前展示净值最近 30 个 UTC 自然日的最大回撤率 |
| 回测阶段最近 30 日最大回撤 | performanceSegments.backtest.maxDrawdown30d | 仅在返回分阶段业绩时存在 |
| 全期最大回撤率 | calculatedMetrics.maxDrawdown | 基于全期展示净值重新计算 |
| 全期最大回撤明细 | analytics.metrics.maxDrawdown | 包含回撤率、峰值、谷值、恢复时间和持续天数 |
strategy 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
id | long | ValueScan 策略 ID |
name | string | 策略名称 |
description | string | 策略描述 |
riskLabel | string | 风险等级:low、medium 或 high |
marketType | string | 市场类型:spot、perpetual 或 delivery |
performance | object | 策略业绩摘要,字段见下表 |
providerStatus | string | 策略数据状态:active、paused 或 retired |
publishStatus | integer | 策略可用状态;当前可用策略为 300 |
signalStatus | integer | 策略信号状态 |
lastSignalSeq | long | 最新信号序号,可为空 |
lastSignalTs | long | 最新信号 Unix 秒时间戳,可为空 |
performance 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
navKind | string | 净值类型:backtest、live 或 blended |
fromTs | long | 统计起始 Unix 秒时间戳 |
toTs | long | 统计截止 Unix 秒时间戳 |
totalReturn | number | 累计收益率 |
cagr | number | 年化收益率 |
sharpe | number | 夏普比率 |
maxDrawdown | number | 全期最大回撤率 |
tokens 中每项的字段:
| 字段 | 类型 | 描述 |
|---|---|---|
vsTokenId | long | ValueScan 代币 ID |
symbol | string | 代币符号 |
name | string | 代币名称 |
icon | string | 代币图标 URL |
trend.backtest 和 trend.live 中每个净值点的字段:
| 字段 | 类型 | 描述 |
|---|---|---|
ts | long | Unix 秒时间戳 |
nav | number | 该时点的净值 |
summary 在 strategy 基础上增加以下字段:
| 字段 | 类型 | 描述 |
|---|---|---|
tokens | array | 交易标的列表;每项包含 vsTokenId、symbol、name、icon |
maxLeverage | number | 最大杠杆,可为空 |
avgLeverage | number | 平均杠杆,可为空 |
liveSignalDays | long | 实盘信号运行天数,可为空 |
backtestCagr | number | 回测年化收益率,可为空 |
winRate | number | 胜率,可为空 |
trend | object | 净值趋势,包含 backtest 和 live 数组;每个点包含 ts、nav |
version 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
id | long | 当前版本记录 ID |
version | string | 策略版本号 |
marketType | string | 市场类型 |
navKind | string | 净值类型 |
feeBasis | string | 费率依据 |
maxLeverage | number | 最大杠杆 |
avgLeverage | number | 平均杠杆 |
failureModes | string | 失效场景说明 |
remark | string | 备注 |
changelog | array | 版本变更记录 |
ruleSpec | string | 策略规则说明 |
costModel | object | 成本模型 |
selfStats | object | 策略统计数据 |
selfMetrics | object | 策略指标数据 |
version.costModel 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
feeBps | number | 手续费,单位 bp |
slippageBps | number | 滑点,单位 bp |
version.selfStats 标准字段:
| 字段 | 类型 | 描述 |
|---|---|---|
tradeCount | long | 交易次数 |
winRate | number | 胜率,可为空 |
avgHoldHours | number | 平均持仓时长,单位小时,可为空 |
profitFactor | number | 盈亏比,可为空 |
maxConsecutiveLosses | long | 最大连续亏损次数 |
statsBasis | string | 统计口径说明,可为空 |
version.selfMetrics 标准字段:
| 字段 | 类型 | 描述 |
|---|---|---|
cagr | number | 年化收益率 |
sharpe | number | 夏普比率 |
maxDrawdown | number | 最大回撤率 |
totalReturn | number | 累计收益率,可为空 |
annualReturn | number | 年度收益率,可为空 |
basis | string | 指标口径说明,可为空 |
calculatedMetrics 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
source | string | 指标数据来源 |
pointCount | integer | 参与计算的净值点数 |
totalReturn | number | 累计收益率,可为空 |
maxDrawdown | number | 全期最大回撤率,可为空 |
analytics 字段:
| 字段路径 | 类型 | 描述 |
|---|---|---|
metrics | object | 综合业绩指标,字段见下表 |
curves.7d | object | 最近 7 日收益曲线 |
curves.30d | object | 最近 30 日收益曲线 |
curves.all | object | 全期收益曲线 |
drawdownCurve | array | 回撤曲线;每个点包含 ts、drawdownRate |
monthlyReturns | array | 月度收益;每项包含 month、fromTs、toTs、returnRate |
analytics.metrics 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
source | string | 指标数据来源 |
asOfTs | long | 指标截止 Unix 秒时间戳,可为空 |
cagr | number | 年化收益率,可为空 |
sharpe | number | 夏普比率,可为空 |
maxDrawdown | object | 全期最大回撤明细,字段见下表 |
maxDrawdown30d | number | 最近 30 个 UTC 自然日内的最大回撤率,可为空 |
winRate | number | 胜率,可为空 |
profitFactor | number | 盈亏比,可为空 |
sortino | number | 索提诺比率,可为空 |
strategyTotalReturn | number | 策略累计收益率,可为空 |
benchmarkTotalReturn | number | 基准累计收益率,可为空 |
benchmarkExcessReturn | number | 相对基准的超额收益率,可为空 |
maxDrawdown 明细字段:
| 字段 | 类型 | 描述 |
|---|---|---|
rate | number | 最大回撤率 |
peakTs | long | 回撤峰值 Unix 秒时间戳 |
troughTs | long | 回撤谷值 Unix 秒时间戳 |
recoveryTs | long | 恢复至峰值的 Unix 秒时间戳,未恢复时为空 |
durationDays | long | 从峰值到恢复时点,或到当前截止时点的 UTC 自然日数 |
curves.7d、curves.30d 和 curves.all 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
range | string | 曲线范围:7d、30d 或 all |
fromTs | long | 曲线起始 Unix 秒时间戳,数据不足时为空 |
toTs | long | 曲线截止 Unix 秒时间戳,数据不足时为空 |
returnCurve | array | 收益曲线;每个点包含 ts、returnRate |
performanceSegments 字段:
| 字段路径 | 类型 | 描述 |
|---|---|---|
backtest | object | 回测阶段指标;字段与 analytics.metrics 一致 |
live.metricFromTs | long | 运行阶段指标起始 Unix 秒时间戳 |
live.metricToTs | long | 运行阶段指标截止 Unix 秒时间戳 |
live.totalReturn | number | 运行阶段累计收益率 |
live.maxDrawdown | number | 运行阶段最大回撤率 |
live.fee | number | 累计手续费 |
live.funding | number | 累计资金费 |
live.realizedPnl | number | 已实现盈亏 |
live.unrealizedPnl | number | 未实现盈亏,可为空 |
live.cagr | number | 年化收益率,可为空 |
live.sharpe | number | 夏普比率,可为空 |
live.closedCycles | long | 已完成的交易周期数 |
live.winRate | number | 胜率,可为空 |
riskScope 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
tokens | array | 交易标的列表 |
maxLeverage | number | 最大杠杆 |
backtestWindow | object | 回测时间窗口,包含 startTs、endTs、durationDays;无回测数据时为空 |
historicalWorstFloatingLoss | object | 历史最大回撤明细,字段与上述 maxDrawdown 明细一致 |
costModel | object | 成本模型,包含 feeBps、slippageBps |
feeBasis | string | 费率依据 |
simulation 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
status | string | 运行状态:INITIALIZING、RECOVERING、RUNNING、DEGRADED 或 BANKRUPT |
startTs | long | 运行起始 Unix 秒时间戳 |
simulationFromTs | long | 运行阶段净值起始 Unix 秒时间戳 |
latestConfirmedTs | long | 最新已确认净值的 Unix 秒时间戳,可为空 |
latestConfirmedNav | number | 最新已确认净值,可为空 |
priceStatus | string | 当前价格状态:FRESH 或 STALE |
latestProvisionalNav | number | 按最新价格估算的临时净值,可为空 |
simulation和performanceSegments仅在策略具有运行数据时返回。version、calculatedMetrics、analytics和riskScope在当前策略版本存在时返回。
symbols 中每项的字段:
| 字段 | 类型 | 描述 |
|---|---|---|
symbol | string | 策略交易对符号 |
vsTokenId | long | ValueScan 代币 ID |
vsTokenSymbol | string | ValueScan 代币符号 |
vsTokenName | string | ValueScan 代币名称 |
vsTokenIcon | string | ValueScan 代币图标 |
exchange | string | 交易所 |
marketType | string | 市场类型 |
productType | string | 产品类型 |
exchangeSymbol | string | 交易所交易对符号 |
settleCoin | string | 结算币种 |
contractSize | number | 合约面值,可为空 |
成功响应示例
为便于阅读,下面的示例对重复字段和曲线数组元素做了缩略,完整字段定义以上文字段表为准。
json
{
"code": 200,
"message": "success",
"data": {
"strategy": {
"id": 1001,
"name": "BTC Trend Strategy",
"description": "Trend-following strategy for BTC perpetual futures.",
"riskLabel": "medium",
"marketType": "perpetual"
},
"summary": {
"id": 1001,
"tokens": [{"vsTokenId": 1, "symbol": "BTC", "name": "Bitcoin"}],
"maxLeverage": 3,
"backtestCagr": 0.25,
"trend": {
"backtest": [{"ts": 1735689600, "nav": 1.0}],
"live": [{"ts": 1751328000, "nav": 1.03}]
}
},
"version": {
"id": 2001,
"version": "1.0.0",
"marketType": "perpetual",
"navKind": "backtest",
"maxLeverage": 3
},
"calculatedMetrics": {
"source": "valuescan_recalculated",
"pointCount": 365,
"totalReturn": 0.31,
"maxDrawdown": 0.12
},
"analytics": {
"metrics": {
"source": "valuescan_mixed_nav",
"asOfTs": 1751328000,
"cagr": 0.25,
"sharpe": 1.42,
"maxDrawdown": {
"rate": 0.12,
"peakTs": 1740787200,
"troughTs": 1743379200,
"recoveryTs": 1746057600,
"durationDays": 61
},
"maxDrawdown30d": 0.08,
"strategyTotalReturn": 0.31
},
"curves": {
"7d": {"range": "7d", "fromTs": 1750809600, "toTs": 1751328000, "returnCurve": []},
"30d": {"range": "30d", "fromTs": 1748822400, "toTs": 1751328000, "returnCurve": []},
"all": {"range": "all", "fromTs": 1735689600, "toTs": 1751328000, "returnCurve": []}
},
"drawdownCurve": [],
"monthlyReturns": []
},
"performanceSegments": {
"backtest": {"maxDrawdown30d": 0.09},
"live": {"totalReturn": 0.03, "maxDrawdown": 0.02}
},
"riskScope": {
"tokens": [{"vsTokenId": 1, "symbol": "BTC", "name": "Bitcoin"}],
"maxLeverage": 3,
"backtestWindow": {"startTs": 1735689600, "endTs": 1748736000, "durationDays": 152},
"historicalWorstFloatingLoss": {"rate": 0.12},
"costModel": {"feeBps": 6, "slippageBps": 2},
"feeBasis": "Taker fee"
},
"simulation": {
"status": "RUNNING",
"startTs": 1748736000,
"simulationFromTs": 1748736000,
"latestConfirmedTs": 1751328000,
"latestConfirmedNav": 1.03,
"priceStatus": "FRESH",
"latestProvisionalNav": 1.031
},
"symbols": []
},
"requestId": "xxx-xxx-xxx"
}错误码
| 错误码 | 描述 |
|---|---|
40001 | 缺少 strategyId |
40002 | strategyId 参数非法 |
50001 | 请求的接口不存在或当前不可用 |
60001 | 调用频率超过限制 |
70001 | OpenAPI 点数不足 |
70002 | 当前用户的 OpenAPI 访问已被禁用 |
70004 | 策略不存在或当前不可用 |
70005 | 请求语言的策略内容暂不可用 |