Strategy detail
Description
Query details of a currently available strategy by ValueScan strategy ID, including strategy info, trading symbols, performance metrics, risk analysis, and version information.
Endpoint
- Method:
GET - Path:
/open/v1/strategy/detail
Credits
- Cost:
1
Request parameters
Parameters are passed via Query String and must participate in signing according to the GET request rules in the authentication documentation.
| Field | Type | Required | Description |
|---|---|---|---|
strategyId | long | Yes | ValueScan strategy ID; obtainable from the id field in the strategy list endpoint |
language | string | No | Response content language; supports zh-CN, zh-TW, en-US, vi-VN, ja-JP, ko-KR; default zh-CN; returns 70005 when content for the requested language is temporarily unavailable; returns 40002 for unsupported values |
Request example
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'Response fields
All return and drawdown rates in this document are decimals; for example,
0.12represents 12%. All time fields are Unix timestamps in seconds, except month fields.
| Field | Type | Description |
|---|---|---|
strategy | object | Basic strategy info, including id, name, description, riskLabel, marketType, performance and signal status |
summary | object | Strategy summary, including trading symbols, leverage, running days, return metrics, and NAV trend |
version | object | Current version details |
calculatedMetrics | object | Platform-calculated metrics, including source, pointCount, totalReturn, maxDrawdown |
analytics | object | Analysis results generated from strategy NAV data |
performanceSegments | object | Performance metrics by phase, including backtest and live phase data |
riskScope | object | Risk scope, including trading symbols, max leverage, backtest window, historical max drawdown, cost model, and fee basis |
simulation | object | Strategy run overview, including run status, start time, and latest confirmed NAV |
symbols | array | Strategy trading symbol binding info |
Common metric paths:
| Metric | Field path | Description |
|---|---|---|
| Maximum drawdown in the last 30 days | analytics.metrics.maxDrawdown30d | Maximum drawdown rate across the latest 30 UTC calendar days of the currently displayed NAV |
| Backtest maximum drawdown in the last 30 days | performanceSegments.backtest.maxDrawdown30d | Present only when phased performance is returned |
| Full-period maximum drawdown rate | calculatedMetrics.maxDrawdown | Recalculated from the displayed NAV across the full period |
| Full-period maximum drawdown details | analytics.metrics.maxDrawdown | Includes rate, peak, trough, recovery time, and duration |
strategy fields:
| Field | Type | Description |
|---|---|---|
id | long | ValueScan strategy ID |
name | string | Strategy name |
description | string | Strategy description |
riskLabel | string | Risk level: low, medium, or high |
marketType | string | Market type: spot, perpetual, or delivery |
performance | object | Strategy performance summary; see below |
providerStatus | string | Strategy data status: active, paused, or retired |
publishStatus | integer | Strategy availability status; currently available strategies are 300 |
signalStatus | integer | Strategy signal status |
lastSignalSeq | long | Latest signal sequence number; may be null |
lastSignalTs | long | Latest signal Unix timestamp in seconds; may be null |
performance fields:
| Field | Type | Description |
|---|---|---|
navKind | string | NAV type: backtest, live, or blended |
fromTs | long | Start timestamp for the statistics |
toTs | long | End timestamp for the statistics |
totalReturn | number | Cumulative return |
cagr | number | Compound annual growth rate |
sharpe | number | Sharpe ratio |
maxDrawdown | number | Maximum drawdown rate across the full period |
Fields in each item of tokens and each NAV point of trend.backtest and trend.live:
| Field | Type | Description |
|---|---|---|
vsTokenId | long | ValueScan token ID (tokens only) |
symbol | string | Token symbol (tokens only) |
name | string | Token name (tokens only) |
icon | string | Token icon URL (tokens only) |
ts | long | Unix timestamp in seconds (NAV point only) |
nav | number | NAV at that time (NAV point only) |
Additional summary fields:
| Field | Type | Description |
|---|---|---|
tokens | array | Trading symbols; each item includes vsTokenId, symbol, name, and icon |
maxLeverage | number | Maximum leverage; may be null |
avgLeverage | number | Average leverage; may be null |
liveSignalDays | long | Live signal running days; may be null |
backtestCagr | number | Backtest CAGR; may be null |
winRate | number | Win rate; may be null |
trend | object | NAV trend with backtest and live arrays; each point includes ts and nav |
Main fields of version:
| Field | Type | Description |
|---|---|---|
id | long | Current version record ID |
version | string | Strategy version number |
marketType | string | Market type |
navKind | string | NAV type |
feeBasis | string | Fee basis |
maxLeverage | number | Maximum leverage |
avgLeverage | number | Average leverage |
failureModes | string | Failure scenario description |
remark | string | Remarks |
changelog | array | Version change log |
ruleSpec | string | Strategy rule description |
costModel | object | Cost model |
selfStats | object | Strategy statistics |
selfMetrics | object | Strategy metrics |
version.costModel fields:
| Field | Type | Description |
|---|---|---|
feeBps | number | Fee in basis points |
slippageBps | number | Slippage in basis points |
Standard version.selfStats fields:
| Field | Type | Description |
|---|---|---|
tradeCount | long | Number of trades |
winRate | number | Win rate; may be null |
avgHoldHours | number | Average holding time in hours; may be null |
profitFactor | number | Profit factor; may be null |
maxConsecutiveLosses | long | Maximum number of consecutive losses |
statsBasis | string | Description of the statistical basis; may be null |
Standard version.selfMetrics fields:
| Field | Type | Description |
|---|---|---|
cagr | number | Compound annual growth rate |
sharpe | number | Sharpe ratio |
maxDrawdown | number | Maximum drawdown rate |
totalReturn | number | Cumulative return; may be null |
annualReturn | number | Annual return; may be null |
basis | string | Description of the metric basis; may be null |
calculatedMetrics fields:
| Field | Type | Description |
|---|---|---|
source | string | Metric data source |
pointCount | integer | Number of NAV points used in the calculation |
totalReturn | number | Cumulative return; may be null |
maxDrawdown | number | Full-period maximum drawdown rate; may be null |
analytics fields:
| Field path | Type | Description |
|---|---|---|
metrics | object | Aggregated performance metrics; see below |
curves.7d | object | Return curve for the most recent 7 days |
curves.30d | object | Return curve for the most recent 30 days |
curves.all | object | Return curve for the full period |
drawdownCurve | array | Drawdown curve; each point contains ts and drawdownRate |
monthlyReturns | array | Monthly returns; each item contains month, fromTs, toTs, and returnRate |
analytics.metrics fields:
| Field | Type | Description |
|---|---|---|
source | string | Metric data source |
asOfTs | long | Metric cutoff timestamp; may be null |
cagr | number | CAGR; may be null |
sharpe | number | Sharpe ratio; may be null |
maxDrawdown | object | Full-period maximum drawdown details; see below |
maxDrawdown30d | number | Maximum drawdown in the most recent 30 UTC calendar days; may be null |
winRate | number | Win rate; may be null |
profitFactor | number | Profit factor; may be null |
sortino | number | Sortino ratio; may be null |
strategyTotalReturn | number | Strategy cumulative return; may be null |
benchmarkTotalReturn | number | Benchmark cumulative return; may be null |
benchmarkExcessReturn | number | Excess return relative to the benchmark; may be null |
maxDrawdown detail fields:
| Field | Type | Description |
|---|---|---|
rate | number | Maximum drawdown rate |
peakTs | long | Peak timestamp |
troughTs | long | Trough timestamp |
recoveryTs | long | Timestamp when NAV recovered to the peak; null if not recovered |
durationDays | long | Number of UTC calendar days from peak to recovery, or to the current cutoff |
curves.7d, curves.30d, and curves.all fields:
| Field | Type | Description |
|---|---|---|
range | string | Curve range: 7d, 30d, or all |
fromTs | long | Curve start timestamp; null when data is insufficient |
toTs | long | Curve end timestamp; null when data is insufficient |
returnCurve | array | Return curve; each point contains ts and returnRate |
performanceSegments fields:
| Field path | Type | Description |
|---|---|---|
backtest | object | Backtest metrics; fields match analytics.metrics |
live.metricFromTs | long | Start timestamp for live metrics |
live.metricToTs | long | End timestamp for live metrics |
live.totalReturn | number | Live cumulative return |
live.maxDrawdown | number | Live maximum drawdown |
live.fee | number | Cumulative fees |
live.funding | number | Cumulative funding fees |
live.realizedPnl | number | Realized PnL |
live.unrealizedPnl | number | Unrealized PnL; may be null |
live.cagr | number | CAGR; may be null |
live.sharpe | number | Sharpe ratio; may be null |
live.closedCycles | long | Number of completed trading cycles |
live.winRate | number | Win rate; may be null |
riskScope fields:
| Field | Type | Description |
|---|---|---|
tokens | array | Trading symbols |
maxLeverage | number | Maximum leverage |
backtestWindow | object | Backtest window: startTs, endTs, and durationDays; null without backtest data |
historicalWorstFloatingLoss | object | Historical maximum drawdown details; fields match the maxDrawdown details above |
costModel | object | Cost model, including feeBps and slippageBps |
feeBasis | string | Fee basis |
simulation fields:
| Field | Type | Description |
|---|---|---|
status | string | Run status: INITIALIZING, RECOVERING, RUNNING, DEGRADED, or BANKRUPT |
startTs | long | Run start timestamp |
simulationFromTs | long | NAV start timestamp for the live phase |
latestConfirmedTs | long | Latest confirmed NAV timestamp; may be null |
latestConfirmedNav | number | Latest confirmed NAV; may be null |
priceStatus | string | Current price status: FRESH or STALE |
latestProvisionalNav | number | Provisional NAV estimated from the latest price; may be null |
simulationandperformanceSegmentsare returned only for strategies with live data.version,calculatedMetrics,analytics, andriskScopeare returned when a current strategy version exists.
Fields in each item of symbols:
| Field | Type | Description |
|---|---|---|
symbol | string | Strategy trading pair symbol |
vsTokenId | long | ValueScan token ID |
vsTokenSymbol | string | ValueScan token symbol |
vsTokenName | string | ValueScan token name |
vsTokenIcon | string | ValueScan token icon |
exchange | string | Exchange |
marketType | string | Market type |
productType | string | Product type |
exchangeSymbol | string | Exchange trading pair symbol |
settleCoin | string | Settlement currency |
contractSize | number | Contract size; may be null |
Success response example
{
"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"
}Error codes
| Code | Description |
|---|---|
40001 | Missing strategyId |
40002 | Invalid strategyId parameter |
50001 | The requested endpoint does not exist or is currently unavailable |
60001 | Rate limit exceeded |
70001 | Insufficient OpenAPI credits |
70002 | OpenAPI access for the current user has been disabled |
70004 | Strategy does not exist or is currently unavailable |
70005 | Strategy content for the requested language is temporarily unavailable |