Skip to main content

GET /v1/backtest/:asset

Returns VaR backtesting results for a given asset. Uses the Kupiec Proportion of Failures (POF) test to validate whether the VaR model's predicted breach rates match actual observed breaches.

Request

GET https://api.canonprotocol.org/v1/backtest/BTC

Headers

HeaderRequiredValue
AuthorizationYesBearer YOUR_API_KEY

Path Parameters

ParameterTypeDescription
assetstringAsset ticker (e.g. BTC, ETH)

Response

{
"asset": "BTC",
"returns_count": 720,
"var_95": {
"confidence": 0.95,
"expected_breach_rate": 0.05,
"actual_breach_rate": 0.047,
"observations": 720,
"breaches": 34,
"kupiec_p_value": 0.72,
"status": "pass"
},
"var_99": {
"confidence": 0.99,
"expected_breach_rate": 0.01,
"observations": 720,
"actual_breach_rate": 0.011,
"breaches": 8,
"kupiec_p_value": 0.65,
"status": "pass"
}
}

Fields

FieldTypeDescription
assetstringAsset ticker
returns_countnumberNumber of hourly return observations used
var_95objectBacktest results at 95% confidence
var_99objectBacktest results at 99% confidence

VaR Backtest Object

FieldTypeDescription
confidencenumberConfidence level (0.95 or 0.99)
expected_breach_ratenumberExpected proportion of VaR breaches
actual_breach_ratenumberObserved proportion of VaR breaches
observationsnumberTotal number of observations tested
breachesnumberNumber of times actual loss exceeded VaR
kupiec_p_valuenumberP-value from the Kupiec POF test. Higher values indicate the model is well-calibrated
statusstringOne of "pass", "too_many_breaches", "too_few_breaches", or "insufficient_data"

Error Response

If no volatility data is available for the asset:

{
"error": "no_volatility_data",
"asset": "UNKNOWN"
}

Returns HTTP 404 Not Found.