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
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer YOUR_API_KEY |
Path Parameters
| Parameter | Type | Description |
|---|---|---|
asset | string | Asset 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
| Field | Type | Description |
|---|---|---|
asset | string | Asset ticker |
returns_count | number | Number of hourly return observations used |
var_95 | object | Backtest results at 95% confidence |
var_99 | object | Backtest results at 99% confidence |
VaR Backtest Object
| Field | Type | Description |
|---|---|---|
confidence | number | Confidence level (0.95 or 0.99) |
expected_breach_rate | number | Expected proportion of VaR breaches |
actual_breach_rate | number | Observed proportion of VaR breaches |
observations | number | Total number of observations tested |
breaches | number | Number of times actual loss exceeded VaR |
kupiec_p_value | number | P-value from the Kupiec POF test. Higher values indicate the model is well-calibrated |
status | string | One 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.