Condition
rangeLEVEL interval on continuous values: true every bar low <= subject <= high, with EACH bound's inclusivity set separately — low_inclusive and high_inclusive are BOTH REQUIRED, because the two two-bound sites this replaces disagree (band_level inside is exclusive on both edges, zone membership is inclusive on both), so any default would be a silent choice between them. USE WHEN: 'RSI between 30 and 70', 'price inside the Bollinger band', any half-open window like [30, 70) that a single flag cannot express. Bounds may be signal refs, not just constants, so they can be moving series. DO NOT USE for a one-sided threshold — use 'compare'. DO NOT USE for membership in a discrete set — use 'in_set'. A literal interval that is empty (low above high, or equal bounds with an exclusive end) is refused at construction rather than shipped as a strategy that never fires.
Category
Price signals
Discriminator
kind = "range"
Roles
entry, exit, gate
Required fields
highreqanyOf (2 variants)Upper bound: a value ref or a constanthigh_inclusivereqbooleanTrue tests `subject <= high`; False tests `subject < high`. Required for the same reason as `low_inclusive`.lowreqanyOf (2 variants)Lower bound: a value ref or a constantlow_inclusivereqbooleanTrue tests `subject >= low`; False tests `subject > low`. Required: the two two-bound sites this replaces DISAGREE (`band_level: inside` is exclusive on both edges, zone membership is inclusive on both), so there is no default that is not a silent choice between them.subjectreqValueRefValue tested against the intervalOptional fields
kindstring-