새 바가 생길 때마다 OHLCV 지표 재컴퓨팅 중지

작성자

카테고리:

← 피드로
DEV Community · Kael Zhang · 2026-07-19 개발(SW)
Cover image for Stop recomputing OHLCV indicators after every new bar

Kael Zhang

A four-year, 15-minute stock backtest is about 140k bars for one stock. With 50 stocks, that is already around 7 million rows before parameter sweeps. If you are preparing features for a model, it is easy to spend 10 minutes just building the data table before training even starts.

That is the part that kept bothering me. The strategy or model is supposed to be the hard part, but the research loop often gets stuck rebuilding the feature table: RSI, MACD, ATR, Bollinger Bands, and dozens more. In a live loop or a bar-by-bar backtest, every new OHLCV bar can trigger a full-column recompute even though most of the column is already valid.

I built volas for that workflow: keep the OHLCV table familiar, but make indicator refresh cheap.

volas is a Rust-backed Python DataFrame for OHLCV/candlestick pipelines. Indicators are addressed like DataFrame columns:

df["rsi:14"]
df.append(new_bar)
df["rsi:14"]  # refreshes only the affected tail

Enter fullscreen mode Exit fullscreen mode

What it gives you:

  • a pandas-shaped API for market data;
  • 250+ built-in trading indicators;
  • indicator directives as cached columns;
  • append/update semantics for live bars;
  • Rust kernels for the hot paths;
  • NumPy/Torch output for downstream Python code.

The benchmark suite is public and reproducible:

If you work with live OHLCV pipelines, crypto bots, technical screeners, or ML feature tables, I would be interested in feedback on three things:

  1. Does the directive API fit how you write indicator pipelines?
  2. Which indicators or market conventions are still missing?
  3. Do you have realistic cases where this approach loses to TA-Lib, pandas-ta, or your own implementation?

GitHub: https://github.com/kaelzhang/volas

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다