Skip to content

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.

FieldTypeRequiredDescription
strategyIdlongYesValueScan strategy ID; obtainable from the id field in the strategy list endpoint
languagestringNoResponse 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

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'

Response fields

All return and drawdown rates in this document are decimals; for example, 0.12 represents 12%. All time fields are Unix timestamps in seconds, except month fields.

FieldTypeDescription
strategyobjectBasic strategy info, including id, name, description, riskLabel, marketType, performance and signal status
summaryobjectStrategy summary, including trading symbols, leverage, running days, return metrics, and NAV trend
versionobjectCurrent version details
calculatedMetricsobjectPlatform-calculated metrics, including source, pointCount, totalReturn, maxDrawdown
analyticsobjectAnalysis results generated from strategy NAV data
performanceSegmentsobjectPerformance metrics by phase, including backtest and live phase data
riskScopeobjectRisk scope, including trading symbols, max leverage, backtest window, historical max drawdown, cost model, and fee basis
simulationobjectStrategy run overview, including run status, start time, and latest confirmed NAV
symbolsarrayStrategy trading symbol binding info

Common metric paths:

MetricField pathDescription
Maximum drawdown in the last 30 daysanalytics.metrics.maxDrawdown30dMaximum drawdown rate across the latest 30 UTC calendar days of the currently displayed NAV
Backtest maximum drawdown in the last 30 daysperformanceSegments.backtest.maxDrawdown30dPresent only when phased performance is returned
Full-period maximum drawdown ratecalculatedMetrics.maxDrawdownRecalculated from the displayed NAV across the full period
Full-period maximum drawdown detailsanalytics.metrics.maxDrawdownIncludes rate, peak, trough, recovery time, and duration

strategy fields:

FieldTypeDescription
idlongValueScan strategy ID
namestringStrategy name
descriptionstringStrategy description
riskLabelstringRisk level: low, medium, or high
marketTypestringMarket type: spot, perpetual, or delivery
performanceobjectStrategy performance summary; see below
providerStatusstringStrategy data status: active, paused, or retired
publishStatusintegerStrategy availability status; currently available strategies are 300
signalStatusintegerStrategy signal status
lastSignalSeqlongLatest signal sequence number; may be null
lastSignalTslongLatest signal Unix timestamp in seconds; may be null

performance fields:

FieldTypeDescription
navKindstringNAV type: backtest, live, or blended
fromTslongStart timestamp for the statistics
toTslongEnd timestamp for the statistics
totalReturnnumberCumulative return
cagrnumberCompound annual growth rate
sharpenumberSharpe ratio
maxDrawdownnumberMaximum drawdown rate across the full period

Fields in each item of tokens and each NAV point of trend.backtest and trend.live:

FieldTypeDescription
vsTokenIdlongValueScan token ID (tokens only)
symbolstringToken symbol (tokens only)
namestringToken name (tokens only)
iconstringToken icon URL (tokens only)
tslongUnix timestamp in seconds (NAV point only)
navnumberNAV at that time (NAV point only)

Additional summary fields:

FieldTypeDescription
tokensarrayTrading symbols; each item includes vsTokenId, symbol, name, and icon
maxLeveragenumberMaximum leverage; may be null
avgLeveragenumberAverage leverage; may be null
liveSignalDayslongLive signal running days; may be null
backtestCagrnumberBacktest CAGR; may be null
winRatenumberWin rate; may be null
trendobjectNAV trend with backtest and live arrays; each point includes ts and nav

Main fields of version:

FieldTypeDescription
idlongCurrent version record ID
versionstringStrategy version number
marketTypestringMarket type
navKindstringNAV type
feeBasisstringFee basis
maxLeveragenumberMaximum leverage
avgLeveragenumberAverage leverage
failureModesstringFailure scenario description
remarkstringRemarks
changelogarrayVersion change log
ruleSpecstringStrategy rule description
costModelobjectCost model
selfStatsobjectStrategy statistics
selfMetricsobjectStrategy metrics

version.costModel fields:

FieldTypeDescription
feeBpsnumberFee in basis points
slippageBpsnumberSlippage in basis points

Standard version.selfStats fields:

FieldTypeDescription
tradeCountlongNumber of trades
winRatenumberWin rate; may be null
avgHoldHoursnumberAverage holding time in hours; may be null
profitFactornumberProfit factor; may be null
maxConsecutiveLosseslongMaximum number of consecutive losses
statsBasisstringDescription of the statistical basis; may be null

Standard version.selfMetrics fields:

FieldTypeDescription
cagrnumberCompound annual growth rate
sharpenumberSharpe ratio
maxDrawdownnumberMaximum drawdown rate
totalReturnnumberCumulative return; may be null
annualReturnnumberAnnual return; may be null
basisstringDescription of the metric basis; may be null

calculatedMetrics fields:

FieldTypeDescription
sourcestringMetric data source
pointCountintegerNumber of NAV points used in the calculation
totalReturnnumberCumulative return; may be null
maxDrawdownnumberFull-period maximum drawdown rate; may be null

analytics fields:

Field pathTypeDescription
metricsobjectAggregated performance metrics; see below
curves.7dobjectReturn curve for the most recent 7 days
curves.30dobjectReturn curve for the most recent 30 days
curves.allobjectReturn curve for the full period
drawdownCurvearrayDrawdown curve; each point contains ts and drawdownRate
monthlyReturnsarrayMonthly returns; each item contains month, fromTs, toTs, and returnRate

analytics.metrics fields:

FieldTypeDescription
sourcestringMetric data source
asOfTslongMetric cutoff timestamp; may be null
cagrnumberCAGR; may be null
sharpenumberSharpe ratio; may be null
maxDrawdownobjectFull-period maximum drawdown details; see below
maxDrawdown30dnumberMaximum drawdown in the most recent 30 UTC calendar days; may be null
winRatenumberWin rate; may be null
profitFactornumberProfit factor; may be null
sortinonumberSortino ratio; may be null
strategyTotalReturnnumberStrategy cumulative return; may be null
benchmarkTotalReturnnumberBenchmark cumulative return; may be null
benchmarkExcessReturnnumberExcess return relative to the benchmark; may be null

maxDrawdown detail fields:

FieldTypeDescription
ratenumberMaximum drawdown rate
peakTslongPeak timestamp
troughTslongTrough timestamp
recoveryTslongTimestamp when NAV recovered to the peak; null if not recovered
durationDayslongNumber of UTC calendar days from peak to recovery, or to the current cutoff

curves.7d, curves.30d, and curves.all fields:

FieldTypeDescription
rangestringCurve range: 7d, 30d, or all
fromTslongCurve start timestamp; null when data is insufficient
toTslongCurve end timestamp; null when data is insufficient
returnCurvearrayReturn curve; each point contains ts and returnRate

performanceSegments fields:

Field pathTypeDescription
backtestobjectBacktest metrics; fields match analytics.metrics
live.metricFromTslongStart timestamp for live metrics
live.metricToTslongEnd timestamp for live metrics
live.totalReturnnumberLive cumulative return
live.maxDrawdownnumberLive maximum drawdown
live.feenumberCumulative fees
live.fundingnumberCumulative funding fees
live.realizedPnlnumberRealized PnL
live.unrealizedPnlnumberUnrealized PnL; may be null
live.cagrnumberCAGR; may be null
live.sharpenumberSharpe ratio; may be null
live.closedCycleslongNumber of completed trading cycles
live.winRatenumberWin rate; may be null

riskScope fields:

FieldTypeDescription
tokensarrayTrading symbols
maxLeveragenumberMaximum leverage
backtestWindowobjectBacktest window: startTs, endTs, and durationDays; null without backtest data
historicalWorstFloatingLossobjectHistorical maximum drawdown details; fields match the maxDrawdown details above
costModelobjectCost model, including feeBps and slippageBps
feeBasisstringFee basis

simulation fields:

FieldTypeDescription
statusstringRun status: INITIALIZING, RECOVERING, RUNNING, DEGRADED, or BANKRUPT
startTslongRun start timestamp
simulationFromTslongNAV start timestamp for the live phase
latestConfirmedTslongLatest confirmed NAV timestamp; may be null
latestConfirmedNavnumberLatest confirmed NAV; may be null
priceStatusstringCurrent price status: FRESH or STALE
latestProvisionalNavnumberProvisional NAV estimated from the latest price; may be null

simulation and performanceSegments are returned only for strategies with live data. version, calculatedMetrics, analytics, and riskScope are returned when a current strategy version exists.

Fields in each item of symbols:

FieldTypeDescription
symbolstringStrategy trading pair symbol
vsTokenIdlongValueScan token ID
vsTokenSymbolstringValueScan token symbol
vsTokenNamestringValueScan token name
vsTokenIconstringValueScan token icon
exchangestringExchange
marketTypestringMarket type
productTypestringProduct type
exchangeSymbolstringExchange trading pair symbol
settleCoinstringSettlement currency
contractSizenumberContract size; may be null

Success response example

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"
}

Error codes

CodeDescription
40001Missing strategyId
40002Invalid strategyId parameter
50001The requested endpoint does not exist or is currently unavailable
60001Rate limit exceeded
70001Insufficient OpenAPI credits
70002OpenAPI access for the current user has been disabled
70004Strategy does not exist or is currently unavailable
70005Strategy content for the requested language is temporarily unavailable