Field Note 10 / Research Methods
One Market Move or Several? The Problem of Crypto Trend Segmentation
A price rises, pulls back, moves sideways, and rises again. Looking at the completed chart, it is easy to call the whole sequence one move. Writing a rule that does this consistently is harder.
We encountered this problem while building a historical base for a market-movement radar at Karaptic Research. Before evaluating what the radar catches, we need to define the movements against which it will be assessed. Otherwise, a change in the labels can look like an improvement in detection.
The immediate task is price segmentation: identifying movements, their internal pullbacks, and their relationships across scales. We went back to the literature before adding another custom rule for merging smaller price legs.
Research status, 20 September 2026: the initial comparison has run across 521 trading pairs. It establishes differences between segmentations, not a measured detection rate or a trading edge. The movement base is still being evaluated.
Why the definition of a movement matters
Split a sustained rise into many small segments, and a detector may appear to catch numerous separate opportunities. Merge several distinct advances into one long wave, and an early alert may appear to cover later developments that were far from assured.
Our objective is to retain both levels: the larger movement and the smaller advances and pullbacks inside it. There need not be a single universally correct answer to whether a chart contains one wave or three. There does need to be an explicit rule, applied consistently.
This makes the map a measurement base for the radar. Its usefulness depends on knowing what it preserves and what it leaves out.
Epsilon-tau: allowing a pullback and a pause
The epsilon-tau procedure uses a price tolerance, epsilon, and a waiting period, tau. For an upward movement, it tracks the running maximum and stops when the permitted decline is reached or the wait for another maximum becomes too long. The downward case uses the corresponding minimum.
Yamashita Rios de Sousa, Takayasu and Takayasu (2020) study one-second USD/JPY mid-quotes from 2015 to 2018. In their chosen specification, tolerance grows with the distance from the starting price to the extreme: returning to the starting price ends the procedure. This differs from a fixed percentage retracement.
The paper distinguishes the historical endpoint from its later confirmation. The trend ends at the extreme, although subsequent observations are needed to establish that ending.
Our implementation adapts the procedure to five-minute log closing prices with waiting periods of 30 minutes, two hours and eight hours. That adaptation requires its own evaluation; the foreign-exchange findings do not validate its use on crypto data.
A historical peak is not a live signal
Consider a hypothetical price peak at 14:00. The price then retreats, and a rule confirms the movement has ended at 14:20. A historical chart can put the endpoint at 14:00. A live system could only use that confirmation at 14:20.
Treating the endpoint as information available at the earlier time introduces look-ahead bias. The retrospective description can be accurate while the implied trade is impossible.
Our records therefore separate the extreme from its confirmation. This is a practical consequence of the distinction discussed in Why I Stopped Trying to Make AI Predict Bitcoin. A completed movement can serve as an evaluation label; its future endpoint cannot serve as an input to the radar.
Checking whether structure survives a change of scale
Gerlach, Demos and Sornette's 2019 study of Bitcoin's multiscale bubble history examines January 2012 to February 2018. Its epsilon-drawup/drawdown approach uses a tolerance related to preceding volatility and examines how often peaks recur across parameter combinations.
The relevant lesson for our proposed evaluation is to test sensitivity rather than trust one convenient setting. If a movement disappears after a small parameter change, we need to know. If its boundaries remain similar across settings, that supports the stability of the description, not its predictive value.
We also need to measure relationships between scales explicitly. A smaller segment may sit inside a larger one or cross its boundary. Strict nesting should not be assumed.
Directional change as a reference for ZigZag
Directional-change methods organise price history around reversals of a specified size. A reversal from a running extreme confirms the event, while the associated overshoot describes continuation beyond confirmation.
Glattfelder, Dupuis and Olsen's research on high-frequency FX data examines price behaviour across thresholds and reports empirical scaling relationships. Our existing ZigZag-style approach belongs near this family, but similar charts do not make implementations equivalent.
Pivot order, reversal definitions, price inputs and confirmation times all need checking. Aggregate scaling relationships do not determine how far the next individual movement will continue.
What the initial comparison actually showed
The internal comparison ran the corrected catalogue and three epsilon-tau settings across the available history of 521 pairs. Detailed checks included two LSK windows, AVA, SYN and twelve sampled movements. The radar itself was not tested in this run.
One LSK example illustrates the potential. On 16 September, the two-hour setting identified an upward segment from 14:10 to 17:10 UTC with a 48.67% rise. The historical reference interval was 13:15 to 17:15, with a 60.18% rise. This was a useful match to a large move as one segment. It was not evidence that a live alert occurred at 14:10, or that this setting was best across the dataset.
Elsewhere, outcomes were mixed. Longer waiting periods sometimes combined noisy price activity into very large segments. The original catalogue also uses high/low pivots while epsilon-tau uses closes, so the comparison does not isolate the effect of the segmentation rule alone.
Most importantly, counts of segments do not answer the coverage question. Seven segments in an AVA window could represent useful subdivisions, excessive fragmentation, or different movements altogether. We still need explicit matching to determine which.
Adding volume without hiding missed movements
The next stage is to attach volume characteristics to each price movement: total volume, volume per unit of time, and its relationship to a preceding baseline. The volume field and baseline window must be stated explicitly.
Volume should initially describe the movement rather than decide whether it enters the database. Otherwise, an advance without a volume spike disappears before the radar is evaluated. That would hide a potential miss by changing the target set.
The same separation applies to internal pullbacks. They can be measured within an epsilon-tau segment as an additional analytical layer, even though the current output does not list them. That extension must be identified as our implementation work.
A usable base for the radar
The remaining evaluation must distinguish whole movements, fragmented movements, excessive mergers and omissions. Matching needs to account for direction, interval overlap and excess coverage outside the reference interval. A month-long segment should not receive a good score merely because it overlaps a one-day rise.
We also need checks on windows selected independently from the existing catalogues. Selecting only events a method already found would exclude its own misses.
The aim is a fixed, reproducible movement base with documented limitations. From there, radar tests can measure detection timing, missed events, repeated alerts and false alarms. Execution costs and achievable fills remain a later, separate test.
This work follows the evidence-first approach behind Searching for Edge. The literature has supplied definitions worth testing. Our responsibility is to establish what those definitions capture on our data before using them to judge a detector.
