Guides · Vanoe Market Intelligence API
Backtesting with stage history: a no-lookahead weekly stage series
Most technical indicators are trivial to recompute historically, but doing it correctly, using only the data that existed each week, is where backtests quietly go wrong. The stage history endpoint returns one stage per week, up to 520 weeks, each computed walk-forward from the bars available at that week's close.
Using it as a feature
The series is a small integer per week (1–4) with the closing price alongside. Common uses: gate a strategy to Stage 2 only, measure how long stages last for a ticker, or feed the label into a model as a regime feature. Because the labels are point-in-time, results transfer to live trading without the usual surprise.
Why walk-forward matters
A 30-week average computed over the whole history and then sliced back in time looks the same as a walk-forward one, except that the slope near any point is contaminated by future bars. The endpoint recomputes the classifier at each week's end, so a label on 2024-03-01 knows nothing about March 2024.
Request
curl -H "Authorization: Bearer sk_live_…" \
"https://api.vanoe.ai/v1/signals/stage/history?ticker=AAPL&weeks=104"
Response
{
"data": {
"ticker": "AAPL", "interval": "weekly", "weeks": 6,
"series": [
{"week_ending": "2026-08-07", "close": 313.33, "stage": 2, "label": "Advancing"},
{"week_ending": "2026-08-14", "close": 305.93, "stage": 2, "label": "Advancing"},
{"week_ending": "2026-08-21", "close": 309.35, "stage": 2, "label": "Advancing"},
{"week_ending": "2026-08-28", "close": 319.70, "stage": 2, "label": "Advancing"},
{"week_ending": "2026-09-04", "close": 319.97, "stage": 2, "label": "Advancing"},
{"week_ending": "2026-09-10", "close": 326.43, "stage": 2, "label": "Advancing"}
],
"as_of": "2026-09-10"
},
"as_of": "2026-09-10", "freshness": "weekly", "suggested_recheck_seconds": 604800,
"disclaimer": "Informational data only. Not financial advice. This is not a recommendation, solicitation, or offer to buy or sell any security."
}
Cost: 5 credits per call. The Free plan returns up to 52 weeks per request; Starter and above return the full 520.
Fields
| series[].week_ending | Friday, or the last trading day of the week |
| series[].stage / label | 1–4 as of that week's close |
| weeks | requested length, 1–520 |
Questions
How far back does it go?
Up to 520 weeks, about ten years, subject to the ticker's listing date.
Is a full history expensive?
No. One call is 5 credits regardless of length. The Free plan is limited to 52 weeks per request; Starter ($12 a month) and above return the full ten years.
Try it
Free tier: 1,000 credits a month, no card. Every response is informational data only, not financial advice.