← Glossary

Strategy Validation

OHLCV Candle

One bar of market history, the Open, High, Low, Close, and Volume of a fixed time interval. The atomic data unit of charting and backtesting.

A candle compresses everything that happened in one timeframe interval into five numbers:

O — first traded price of the interval
H — highest price
L — lowest price
C — last price
V — volume traded

On a chart, the body spans open→close (colored by direction) and the wicks reach the high and low.

What a candle hides

Compression loses information, and backtests inherit the loss. Within one bar you don't know whether the high or the low came first, so a bar that touched both your stop and your target is ambiguous at that resolution. Engines resolve this by consulting finer data; AlphaProve fills against 1-minute bars regardless of the strategy's chart timeframe. Plain volume also doesn't say who was aggressing, which is why richer schemas add buy/sell volume splits and delta, enabling CVD-style orderflow analysis. And candles record trades, not the resting order book around them.

The practical rule: match data granularity to the strategy's claims. Testing 1-minute exit logic on 4-hour candles guarantees wrong answers. Testing on 1-minute data with candle-aware fill rules is the honest baseline.

On AlphaProve

The candle your code reads carries more than the five classic fields. Every bar on ctx.current_bar and in the ctx.candles history also holds buy_volume, sell_volume, delta, and trade_count, which is what lets orderflow indicators run without tick data. A catalog endpoint lists the real Bybit symbol-by-timeframe coverage, so you build on bars that exist rather than assuming a market has the history your test needs.