Machine-learning features for crypto
The raw data and 293,743 indicators computed from it, bar by bar, on one UTC clock — so the work goes into models, not pipelines.
The hard part of a crypto model is rarely the model. It is building clean, aligned features without leaking the future into the past. TILLA serves the features directly: every indicator is one formula over the raw, computed on its own clock from bars at or before its label.
What you get
- Technicals — EMA distances, RSI, MACD, Bollinger width and %b, returns over several horizons and volatility, across crypto, stocks and FX.
- Cross-asset context — betas and correlations to the dollar, gold, the S&P 500 and the 10-year yield.
- Positioning and flow — funding, open interest, long/short ratios, taker flow, CFTC positioning and spot ETF flows fund by fund.
- Regime and sentiment — Fear & Greed, VIX and its term structure, and calendar features.
Train on one aligned row per minute
Series on one lane share one label, so building an X matrix is a window call — no joins, no leakage from misaligned timestamps. Page through your whole tier window once, then keep it fresh from your newest bar.
import requests
H = {"X-API-Key": "tk_live_..."}
rows, start = [], "2000-01-01" # before your floor = from your floor
while start:
d = requests.get("https://api.tillacrypto.com/v1/free/derived/daily",
headers=H, params={"series": "btc_ema_20", "start": start}).json()
rows += d["data"]
start = d["next_start"] if d["more"] else None
Or take a whole lane in one request with /v1/<tier>/resume/derived/<lane>?since=...&format=parquet.
Full reference: the docs.
FAQ
Are the features engineered or raw?
Both. The raw layer is what each venue published; the derived layer is technicals, cross-asset betas and regime signals computed from it.
How do I avoid look-ahead / alignment leakage?
Every derived value uses only bars at or before its own label, and every value sits on a UTC bar labelled by the end of the period it covers.
Can I build a local training set?
Yes. Page through your whole tier window once with start and next_start, then call from your newest bar to stay current. Pro and above can export a whole window in one file.