Kase bar backtests: true-range bars, no phantom bars, and the fill after the burst
A Kase bar closes when its true range reaches a fixed target, where true range counts the jump from the previous bar's close as well as the bar's own high-to-low distance. That lets Kase bars handle gaps without drawing phantom bars. Their backtests overstate results the way all range-type charts do: by filling at the closing tick and by letting several bars that completed in one minute trade one by one. AlphaPrime confirms each bar at the close of the underlying bar, fills every signal at the next real price with doubled slippage, and judges stops on the real high and low.
By Soren Huang · Published · updated · Editorial policy
Contents
- What are Kase bars, and how do their backtests overstate results?
- How is a Kase bar built from real bars, and when is it known?
- Where does a Kase bar backtest see the future?
- Filling at the closing tick
- Trading bars that arrived together one by one
- Choosing the friendly path inside a minute
- How does AlphaPrime backtest a Kase bar strategy?
- How do you choose the Kase bar target?
- Which markets and strategies suit Kase bars?
- Frequently asked questions
What are Kase bars, and how do their backtests overstate results?
Kase bars are range-type bars that close when their true range reaches a fixed target, where true range counts the jump from the previous bar's close as well as the bar's own high-to-low distance. Their backtests overstate results by filling at the tick that completed the bar and by trading, one by one, bars that all became known in the same minute.
A range bar closes when high minus low reaches the target. A Kase bar closes when the largest of three distances reaches it: the bar's high minus its low, the previous bar's close to this bar's high, and the previous bar's close to this bar's low. The previous close here is the close of the previous Kase bar, so a bar that opens away from where the last one ended has already used up part of its target before it moves. That one change gives Kase bars two properties traders want: a bar's movement is measured from where the market actually was, not just from where the bar happened to open, and a gap never needs to be filled with invented bars.
The target is a number you choose and hold fixed, in ticks. Kase bars are sometimes described as volatility-adjusted, and the description is misleading in a way that matters for backtesting: the bar does not resize itself from a rolling volatility estimate, so there is nothing in the construction that can borrow from later data. The rules that all synthetic chart types share are on the overview of why synthetic-bar backtests cheat; this page is the Kase-specific part.
How is a Kase bar built from real bars, and when is it known?
A Kase bar is known when a real trade has pushed its true range to the target, and an engine built from minute bars knows that at the close of the minute. The bar closes at that trade; the next bar opens one tick beyond, and its own true range starts counting from the close just made.
Take a target of 5 ticks. The previous Kase bar closed at 108. The next bar opens at 109 and trades up to 113. Its high-to-low distance is only 4 ticks, but the distance from the previous close of 108 to the high of 113 is 5, so the bar closes at 113. A range bar in the same spot would have needed one more tick. When the market gaps, the same rule absorbs the gap: the jump from the previous close counts toward the target, the bar closes when the target is reached, and if a single jump exceeds the target the bar simply closes larger than the target at the real price. Nothing is drawn at levels where nothing traded.
AlphaPrime (Valynox) builds Kase bars from the underlying time bars you choose, 1-minute for most intraday work, and a bar becomes visible to the strategy only at the close of the underlying bar that completed it. Several Kase bars that complete inside one minute appear together at the end of that minute, and every signal from them fills at the same next real price. Because a minute bar does not say whether its high or its low came first, the engine assumes the order that is worse for a strategy and longer as a path: open, high, low, close on an up minute; open, low, high, close on a down minute. That assumption cuts more bars and more false signals than the friendlier order would, and it uses only the minute's own four prices.
Hypothetical example
Target 8 ticks. The previous Kase bar closed at 100. The 10:22 minute opens at 103, trades up to 109 and closes at 107. The distance from the previous close of 100 to the high of 109 reaches the target at 108, so a Kase bar closes at 108 inside that minute. A closing-tick backtest fills a breakout buy at 108. AlphaPrime confirms the bar at 10:23:00 and fills at the first trade of 10:23, around 107 plus slippage. A range bar with the same target would not have closed at all in that minute, because its own high-to-low distance was only 6 ticks.
Where does a Kase bar backtest see the future?
In the fill, in the clustering, and in the path inside each minute. The construction itself is clean; the shortcuts engines take with it are not.
Filling at the closing tick
Rule: the bar exists only at the close of the underlying bar that completed it, and the fill is the next real price plus slippage. Why: the tick that completed the target is behind you by the time the bar is confirmed. What it avoids: fills at the end of the move the bar measured, awarded on every bar.
Trading bars that arrived together one by one
Rule: every signal from bars that completed in the same underlying minute fills at the same next real price. Why: a live trader watching minute data learns about all of them at once. What it avoids: entering on the first bar of a burst and exiting on the third, inside a minute that was over before you could act.
Choosing the friendly path inside a minute
Rule: the path inside a minute is always the longer, less favourable one. Why: the true path is unknown, and choosing the kinder one is choosing the result. What it avoids: bar counts that depend on a guess in the strategy's favour. The cost is a higher bar count than the real market would have shown, by a quarter to a half on ES and NQ 1-minute data, which is the price of not guessing.
| Kase bar feature | Closing-tick backtest | AlphaPrime |
|---|---|---|
| Bar completion | Known at the closing tick | Known at the close of the underlying bar |
| Entry fill | The closing tick | Next real price plus doubled slippage |
| Several bars in one minute | Traded one by one | Every signal fills at the same next real price |
| Order of high and low inside a minute | Whichever order the engine prefers | Always the longer, less favourable path |
| Gap | Depends on the engine; some draw bars across it | Counts toward the target; the bar closes at the real price; nothing drawn inside |
| Stop check | Kase bar range | Real highs and lows of the underlying bars, stop first |

How does AlphaPrime backtest a Kase bar strategy?
The strategy reads Kase bars; fills, stops and targets come from the underlying real bars. Rule by rule:
- Each bar is confirmed at the close of the underlying bar that completed it. Why: a minute-built engine learns the bar closed at the minute close. Avoids: acting on a bar before it was known to be complete.
- A market order takes the next underlying bar's open, plus slippage. Why: the first price that exists after the signal. Avoids: closing-tick fills.
- The path inside a minute is the longer, less favourable one. Why: it is unknown, and the friendly guess flatters the result. Avoids: bars and signals built on a guess.
- Gaps count toward the target and are never filled with drawn bars. Why: the true range already measures the jump; nothing traded inside it. Avoids: fills at prices that never printed.
- Stops and targets are settled on the real highs and lows of the underlying bars; when both are hit in one bar, the stop wins. Why: the real bar contains the path the Kase bar summarised. Avoids: winners that only exist in a friendly ordering of events.
- The slippage multiplier starts at two and only goes up. Why: Kase bars complete in bursts when the market is moving fastest, as much as range bars do. Avoids: a cost model that assumes a calm book during the burst.
The engine's own measurement on about three years of ES 1-minute data with an 8-tick target shows how much the burst matters: in minutes that produced three or more Kase bars, the distance from a bar's close to the next real trade averaged about four times what it was in minutes that produced one. That distance is already charged by the real-price fill; the slippage multiplier is on top of it, because in those minutes even the real open is not a price you can count on getting. For the general method of weighing cost against the average trade, see trading costs in backtests.
How do you choose the Kase bar target?
Choose a target clearly larger than the typical high-to-low distance of your underlying bar, and hold it fixed; a target too small turns most minutes into bursts of several bars whose shape comes from the assumed path rather than from the market.
- Start from the underlying bar. Measure the typical 1-minute range and the typical close-to-close change for the session you trade. A target of several times the close-to-close change, and at least a couple of times the typical 1-minute range, keeps most Kase bars spanning several minutes.
- Check the burst rate. The chart-type panel shows average bars per day and the busiest hour for your setting. If the busiest hour is producing bars every few seconds, raise the target or use finer underlying data.
- Hold it across in-sample and out-of-sample. A target tuned on the test is a fitted parameter, and average true range is a reasonable reference for picking it once, not a mechanism for changing it as you go.
A control test worth running: build the same strategy on range bars with the same target. If the Kase version is only slightly different, the previous-close rule is doing a little honest work around gaps and openings. If the two differ a great deal, look at where: the difference should sit at session opens and news prints, where the jump from the previous close is large. Fixed-range and reversal-based cousins have their own pages: range bar backtests and reversal bar backtests.
Which markets and strategies suit Kase bars?
Kase bars suit movement-based rules on markets that gap or jump: index futures across the open, currency pairs across session changes, crypto around news and liquidations. They are a poor fit for thin markets and for rules that need precise exits, for the same reasons as every range-type chart.
Before trusting a Kase bar result, look at where the trades fall relative to the busiest minutes. Profit concentrated in bursts is profit from the moments when fills are worst, and the doubled slippage is a floor there, not a ceiling. If the result holds with a one-bar entry delay and with the range-bar control, it has earned walk-forward analysis.
What this means if you use AlphaPrime: choose Kase bars as the chart type in strategy generation, set the target and the underlying resolution, and run the search. Every candidate is tested with bars confirmed at the underlying close, fills at the next real price with doubled slippage, the unfavourable path inside each minute, and stops judged on real bars, in Classic and in Reserve. Nothing in your report was drawn where nothing traded.
Frequently asked questions
What is the difference between Kase bars and range bars?
A range bar closes when its own high-to-low distance reaches the target. A Kase bar closes when its true range does, and true range also counts the distance from the previous bar's close to this bar's high or low. So a Kase bar that opens away from the previous close closes sooner, and a gap counts as movement instead of being filled with drawn bars.
Do Kase bars use future volatility?
No. The construction uses the previous bar's close and the current bar's high and low, nothing later. The target is a fixed number you choose. Descriptions of Kase bars as volatility-adjusted refer to how traders pick the target, not to anything the bar computes as it forms.
Why are some Kase bars larger than the target?
When a single underlying bar jumps by more than the target, the Kase bar closes at the real price after the jump, which can be well past the target, because nothing traded in between and AlphaPrime does not draw bars across a gap. On the other side, a bar can have a high-to-low distance smaller than the target when the jump from the previous close supplied part of it.
Can I use Kase bars on forex and crypto?
Yes, and the previous-close rule is useful there, because both markets open sessions and weekends with jumps that range bars handle badly. Set the target in ticks, pips or price units, and test with slippage above the doubled starting point for the first bars after each jump.

